Files

54 lines
1.9 KiB
Python

import os
from rich.console import Console
# Импортируем необходимые модули, которые реализованы в отдельных файлах
from vector_store import get_vector_store
from agent import RAGAgent
from init_knowledge_base import init_kb
console = Console()
# Конфигурация окружения
QDRANT_HOST = os.getenv("QDRANT_HOST", "localhost")
QDRANT_PORT = int(os.getenv("QDRANT_PORT", 6333))
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
if not OPENAI_API_KEY:
raise RuntimeError("Не задана переменная окружения OPENAI_API_KEY")
# Инициализация векторного хранилища
vector_store = get_vector_store(
host=QDRANT_HOST,
port=QDRANT_PORT,
api_key=OPENAI_API_KEY,
)
# При необходимости загружаем начальные документы
init_kb(vector_store)
# Создаём агента RAG, передавая ему векторное хранилище и ключ OpenAI
agent = RAGAgent(
vector_store=vector_store,
openai_api_key=OPENAI_API_KEY,
)
def main() -> None:
"""
Интерактивный цикл: пользователь вводит вопрос, агент отвечает.
Ввод 'exit' или 'quit' завершает программу.
"""
console.print("[bold green]Запуск интерактивного режима. Введите 'exit' для выхода.[/]")
while True:
question = input("Вопрос: ")
if question.lower() in ("exit", "quit"):
break
try:
answer, sources = agent.ask(question)
console.print(f"[blue]Ответ:[/]\n{answer}")
console.print("[yellow]Источники:[/]")
for src in sources:
console.print(f"- {src}")
except Exception as e:
console.print_exception()
if __name__ == "__main__":
main()