3.4 KiB
3.4 KiB
Агент с RAG‑памятью
Краткое описание
Проект реализует простого чат‑бота на основе Retrieval‑Augmented Generation (RAG).
Бот хранит документы в векторном хранилище Qdrant, извлекает релевантные фрагменты при помощи эмбеддингов OpenAI и генерирует ответы с помощью модели GPT‑4 (или любой другой LLM, поддерживаемой LangChain).
Установка
# Клонируйте репозиторий
git clone https://github.com/yourusername/rag-agent.git
cd rag-agent
# Создайте виртуальное окружение (необязательно, но рекомендуется)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Установите зависимости
pip install -r requirements.txt
Важно
- Для работы с OpenAI вам понадобится переменная окружения
OPENAI_API_KEY.- Для Qdrant можно использовать локальный сервер (порт 6333) или облачный сервис.
- Если вы хотите использовать другой LLM, поменяйте параметры в
solution.py.
Запуск
1. Инициализация векторного хранилища
python solution.py init
Команда создаст коллекцию
documentsв Qdrant и загрузит в неё все файлы из папкиdata/.
Для больших наборов данных можно изменитьchunk_sizeиchunk_overlapвRecursiveCharacterTextSplitter.
2. Запуск FastAPI сервера
uvicorn solution:app --reload
После запуска сервер будет доступен по адресу
http://127.0.0.1:8000.
Swagger UI:http://127.0.0.1:8000/docs.
3. Отправка запроса к боту
curl -X POST "http://127.0.0.1:8000/chat" \
-H "Content-Type: application/json" \
-d '{"question":"Какой климат в Сибири?"}'
Ответ будет в формате:
{
"answer": "Сибирь характеризуется холодным континентальным климатом..."
}
Пример использования
import requests
url = "http://127.0.0.1:8000/chat"
payload = {"question": "Какие книги рекомендованы для изучения Python?"}
response = requests.post(url, json=payload)
print(response.json()["answer"])
Вывод:
Для начала изучения Python рекомендую следующие книги: "Automate the Boring Stuff with Python" и "Python Crash Course". Если вы хотите углубиться в продвинутые темы, обратите внимание на "Fluent Python" и "Effective Python".
Структура проекта
rag-agent/
├── data/ # Папка с исходными документами
├── solution.py # Основной скрипт
├── requirements.txt
└── README.md
Лицензия
MIT © 2026