2.9 KiB
2.9 KiB
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"
}