# RAG‑агент с ChromaDB и веб‑поиском AI‑ассистент с двумя источниками знаний: локальная база ChromaDB и интернет через Tavily. Агент сам решает, какой источник использовать, и указывает это в ответе. ## Стек | Компонент | Технология | |-----------|------------| | LLM | Ollama — llama3 | | Эмбеддинги | Ollama — nomic-embed-text | | Векторное хранилище | ChromaDB | | Веб‑поиск | Tavily | | Фреймворк | LangChain + LangGraph (ReAct) | ## Установка ```bash pip install -r requirements.txt ollama pull llama3 ollama pull nomic-embed-text ``` Добавь в `.env`: ``` TAVILY_API_KEY=твой_ключ_tavily ``` ## Запуск ```bash python main.py ``` ## Команды | Команда | Описание | |---------|----------| | `/add <текст>` | Добавить текст в локальную базу знаний | | `/load <файл>` | Загрузить .txt файл в базу знаний | | `/help` | Показать список команд | | `/quit` | Выйти из программы | | `<вопрос>` | Задать вопрос агенту | ## Структура проекта ``` vectorstore.py — ChromaDB хранилище, эмбеддинги, чанкинг tools.py — @tool: search_local_kb, web_search (Tavily) agent.py — ReAct‑агент с маршрутизацией по источнику main.py — CLI интерфейс requirements.txt README.md ``` ## Маршрутизация Агент сам выбирает источник: - `search_local_kb` — если ответ может быть в локальных документах - `web_search` — если нужна актуальная информация из интернета В каждом ответе указан источник: `[Source: Local KB]` или `[Source: Web]`.