No description
Find a file
2026-06-15 11:23:17 +03:00
data Initial source code upload 2026-06-15 11:23:17 +03:00
.gitignore Initial source code upload 2026-06-15 11:23:17 +03:00
.Rhistory Initial source code upload 2026-06-15 11:23:17 +03:00
app_interests.py Initial source code upload 2026-06-15 11:23:17 +03:00
models.py Initial source code upload 2026-06-15 11:23:17 +03:00
predict.py Initial source code upload 2026-06-15 11:23:17 +03:00
README.md Initial source code upload 2026-06-15 11:23:17 +03:00
requirements.txt Initial source code upload 2026-06-15 11:23:17 +03:00

Репозиторий содержит исходный код сервиса для рекомендации направлений подготовки на основе текстового описания интересов пользователя.

Проект относится к программному обеспечению "Система рекомендаций карьерных и образовательных траекторий абитуриентов на основе больших языковых моделей".

Состав репозитория

app_interests.py — FastAPI-приложение для запуска сервиса рекомендаций. Содержит загрузку модели, схемы входных и выходных данных, эндпоинты /health и /predict.

models.py — основная логика рекомендательной модели. Содержит класс Model, функции инференса для бакалавриата, специалитета, магистратуры и ординатуры, расчет эмбеддингов и поиск ближайших образовательных программ по cosine similarity.

predict.py — модуль инференса, совместимый с внешним интерфейсом вызова модели. Используется для загрузки модели и обработки входного запроса.

data/ — директория для входных и промежуточных данных.

requirements.txt — Python-зависимости проекта.

Данные

Для запуска сервиса необходимо использование следующих файлов в директории data/ :

  • bachelor_desc_final.csv — описания направлений бакалавриата.
  • specialists_desc_final.csv — описания специальностей специалитета.
  • masters_desc_final.csv — описания программ магистратуры.
  • ordinatura_full_desc_gpt_edition.csv — описания программ ординатуры.
  • ege.csv — таблица соответствия образовательных программ и предметов ЕГЭ.
  • embeddings_one_sent_IT_gpt_edition_frida.csv — эмбеддинги для направлений бакалавриата.
  • embeddings_specialist_frida.csv — эмбеддинги для специальностей специалитета.
  • embeddings_masters_frida.csv — эмбеддинги для программ магистратуры.
  • embeddings_ordinatura_frida.csv — эмбеддинги для программ ординатуры.

Запуск

Создайте и активируйте окружение Python.

Установите зависимости:

pip install -r requirements.txt

Запустите сервис:

python -m uvicorn app_interests:app --host 0.0.0.0 --port 8052

Проверьте состояние сервиса:

curl http://localhost:8052/health

Формат запроса

Сервис принимает POST-запрос на эндпоинт /predict.

Пример запроса:

{
  "inputs": [
    {
      "name": "text",
      "datatype": "str",
      "data": "Интересуюсь программированием, искусственным интеллектом и анализом данных"
    },
    {
      "name": "func",
      "datatype": "str",
      "data": "bachelor_specialist"
    },
    {
      "name": "ege",
      "datatype": "str",
      "data": "{\"math\": 1, \"rus\": 1, \"inf\": 1}"
    }
  ],
  "output_fields": [
    {
      "name": "result",
      "datatype": "str"
    }
  ],
  "parameters": [],
  "model_key": ""
}

Поддерживаемые режимы рекомендации

В поле func можно передать один из следующих режимов:

  • bachelor — рекомендации для направлений бакалавриата.
  • specialist — рекомендации для специальностей специалитета.
  • master — рекомендации для программ магистратуры.
  • ordinatura — рекомендации для программ ординатуры.
  • bachelor_specialist — объединенные рекомендации для бакалавриата и специалитета.
  • master_ordinatura — объединенные рекомендации для магистратуры и ординатуры.

Результаты

Сервис возвращает список рекомендованных образовательных программ в поле outputs.

Для каждого запроса модель подбирает наиболее близкие направления или специальности на основе эмбеддингов текста пользователя и описаний образовательных программ.

Для бакалавриата и специалитета дополнительно учитываются выбранные пользователем предметы ЕГЭ.

Модель

Для построения эмбеддингов используется модель ai-forever/FRIDA.

Поиск релевантных образовательных программ выполняется через расчет косинусной близости между эмбеддингом пользовательского запроса и заранее подготовленными эмбеддингами описаний программ.

Дополнительно в модели реализована обработка ключевых слов, связанных с искусственным интеллектом, машинным обучением, нейронными сетями, LLM и программированием.