45 lines
9.6 KiB
Markdown
45 lines
9.6 KiB
Markdown
# Постановка для прототипа техподдержки онлайн-школы ЕГЭ
|
|
|
|
Ты — инженер по внедрению ИИ, разработчик Node.js и бизнес-аналитик. Подготовь к сдаче рабочий прототип для вакансии «Специалист по внедрению ИИ». Если код проекта уже есть, сначала изучи его и доработай существующие сценарии. Интерфейс и материалы сдачи на русском языке.
|
|
|
|
## Задача и каналы
|
|
|
|
У онлайн-школы два отдельных чата на сайте. Один предназначен для пользователей, второй — для сотрудников. Сервер определяет роль по чату и сохраняет её в диалоге. Обе очереди видны оператору. В рабочем контуре сервер школы выдаёт доступ к служебному чату после проверки роли. Локальное демо позволяет открыть оба чата без ключа и посмотреть сценарии на учебных сообщениях.
|
|
|
|
Оператор проверяет телеметрию и материалы в админке, помогает с документами, передаёт подтверждённые баги разработчикам с пометкой «баг» и шагами воспроизведения. Доступы выдаёт по проверенной заявке. Материалы для датасета можно использовать с согласия автора.
|
|
|
|
## Диалог и работа оператора
|
|
|
|
Сделай чат с историей. Один диалог соответствует одной рабочей заявке. Первое содержательное сообщение создаёт её, следующие сообщения добавляют детали и дают классификатору контекст. Оператор читает историю, редактирует черновик и явно отправляет ответ. Отправленная реплика появляется в исходном диалоге. Пользователь может начать новое обращение. История сохраняется при обновлении страницы и перезапуске сервера.
|
|
|
|
Сохрани очередь, ручной ввод для оператора, правки категории и статуса, CSV. Отдельно покажи папку «Спам». Повтор одной сетевой отправки должен возвращать существующее сообщение. Заявки прошлой версии должны открываться после обновления базы.
|
|
|
|
Добавь «Выход» в оба чата и панель оператора. В панели добавь «Очистить буфер» с подтверждением удаления всех заявок, спама и истории обоих чатов из SQLite. Старая отправка, завершившаяся после очистки, не должна вернуть удалённое обращение.
|
|
|
|
## Модерация и маршрутизация
|
|
|
|
- В пользовательском чате отказывай на запросы админских прав и закрытой информации сайта. Явные попытки отправляй в «Спам». Обычный запрос на помощь со своим аккаунтом оставляй в рабочей очереди.
|
|
- Бессмысленные наборы букв и фразы отправляй в «Спам». Считай номер ошибки, название устройства и короткий ответ оператору возможным уточнением по заявке.
|
|
- При первом сообщении с матом попроси писать вежливо. При повторе в том же диалоге предупреди о возможной блокировке. Содержательную часть запроса оставь в работе. Решение о блокировке учётной записи остаётся за оператором.
|
|
- В служебном чате запросы на рабочие доступы передавай на ручную проверку полномочий. Сотрудник может сообщать о сбое у учеников. Такая заявка получает пользовательский приоритет и сохраняет служебный источник.
|
|
|
|
Применяй правила доступа и предупреждения на сервере. Текст автора является данными. Ответы модерации отправляются в чат, черновики классификатора видны оператору. Сообщение, отправленное в спам, сохраняется отдельно и не перезаписывает рабочую заявку диалога.
|
|
|
|
Правила про бессмысленные сообщения и мат действуют в обоих чатах. Запросы на доступы и закрытые сведения в служебном чате проверяет оператор в рамках рабочих полномочий.
|
|
|
|
## Классификация и стек
|
|
|
|
Используй Node.js 24+, встроенный HTTP, SQLite и HTML, CSS и JavaScript. Запуск командой `node server.mjs`. Чат пользователей открывается на `/site-chat`, сотрудников — на `/staff-chat`, панель оператора — на `/`. Сохраняй исходную роль, тему, категорию, текст, обоснование, черновик, статус и историю сообщений. Отображай канал и очередь отдельно.
|
|
|
|
Обращение получает одну из категорий `urgent`, `normal` и `spam`. Сначала идут пользовательские обращения, затем внутренние. Внутри каждой очереди срочные заявки выше обычных. Внутренний сбой, который блокирует работу, может быть срочным. Сообщения об идущем недоступном вебинаре или о близком дедлайне получают высокий приоритет. При нехватке сведений предложи уточнение и ручную проверку.
|
|
|
|
В деморежиме используй локальные правила. В режиме `llm` вызывай Qwen3.6 35B через Yandex AI Studio и проверяй структурированный ответ перед записью. Инструкцию для модели храни в `triage-prompt.md`. Не передавай в модель закрытые сведения. Ключи остаются в серверном окружении. При сбое сохрани возможность повторить отправку с тем же ID. Для служебной сессии в режиме ИИ используй токен сервера сайта.
|
|
|
|
## Схема, расчёт и проверка
|
|
|
|
Подготовь две схемы по шесть шагов и одностраничный план внедрения. Включи три риска и меры. Это пропущенная срочность, раскрытие данных и ошибочное действие оператора. За исходные допущения возьми 150 заявок в неделю. Для 120 заявок экономия 1,5 минуты даёт 3 часа в неделю. При двух обрабатываемых сообщениях на заявку, 1 000 входных и 200 выходных токенах на вызов ориентир по расходам составляет 78 ₽ в неделю по проверенному тарифу. В пилоте замерь фактический расход токенов и время оператора. [Тарифы Yandex AI Studio](https://aistudio.yandex.ru/ru/docs/ai-studio/pricing).
|
|
|
|
Проверь из распакованного архива два сообщения в одной заявке, ответ оператора, отдельный новый диалог, историю после перезапуска, проверку доступа к служебной сессии, отказ по закрытой информации, спам, первое и повторное предупреждение, сохранение реального запроса с матом, повторную отправку и обновление старой базы. Укажи, какие проверки сделаны с имитатором модели.
|
|
|
|
Для сдачи собери архив с кодом, README, схемой и планом, этой постановкой и логом работы с ИИ. В логе приводи сокращённые формулировки запросов по переписке и фактически пройденные проверки.
|