Skip to content

Implimentation of an llm model being hosted to present user relevant information about ITMO university and provide links

Notifications You must be signed in to change notification settings

ZakharNeverov/itmo-llm-consult

 
 

Repository files navigation

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

About

Implimentation of an llm model being hosted to present user relevant information about ITMO university and provide links

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 89.5%
  • PLpgSQL 8.4%
  • Dockerfile 1.4%
  • Shell 0.7%