Add README.md
This commit is contained in:
@@ -1,2 +1,46 @@
|
|||||||
# task-6a02e23da6fe2e4ac16acf65
|
# Агент с 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"
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user