-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_chat.py
More file actions
48 lines (37 loc) · 1.86 KB
/
Copy pathtest_chat.py
File metadata and controls
48 lines (37 loc) · 1.86 KB
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
import os
from dotenv import load_dotenv
from backend.rag_engine import RAGEngine
load_dotenv()
def clean_response(text: str) -> str:
"""Удаляет служебный маркер [NO_CONTEXT] из ответа."""
return text.replace("[NO_CONTEXT]", "").strip()
def main():
print("\n Добро пожаловать в чат-агент поддержки Р-Про!")
print("Введите ваш вопрос (или 'exit' / 'выход' для завершения):")
print("-" * 60)
# Инициализация движка (можно указать другую модель, если нужно)
rag = RAGEngine()
print(f"Количество чанков в базе: {rag.count_chunks()}")
history = [] # список сообщений для контекста
while True:
user_input = input("\n Вы: ").strip()
# Команды выхода
if user_input.lower() in ("exit", "quit", "выход", "пока", "q"):
print(" До свидания! Всегда рады помочь.")
break
if not user_input:
continue
# Получение ответа от агента
result = rag.answer(user_input, history=history)
raw_answer = result.get("answer", "")
clean_answer = clean_response(raw_answer)
sources = result.get("sources", [])
# Вывод ответа
print(f" Агент: {clean_answer}")
if sources:
print(f" Использовано источников: {len(sources)}")
# Сохраняем диалог в историю (сырой ответ с маркером, если он есть)
history.append({"role": "user", "content": user_input})
history.append({"role": "assistant", "content": raw_answer})
if __name__ == "__main__":
main()