Spaces:
Running
Running
File size: 1,707 Bytes
8cf08be 790e088 8cf08be 44cbb2e 8cf08be 790e088 8cf08be 44cbb2e 8cf08be 44cbb2e 8cf08be 44cbb2e 8cf08be 9de1f87 8cf08be |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
from db import db
import logging
from summary import file_summary
logger = logging.getLogger("rag")
logging.basicConfig(
format="%(asctime)s %(levelname)-8s %(message)s",
level=logging.INFO,
datefmt="%Y-%m-%d %H:%M:%S",
)
message_template = """\
Далее представлена информацию по опыту нашей компании
---------------------
{retrieved_chunks}
---------------------
Далее представлен запрос потенциального проекта
---------------------
{request_content}
---------------------
При проведении анализа опирайся только на представленную информацию"""
# Функция для обработки запроса к LLM
def process_query(req_file, system_prompt, llm, temperature, alpha):
logger.info("Process query")
req_file_content = file_summary(req_file)
logger.info("Retrive docs")
docs = db.query(req_file_content, top_k=3, alpha=alpha)
logger.info(f"Retrived {len(docs['ids'])} docs")
doc_context = '\n\n'.join(docs['documents'])
# Создание контекста из файлов
user_message = message_template.format(retrieved_chunks=doc_context, request_content=req_file_content)
# Формирование сообщения для LLM
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_message}
]
response = llm.chat(messages, temperature)
# Получение ответа от LLM
llm_response = response.choices[0].message.content
return llm_response |