You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.6 KiB
4.6 KiB
ШАГ 011 — Спринт 4: AI-помощник (DeepSeek)
Дата: 2026-03-21 Контекст: Мастер-класс по разработке системы тестирования сотрудников клиники.
Запрос
запускам спринт 4
Реализовано
Интеграция с DeepSeek LLM при создании и редактировании тестов. Страница настроек для управления API ключом.
Новые файлы
backend/app/models/setting.py ← модель Setting (key-value)
backend/app/schemas/setting.py ← SettingOut, SettingUpdate
backend/app/services/__init__.py ← пакет services
backend/app/services/llm.py ← DeepSeek клиент (все 4 функции)
backend/app/api/settings.py ← GET/PUT /api/settings/{key}
backend/app/api/llm.py ← POST /api/llm/check|generate|improve|distractors|review
backend/alembic/versions/004_settings.py ← миграция: таблица settings
frontend/src/api/settings.ts ← API клиент настроек
frontend/src/api/llm.ts ← API клиент LLM
frontend/src/pages/Settings/index.tsx ← страница /settings
Изменённые файлы
backend/app/main.py ← зарегистрированы роутеры settings и llm
backend/alembic/env.py ← импорт модели setting
backend/requirements.txt ← добавлен openai==1.57.0
frontend/src/components/TestForm/index.tsx ← добавлены AI-кнопки
frontend/src/App.tsx ← Layout с шапкой, роут /settings
API эндпоинты (новые)
| Метод | URL | Описание |
|---|---|---|
| GET | /api/settings/{key} |
Получить значение настройки |
| PUT | /api/settings/{key} |
Сохранить значение настройки |
| POST | /api/llm/check |
Проверить подключение к DeepSeek |
| POST | /api/llm/generate |
Сгенерировать вопросы по теме |
| POST | /api/llm/improve |
Улучшить формулировку вопроса |
| POST | /api/llm/distractors |
Сгенерировать дистракторы |
| POST | /api/llm/review |
Проверить качество всего теста |
Схема БД (новое)
settings
key VARCHAR(100) PK
value TEXT nullable
updated_at TIMESTAMP auto-updated
AI-функции в форме теста
| Кнопка | Расположение | Действие |
|---|---|---|
| «Сгенерировать с AI» | Над списком вопросов | Открывает модал → ввод темы → превью → «Применить все вопросы» |
| «Проверить тест» | Над списком вопросов | Открывает модал с рекомендациями AI по всему тесту |
| «Улучшить» | В шапке каждого вопроса | Заменяет текст вопроса улучшенной AI-формулировкой |
| «Дистракторы» | В шапке каждого вопроса | Добавляет 3 новых неправильных варианта к вопросу |
Технические детали
- DeepSeek API совместим с OpenAI SDK:
AsyncOpenAI(base_url="https://api.deepseek.com") - Модель:
deepseek-chat response_format={"type": "json_object"}для generate и distractors — гарантирует JSON-ответ- API ключ хранится в таблице
settingsс ключомdeepseek_api_key; фронт ключ не видит - Шапка приложения: новый
LayoutсAppHeader— ссылка «Настройки» в правом углу
Следующие шаги
- Спринт 1: Инфраструктура + Создание тестов
- Спринт 2: Прохождение теста + результат
- Спринт 3: Редактирование + версионность
- Спринт 4: AI-помощник (DeepSeek)
- Спринт 5: Трекер результатов
- Спринт 6: Авторизация и роли
- Спринт 7: Уведомления в MAX