# 🤖 Агент корпоративной памяти с 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`. Затем скачайте необходимые модели через терминал: ```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 # Предполагая, что вы в корневой папке проекта pip install -r requirements.txt ``` ## ▶️ Запуск Агента Запустите скрипт `agent.py` из командной строки: ```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/)