Skip to content

Latest commit

 

History

History
62 lines (49 loc) · 2.92 KB

README.md

File metadata and controls

62 lines (49 loc) · 2.92 KB

ITMO Base Knowledge RAG Agent

Используем crawler для скрейпинга всех сайтов, которые относятся к ИТМО, преобразуем html страницы в удобный для нашего RAG - Markdown формат, делаем это как можно эффективней, преобразуем это в vector db, для расширения knowledge base, кешируем информацию. Зачем? - training cutoff всегда происходит раньше релевантной пользователю информации.

Инференсим модельку на полученной knowledge base и просим, исходя из вариантов ответа выбрать правильный, заранее проверив, предполагает ли вопрос варианты ответа.

TODO: Доимплиментировать supabase

FastAPI Baseline Service

Это пример базового приложения, которое реализует API для получения запроса и возврата ответа. Приложение написано на FastAPI, разворачивается при помощи docker-compose.

Сборка

Для запуска выполните команду:

docker-compose up -d

Она соберёт Docker-образ, а затем запустит контейнер.

После успешного запуска контейнера приложение будет доступно на http://localhost:8080.

Проверка работы

Отправьте POST-запрос на эндпоинт /api/request. Например, используйте curl:

curl --location --request POST 'http://localhost:8080/api/request' \
--header 'Content-Type: application/json' \
--data-raw '{
  "query": "В каком городе находится главный кампус Университета ИТМО?\n1. Москва\n2. Санкт-Петербург\n3. Екатеринбург\n4. Нижний Новгород",
  "id": 1
}'

В ответ вы получите JSON вида:

{
  "id": 1,
  "answer": 1,
  "reasoning": "Из информации на сайте",
  "sources": [
    "https://itmo.ru/ru/",
    "https://abit.itmo.ru/"
  ]
}

id будет соответствовать тому, что вы отправили в запросе, answer (в базовой версии) всегда будет 5.

Кастомизация

Чтобы изменить логику ответа, отредактируйте функцию handle_request в main.py. Если нужно использовать дополнительные библиотеки, добавьте их в requirements.txt и пересоберите образ.

Чтобы остановить сервис, выполните:

docker-compose down