Спринт 4: AI-помощник на базе DeepSeek
- Страница /settings: ввод и проверка API ключа DeepSeek - POST /api/llm/generate — генерация вопросов по названию теста - POST /api/llm/improve — улучшение формулировки вопроса + ответов (модал с галочками) - POST /api/llm/distractors — генерация дистракторов - POST /api/llm/review — рецензия теста + кнопка «Предложить вариант» - POST /api/llm/improve_all — улучшение всего теста с постатейным сравнением - Миграция 004: таблица settings (key-value) - Шапка приложения с навигацией на /settings Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+22
-15
@@ -102,34 +102,41 @@
|
||||
|
||||
---
|
||||
|
||||
## Спринт 4 — AI-помощник (DeepSeek)
|
||||
## Спринт 4 — AI-помощник (DeepSeek) ✅
|
||||
|
||||
**Результат:** При создании и редактировании теста доступен AI-ассистент на базе DeepSeek. Ключ API настраивается через страницу настроек.
|
||||
**Статус:** Завершён и протестирован вручную в браузере.
|
||||
|
||||
### Страница настроек (`/settings`)
|
||||
- [ ] Модель БД: `Setting` (key-value, ключ `deepseek_api_key`)
|
||||
- [ ] Миграция `004`
|
||||
- [ ] API: `GET /api/settings/{key}`, `PUT /api/settings/{key}`
|
||||
- [ ] API: `POST /api/llm/check` — проверить подключение (тестовый запрос к DeepSeek)
|
||||
- [ ] Фронт: страница `/settings` — поле для ввода ключа + кнопка «Проверить подключение»
|
||||
- [x] Модель БД: `Setting` (key-value, ключ `deepseek_api_key`)
|
||||
- [x] Миграция `004`
|
||||
- [x] API: `GET /api/settings/{key}`, `PUT /api/settings/{key}`
|
||||
- [x] API: `POST /api/llm/check` — проверить подключение (тестовый запрос к DeepSeek)
|
||||
- [x] Фронт: страница `/settings` — поле для ввода ключа + кнопка «Проверить подключение»
|
||||
|
||||
### AI-функции в форме создания/редактирования теста
|
||||
- [ ] API: `POST /api/llm/generate` — сгенерировать вопросы и ответы по теме
|
||||
- [ ] API: `POST /api/llm/improve` — улучшить формулировку вопроса
|
||||
- [ ] API: `POST /api/llm/distractors` — добавить варианты-дистракторы к вопросу
|
||||
- [ ] API: `POST /api/llm/review` — проверить качество всего теста
|
||||
- [x] API: `POST /api/llm/generate` — сгенерировать вопросы и ответы по теме
|
||||
- [x] API: `POST /api/llm/improve` — улучшить формулировку вопроса
|
||||
- [x] API: `POST /api/llm/distractors` — добавить варианты-дистракторы к вопросу
|
||||
- [x] API: `POST /api/llm/review` — проверить качество всего теста
|
||||
|
||||
### Интеграция в UI
|
||||
- [ ] Кнопка «Сгенерировать с AI» на странице создания теста — вводишь тему, получаешь готовый набор вопросов
|
||||
- [ ] Кнопка «✨» рядом с каждым вопросом — улучшить формулировку
|
||||
- [ ] Кнопка «+ Дистракторы» рядом с каждым вопросом — дополнить неправильные варианты
|
||||
- [ ] Кнопка «Проверить тест» — AI анализирует весь тест и выдаёт рекомендации
|
||||
- [ ] Ссылка на страницу `/settings` в шапке приложения
|
||||
- [x] Кнопка «Сгенерировать с AI» над списком вопросов — ввод темы → превью → «Применить все вопросы»
|
||||
- [x] Кнопка «Улучшить» в шапке каждого вопроса — заменяет формулировку AI-версией
|
||||
- [x] Кнопка «Дистракторы» в шапке каждого вопроса — добавляет 3 новых неправильных варианта
|
||||
- [x] Кнопка «Проверить тест» — AI анализирует весь тест и выдаёт рекомендации в модале
|
||||
- [x] Ссылка «Настройки» в шапке приложения (новый Layout с AppHeader)
|
||||
|
||||
### Технические детали
|
||||
- DeepSeek API совместим с форматом OpenAI — используем библиотеку `openai` с `base_url=https://api.deepseek.com`
|
||||
- Модель: `deepseek-chat`
|
||||
- Ключ хранится в таблице `settings`, передаётся из бэкенда — фронт ключ не видит
|
||||
- `response_format={"type": "json_object"}` для generate, distractors, improve, improve_all — гарантирует структурированный ответ
|
||||
|
||||
### Доработки после тестирования
|
||||
- [x] «Сгенерировать с AI»: убран вопрос про тему — используется название теста; кнопка задизаблена пока название не заполнено
|
||||
- [x] «Улучшить»: открывает модал с постатейным сравнением (вопрос + каждый ответ) и галочками вместо прямой замены
|
||||
- [x] «Проверить тест»: добавлена кнопка «Предложить вариант» — вызывает `POST /api/llm/improve_all`, показывает сравнение всего теста с галочками
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user