Гайд · TNWS AI
Как собирать жалобы на ответы AI через flagging в Gradio
Включаем ручную оценку конкретного ответа, раздельно проверяем выбор пользователя и хранение чувствительных данных.
Задача и применимость
Русскоязычный вопрос: «как собрать обратную связь на ответы нейросети gradio flagging». Для ChatInterface Gradio с включённым flagging_mode="manual". Схема параметров сверена 20 сентября 2026 года; фактический формат файлов и права каталога проверьте на своей установленной версии, потому что справка Interface и отдельные руководства описывают различные реализации сохранения.
Что подтверждено производителем
ChatInterface документирует flagging_mode со значениями never/manual, flagging_options с вариантами Like и Dislike и flagging_dir для сохранения помеченных данных. Пользовательская оценка субъективна и может означать фактическую ошибку, неполный ответ или неудобный стиль — эти причины нельзя автоматически смешивать в одну метрику точности.
Порядок действий
- Создайте внутренний тест с вымышленным вопросом и заведомо неполным ответом.
- Включите manual и добавьте понятные категории оценки.
- Оцените конкретное сообщение, а не всю беседу в целом.
- Проверьте, появились ли данные в заданной директории и какие именно поля сохранились.
- Перед реальными пользователями ограничьте права файлов и установите срок удаления.
Готовый шаблон
Сохраните пример в отдельном файле Python. В коде нет реального секрета или скрытого вызова модели: если подключён внешний API, его адрес и параметры указаны явно. Установите gradio в отдельном окружении; дополнительные пакеты требуются только там, где они импортированы в примере.
import gradio as gr
def answer(message, history):
return "Данные о сроке возврата в этом тестовом ответе отсутствуют."
demo = gr.ChatInterface(answer, flagging_mode="manual",
flagging_options=["Like", "Dislike", "Нужен источник"],
flagging_dir="feedback_test", title="Тест оценки ответа")
demo.launch(server_name="127.0.0.1")
Вход и ожидаемый результат
На запрос «Сколько дней даётся на возврат?» тестовый ответ прямо говорит об отсутствии срока. Отметьте «Нужен источник»; ожидается соответствующий выбор в UI и запись в настроенном каталоге, если версия так сохраняет пометки. Проверку содержимого файла проводите локально: нельзя обещать один формат логов без проверки установленного пакета.
Проверка контракта
Оценки пользователей помогают выбрать случаи для ручного аудита, но не заменяют эталонную разметку. Один человек может поставить Dislike за сухой стиль, другой — за неверный факт. Для улучшения модели сохраняйте вместе с оценкой отдельно интерпретацию причины, подтверждающий источник, версию модели и разрешение на обработку данных. Если исходные тексты содержат персональную информацию, не отправляйте их автоматически во внешнюю таблицу обратной связи.
Работа с данными пользователя
Каталог flagging_dir — место хранения, не система управления доступом. На общем сервере проверьте, кто может читать файл, сколько времени он остаётся после перезапуска и попадает ли в резервное копирование. Не предоставляйте путь к каталогу как статический веб-ресурс. Для публичного сервиса наладьте модерацию и механизм удаления по запросу пользователя. При необходимости собирайте обезличенную оценку без полного текста сообщения, но убедитесь, что она остаётся связана с конкретным контрольным случаем.
Что проверить перед развёртыванием
Чтобы выявить регрессию, возьмите десять вопросов с проверяемыми ответами, пометьте пять реально ошибочных и пять корректных. Сравните пользовательские оценки с ручной проверкой: низкое совпадение означает, что сигнал шумный. Не настраивайте модель по единственному клику. После обновления интерфейса убедитесь, что варианты локализованы и кнопка оценки относится к правильному сообщению, особенно в длинном чате.
Готовый шаблон записи для редактора: «Вопрос; цитата проблемного ответа; документ-эталон и пункт; тип ошибки: фактическая/источник/формат/опасное действие; приоритет; дата проверки». Например, ответ «7 дней» при документе «14 дней» — фактическая ошибка. Отсутствие источника при корректном числе — другой тип. Эти метки помогают исправлять конкретную проблему вместо безадресного изменения промпта.
Если жалоба относится к вредному ответу, у процесса разборки должен быть ответственный человек и срок реагирования, а не просто новая строка в файле. Отделите срочные случаи от стилистических пожеланий. Для редакторской метрики считайте количество подтверждённых ошибок на проверенное число ответов; доля жалоб сама по себе зависит от активности аудитории. Не показывайте другим пользователям содержание чужого отзыва. Для каждого принятого сигнала сохраняйте статус рассмотрения, иначе жалобы на одну и ту же ошибку будут бесконечно накапливаться без исправления.
Критерии приёмки
- Кнопки вариантов видны после ответа.
- Выбранный вариант привязан к нужному сообщению.
- Права и фактический формат сохранения проверены локально.
Типичные ошибки и чего не делать
- Не принимать лайки за оценку точности фактов.
- Не хранить переписку без срока удаления.
- Не утверждать фиксированный формат файла без проверки версии.
FAQ
Что даёт manual?
Позволяет пользователю отметить ответ.
Где хранится оценка?
Проверьте настроенный flagging_dir на своей версии.
Можно ли обучать на всех лайках?
Нет, сначала нужна ручная проверка качества и прав на данные.
Официальные источники
Частые вопросы
Что даёт manual?
Позволяет пользователю отметить ответ.
Где хранится оценка?
Проверьте настроенный flagging_dir на своей версии.
Можно ли обучать на всех лайках?
Нет, сначала нужна ручная проверка качества и прав на данные.
Читайте также
Как добавить ползунок temperature к AI-чату через additional_inputs в Gradio
Связываем Slider и функцию чат-бота без ошибки порядка аргументов; проверяем значение до вызова нейросети.
Как добавить примеры вопросов в Gradio, не вызывая нейросеть по клику
Настраиваем examples и run_examples_on_click=False, чтобы пользователь отредактировал вопрос перед дорогим вызовом модели.
Как группировать запросы к ML-модели через batch=True в Gradio Interface
Сверяем сигнатуру пакетной функции, tuple of lists и max_batch_size на детерминированном тесте.
Комментарии
Пока тихо. Скажите первое слово