Update README.md
This commit is contained in:
@@ -1,73 +1,33 @@
|
|||||||
# 🤖 Агент корпоративной памяти с RAG (RAG Agent)
|
# RAG Agent Project
|
||||||
|
|
||||||
Этот проект реализует интеллектуального ассистента, который использует векторную базу знаний 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`. Затем скачайте необходимые модели через терминал:
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
```bash
|
```bash
|
||||||
ollama pull llama3 # Основная модель для генерации ответов
|
python -m venv .venv
|
||||||
ollama pull nomic-embed-text # Модель эмбеддингов (для векторного поиска)
|
source .venv/bin/activate
|
||||||
```
|
|
||||||
|
|
||||||
### Шаг 2: Запуск Qdrant
|
|
||||||
Рекомендуется запустить Qdrant в Docker для простоты.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker run -p 6333:6333 qdrant/qdrant
|
|
||||||
```
|
|
||||||
*Убедитесь, что порт `6333` свободен.*
|
|
||||||
|
|
||||||
### Шаг 3: Установка Python зависимостей
|
|
||||||
Клонируйте репозиторий и установите все необходимые библиотеки.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Предполагая, что вы в корневой папке проекта
|
|
||||||
pip install -r requirements.txt
|
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
|
```bash
|
||||||
python agent.py
|
python agent.py
|
||||||
```
|
```
|
||||||
|
|
||||||
При первом запуске агент автоматически проинициализирует коллекцию в Qdrant и загрузит имитацию начальных данных (Политика отпусков, Оплата труда).
|
## Development
|
||||||
|
- Tests are not included but can be added in `tests/`.
|
||||||
## 💬 Команды CLI
|
- Lint with `ruff .` and format with `black .`.
|
||||||
|
|
||||||
Агент работает в интерактивном режиме. Используйте следующие команды:
|
|
||||||
|
|
||||||
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/)
|
|
||||||
Reference in New Issue
Block a user