66 lines
1.9 KiB
Markdown
66 lines
1.9 KiB
Markdown
# RAG-Agent — AI-агент с локальной базой знаний
|
|
|
|
## Стек
|
|
- **Python 3.10+**
|
|
- **Qdrant** — векторная база данных
|
|
- **Ollama** — локальные LLM и эмбеддинги (`llama3`, `nomic-embed-text`)
|
|
- **LangChain / LangGraph** — агент с инструментами
|
|
|
|
## Быстрый старт
|
|
|
|
### 1. Установка зависимостей
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### 2. Запуск Ollama и загрузка моделей
|
|
|
|
```bash
|
|
ollama pull llama3
|
|
ollama pull nomic-embed-text
|
|
```
|
|
|
|
### 3. Запуск Qdrant (Docker)
|
|
|
|
```bash
|
|
docker run -d -p 6333:6333 -p 6334:6334 \
|
|
-v qdrant_storage:/qdrant/storage \
|
|
qdrant/qdrant
|
|
```
|
|
|
|
### 4. Инициализация базы знаний из директории
|
|
|
|
```bash
|
|
# Поместите .txt / .md файлы в папку docs/
|
|
python init_knowledge_base.py ./docs
|
|
```
|
|
|
|
### 5. Запуск интерактивного клиента
|
|
|
|
```bash
|
|
python client.py
|
|
```
|
|
|
|
## Команды в клиенте
|
|
|
|
| Команда | Описание |
|
|
|---------|----------|
|
|
| `/add <текст>` | Добавить текст в базу знаний |
|
|
| `/add-file <путь>` | Загрузить файл в базу знаний |
|
|
| `/search <запрос>` | Прямой семантический поиск (без агента) |
|
|
| `/quit` | Выйти |
|
|
| `<любой текст>` | Отправить запрос агенту |
|
|
|
|
## Архитектура
|
|
|
|
```
|
|
client.py ← интерактивный CLI-клиент
|
|
│
|
|
├── agent.py ← create_react_agent (llama3 + RAG-инструменты)
|
|
│ └── tools.py ← @tool: search_knowledge_base, add_to_knowledge_base
|
|
│
|
|
└── vector_store.py ← Qdrant + OllamaEmbeddings + RecursiveCharacterTextSplitter
|
|
|
|
init_knowledge_base.py ← загрузка документов из директории
|
|
``` |