diff --git a/README.md b/README.md index f64bda1..4a3e5fa 100644 --- a/README.md +++ b/README.md @@ -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" +```