Files
homework-solutions/solutions/6a02e23da6fe2e4ac16acf65_Агент_с_RAG-памятью

Агент с RAG‑памятью

Краткое описание
Проект реализует простого чат‑бота на основе RetrievalAugmented 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