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()