From 99968f5d1abdb1eebab3148b60d90434cca0a142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=B8=D1=8F=20=D0=91=D0=B5=D1=80=D0=B4?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2=D0=B0?= Date: Thu, 28 May 2026 10:10:39 +0000 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..64019df --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# RAG-Agent — AI-агент с локальной базой знаний + +## Стек +- **Python 3.10+** +- **Qdrant** — векторная база данных +- **Ollama** — локальные LLM и эмбеддинги (`llama3`, `nomic-embed-text`) +- **LangChain / LangGraph** — агент с инструментами + +## Быстрый старт + +### 1. Установка зависимостей + +```bash +pip install -r requirements.txt +``` + +### 2. Запуск Ollama и загрузка моделей + +```bash +ollama pull llama3 +ollama pull nomic-embed-text +``` + +### 3. Запуск Qdrant (Docker) + +```bash +docker run -d -p 6333:6333 -p 6334:6334 \ + -v qdrant_storage:/qdrant/storage \ + qdrant/qdrant +``` + +### 4. Инициализация базы знаний из директории + +```bash +# Поместите .txt / .md файлы в папку docs/ +python init_knowledge_base.py ./docs +``` + +### 5. Запуск интерактивного клиента + +```bash +python client.py +``` + +## Команды в клиенте + +| Команда | Описание | +|---------|----------| +| `/add <текст>` | Добавить текст в базу знаний | +| `/add-file <путь>` | Загрузить файл в базу знаний | +| `/search <запрос>` | Прямой семантический поиск (без агента) | +| `/quit` | Выйти | +| `<любой текст>` | Отправить запрос агенту | + +## Архитектура + +``` +client.py ← интерактивный CLI-клиент +│ +├── agent.py ← create_react_agent (llama3 + RAG-инструменты) +│ └── tools.py ← @tool: search_knowledge_base, add_to_knowledge_base +│ +└── vector_store.py ← Qdrant + OllamaEmbeddings + RecursiveCharacterTextSplitter + +init_knowledge_base.py ← загрузка документов из директории +``` \ No newline at end of file