73 lines
4.6 KiB
Markdown
73 lines
4.6 KiB
Markdown
# 🤖 Агент корпоративной памяти с 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/) |