2.3 KiB
2.3 KiB
Агент с 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 |
Скрипт загрузки всех файлов из каталога в базу. |
Установка
pip install -r requirements.txt
# Ollama: pull nomic-embed-text (для эмбеддингов)
Примеры использования
python cli.py add path/to/file.txt # Добавить документ
python cli.py search "Python" # Поиск по базе
Архитектура
- LLM –
ChatOpenAIчерез BroJS, но для эмбеддингов используется Ollama. - Embeddings –
OllamaEmbeddings(model="nomic-embed-text"). - Vector store – ChromaDB коллекция «rag_collection» в папке chromadb.
- Chunking –
RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=100). - Tools –
search_knowledge_base,add_to_knowledge_baseс декоратором@tool. - Agent –
create_agentс системным промптом и доступом к инструментам. - CLI – простая команда‑интерфейс для добавления/поиска.
Тесты
Для проверки можно запустить:
python cli.py add sample.txt
python cli.py search "Python"