63 lines
1.7 KiB
Markdown
63 lines
1.7 KiB
Markdown
# RAG-агент с ChromaDB и веб-поиском
|
||
|
||
AI-агент с локальным RAG-хранилищем на **ChromaDB** и веб-поиском через **Tavily**.
|
||
Использует **Ollama** для LLM (`llama3`) и эмбеддингов (`nomic-embed-text`).
|
||
|
||
## Установка
|
||
|
||
```bash
|
||
# Установить модели Ollama
|
||
ollama pull llama3
|
||
ollama pull nomic-embed-text
|
||
|
||
# Python-зависимости
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
Создать `.env`:
|
||
```
|
||
TAVILY_API_KEY=ваш_ключ_tavily
|
||
```
|
||
|
||
## Инициализация базы знаний
|
||
|
||
Положи `.txt` / `.md` файлы в папку `documents/`, затем:
|
||
|
||
```bash
|
||
python init_db.py
|
||
```
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
## Архитектура
|
||
|
||
| Файл | Назначение |
|
||
|------|------------|
|
||
| `vectorstore.py` | ChromaDB + `OllamaEmbeddings(model="nomic-embed-text")` |
|
||
| `tools.py` | `@tool search_local_kb` (ChromaDB) и `@tool web_search` (Tavily) |
|
||
| `main.py` | ReAct-агент на `ChatOllama(model="llama3")` + CLI чат-цикл |
|
||
| `init_db.py` | Загрузка документов из `documents/` с чанкингом |
|
||
|
||
## Маршрутизация
|
||
|
||
| Запрос | Инструмент | Источник в ответе |
|
||
|--------|-----------|-------------------|
|
||
| Вопросы по загруженным документам | `search_local_kb` | `chromadb` |
|
||
| Актуальные новости / факты | `web_search` | `tavily` |
|
||
|
||
## Пример
|
||
|
||
```
|
||
Запрос: Какие последние новости про AI-агентов?
|
||
[Web Search] ...
|
||
Источник: tavily
|
||
|
||
Запрос: Что в наших конспектах про LangGraph?
|
||
[Local KB] ...
|
||
Источник: chromadb
|
||
```
|