d3d8f0c72b27b62b020eb1df8c221154e9f95179
RAG‑агент с ChromaDB и веб‑поиском
AI‑ассистент с двумя источниками знаний: локальная база ChromaDB и интернет через Tavily. Агент сам решает, какой источник использовать, и указывает это в ответе.
Стек
| Компонент | Технология |
|---|---|
| LLM | Ollama — llama3 |
| Эмбеддинги | Ollama — nomic-embed-text |
| Векторное хранилище | ChromaDB |
| Веб‑поиск | Tavily |
| Фреймворк | LangChain + LangGraph (ReAct) |
Установка
pip install -r requirements.txt
ollama pull llama3
ollama pull nomic-embed-text
Добавь в .env:
TAVILY_API_KEY=твой_ключ_tavily
Запуск
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].
Description
Languages
Python
100%