From ff3f360241dc0514b706f569a2fed52dc063b2a5 Mon Sep 17 00:00:00 2001 From: balabanovan530 <175+balabanovan530@noreply.localhost> Date: Thu, 28 May 2026 12:24:46 +0000 Subject: [PATCH] Update README.md --- README.md | 84 +++++++++++++++---------------------------------------- 1 file changed, 22 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 029b4e9..108b120 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,33 @@ -# 🤖 Агент корпоративной памяти с RAG (RAG Agent) - -Этот проект реализует интеллектуального ассистента, который использует векторную базу знаний Qdrant для извлечения контекстной информации (Retrieval-Augmented Generation, RAG). Все LLM и эмбеддинги обрабатываются локально через Ollama. - -## 🚀 Обзор функционала -Агент способен: -1. **Отвечать на вопросы:** Использовать семантический поиск по базе знаний Qdrant для предоставления точных ответов (RAG). -2. **Индексировать данные:** Получить новые документы от пользователя и добавить их в базу знаний, чтобы агент мог использовать эту информацию в будущем. - -## 🛠️ Требования к окружению -Для работы агента необходимы следующие компоненты: -1. **Python 3.10+** -2. **Ollama:** Локальный сервер для запуска LLM и эмбеддингов. -3. **Qdrant:** Векторная база данных (рекомендуется запуск Docker-контейнера). - -## ⚙️ Установка зависимостей - -### Шаг 1: Запуск Ollama -Установите [Ollama](https://ollama.com/) и убедитесь, что он запущен на `http://localhost:11434`. Затем скачайте необходимые модели через терминал: +# RAG Agent Project +## Installation ```bash -ollama pull llama3 # Основная модель для генерации ответов -ollama pull nomic-embed-text # Модель эмбеддингов (для векторного поиска) -``` - -### Шаг 2: Запуск Qdrant -Рекомендуется запустить Qdrant в Docker для простоты. - -```bash -docker run -p 6333:6333 qdrant/qdrant -``` -*Убедитесь, что порт `6333` свободен.* - -### Шаг 3: Установка Python зависимостей -Клонируйте репозиторий и установите все необходимые библиотеки. - -```bash -# Предполагая, что вы в корневой папке проекта +python -m venv .venv +source .venv/bin/activate pip install -r requirements.txt ``` -## ▶️ Запуск Агента +## Environment Variables +- `OPENAI_API_KEY` – API key for OpenAI or Ollama. If using local Ollama set `OPENAI_API_BASE_URL=http://localhost:11434/v1`. -Запустите скрипт `agent.py` из командной строки: +## Usage +### Load documents into vector store +```bash +python init_loader.py /path/to/text/files +``` +### Start interactive CLI +```bash +python cli_client.py /add --text "Your document content" +python cli_client.py /search --text "What is LangChain?" +python cli_client.py /quit +``` + +### Run agent directly ```bash python agent.py ``` -При первом запуске агент автоматически проинициализирует коллекцию в Qdrant и загрузит имитацию начальных данных (Политика отпусков, Оплата труда). - -## 💬 Команды CLI - -Агент работает в интерактивном режиме. Используйте следующие команды: - -1. **Задать вопрос:** Просто введите ваш вопрос. Агент автоматически использует `search_knowledge_base` для поиска и генерации ответа на основе найденного контекста. -2. **Искать информацию по запросу (Явный вызов):** - ``` - /search <ваш запрос> - # Пример: /search условия отпуска - ``` -3. **Добавить новую информацию:** Используйте эту команду, когда вам нужно обучить агента на новом документе или тексте. Контент должен быть заключен в кавычки. - ``` - /add "<Полный текст нового документа>" "<Тема для индексации>" - # Пример: /add "Новый раздел о командировочных расходах..." "Политика командировок" - ``` - -## ⚠️ Важные замечания -* **Конфигурация:** Код предполагает, что Ollama запущен на `http://localhost:11434` и Qdrant — на `localhost:6333`. Измените константы в `agent.py`, если используются другие адреса. -* **Обработка ошибок:** В коде реализована базовая обработка исключений для случаев, когда Ollama или Qdrant недоступны. - -## 📚 Документация -[LangChain Documentation](https://docs.langchain.com/) \ No newline at end of file +## Development +- Tests are not included but can be added in `tests/`. +- Lint with `ruff .` and format with `black .`. \ No newline at end of file