2026-05-28 09:15:15 +00:00
2026-05-28 09:26:55 +00:00
2026-05-28 09:15:22 +00:00
2026-05-28 09:15:27 +00:00
2026-05-28 09:16:29 +00:00
2026-05-28 09:16:02 +00:00
2026-05-28 09:26:45 +00:00
2026-05-28 09:15:09 +00:00
2026-05-28 09:27:16 +00:00

Агент с 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"        # Поиск по базе

Архитектура

  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 – простая команда‑интерфейс для добавления/поиска.

Тесты

Для проверки можно запустить:

python cli.py add sample.txt
python cli.py search "Python"
S
Description
No description provided
Readme 93 KiB
Languages
Python 100%