Files
task-6a02e23da6fe2e4ac16acf65/README.md
T
2026-05-28 09:16:02 +00:00

47 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Агент с RAG‑памятью
## Что делает проект
Реализован AI‑агент, использующий локальное векторное хранилище ChromaDB и Ollama для эмбеддингов. Агент умеет добавлять документы (разбивая их на чанки) и выполнять семантический поиск.
## Структура файлов
| Файл | Назначение |
|------|------------|
| `main.py` | Точка входа, демонстрация работы агента. |
| `requirements.txt` | Пакеты‑зависимости. |
| `README.md` | Это описание. |
| `chunker.py` | Разбиение текста на чанки (500/100). |
| `vector_store.py` | Работа с ChromaDB: добавление и поиск. |
| `tools.py` | Декорированные инструменты RAG‑агента. |
| `agent.py` | Создание агента через `create_agent`. |
| `cli.py` | CLI для интерактивного теста. |
| `init_documents.py` | Скрипт загрузки всех файлов из каталога в базу. |
## Установка
```bash
pip install -r requirements.txt
# Ollama: pull nomic-embed-text (для эмбеддингов)
```
## Примеры использования
```bash
python cli.py add path/to/file.txt # Добавить документ
python cli.py search "Python" # Поиск по базе
```
## Архитектура
1. **LLM** `ChatOpenAI` через BroJS, но для эмбеддингов используется Ollama.
2. **Embeddings** `OllamaEmbeddings(model="nomic-embed-text")`.
3. **Vector store** – ChromaDB коллекция «rag_collection» в папке chromadb.
4. **Chunking** `RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=100)`.
5. **Tools** `search_knowledge_base`, `add_to_knowledge_base` с декоратором `@tool`.
6. **Agent** `create_agent` с системным промптом и доступом к инструментам.
7. **CLI** – простая команда‑интерфейс для добавления/поиска.
---
### Тесты
Для проверки можно запустить:
```bash
python cli.py add sample.txt
python cli.py search "Python"
```