2026-05-27 15:55:36 +03:00
2026-05-27 15:55:36 +03:00
2026-05-27 15:55:36 +03:00
2026-05-27 15:55:36 +03:00
2026-05-27 15:55:36 +03:00
2026-05-27 15:55:36 +03:00
2026-05-27 15:55:36 +03:00
2026-05-27 15:55:36 +03:00

SUNT — бекенд

Серверная часть системы мета-мониторинга качества ответов больших языковых моделей.

Структура проекта

sunt-backend/
├── server.py              # Точка входа, FastAPI-приложение
├── services/
│   ├── yandex.py          # Обёртка над Яндекс Cloud API
│   └── meta_prompt.py     # Промпты для модели
├── frontend/              # Сюда кладёшь файлы фронтенда
│   ├── index.html
│   ├── styles.css
│   └── app.js
├── .env                   # API-ключ (не коммитить в git!)
├── .env.example           # Шаблон для .env
├── requirements.txt
└── README.md

Установка и запуск

1. Создать виртуальное окружение

python -m venv venv

# Windows
venv\Scripts\activate

# Linux / macOS
source venv/bin/activate

2. Установить зависимости

pip install -r requirements.txt

3. Создать файл .env

cp .env.example .env

Открыть .env и вписать свой API-ключ:

YANDEX_API_KEY=ваш_апи_ключ
YANDEX_FOLDER_ID=b1g86m7ujd7bebiuah91

4. Положить файлы фронтенда

Скопировать index.html, styles.css, app.js в папку frontend/.

5. Запустить сервер

uvicorn server:app --host 0.0.0.0 --port 3000 --reload

После этого открыть в браузере: http://localhost:3000

Флаг --reload позволяет серверу автоматически перезапускаться при изменении кода — удобно при разработке. На продакшен-сервере его убрать.

Деплой на сервер

Команда для запуска на сервере (без автоперезагрузки, с несколькими воркерами):

uvicorn server:app --host 0.0.0.0 --port 3000 --workers 2

Если используется nginx как reverse proxy, проксировать на localhost:3000.

API

POST /api/message

Единственный эндпоинт. Принимает JSON двух видов.

Стандартный запрос:

{
  "type": "standard_request",
  "user_request": "Текст запроса пользователя",
  "mode": "standard"
}

Запрос мета-мониторинга:

{
  "type": "meta_monitoring_request",
  "user_request": "Текст исходного запроса пользователя",
  "model_answer": "Текст ответа стандартной модели",
  "mode": "meta_monitoring"
}
Description
No description provided
Readme 52 KiB
Languages
Python 35.4%
JavaScript 35.3%
CSS 19.3%
HTML 10%