Декомпозиция AI-системы для оценки

Компоненты системы:

  1. Классификатор намерения

    • Задача: Определить намерение пользователя: он хочет получить рецепт блюда, просит совета по приготовлению или просто хочет поговорить?
    • Выход: Назначение в виде класса (0 - рецепт, 1 - совет, 2 - прочее)
    • Необходимость оценки: Да. Влияет на дальнейший путь обработки запроса и, как следствие, итоговый ответ
  2. Ветвь формирования рецепта

    2.1. Извлечение полезной информации из запроса

    • Задача: Определить перечень ингредиентов, кухонной утвари и предпочтений
    • Выход: Структура с полями: ингредиенты, кухонная утварь, предпочтения
    • Необходимость оценки: Да. Количество и качество извлеченных данных напрямую влияет на выбор кандидатов

    2.2. Выбор K наиболее подходящих рецептов

    • Задача: Выбрать наиболее релевантные рецепты исходя из извлеченной полезной информации
    • Выход: список из K структурированных рецептов (с ингредиентами и степень их совпадения с тем, что указал пользователь, шаги приготовления)
    • Необходимость оценки: Да. Полученные кандидаты напрямую влияют на формирование итогового рецепта

    2.3. Формирование ответа

    • Задача: Сформировать такой ответ, который будет содержать описание адекватного рецепта, приготовление которого не приведет к ущербу для здоровья.
    • Выход: Текстовый ответ
    • Необходимость оценки: Да, поскольку этот ответ отправится потом к пользователю
  3. Ветвь кулинарного совета

    3.1. Извлечение полезной информации из запроса

    • Задача: Понять характер проблемы пользователя (сколько варить/жарить (время), чем заменить (замена))
    • Выход: Структура с мета-информацией
    • Необходимость оценки: Да, поскольку непонимание проблемы приведет к непониманию того, что рекомендовать

    3.2. Выбор наиболее подходящих рекомендаций

    • Задача: Выбрать те кулинарные рекомендации, которые содержат исчерпывающее решение поставленной проблемы.
    • Выход: Список рекомендаций
    • Необходимость оценки: Да

    3.3. Формирование ответа

    • Задача: Исходя из набора рекомендаций, сформировать ответ, который без двусмысленности решает поставленную проблему
    • Выход: Текстовый ответ
    • Необходимость оценки: Да, поскольку этот ответ отправится потом к пользователю
  4. Некулинарная ветвь

    • Задача: Поддержать диалог, при этом не уйти в светскую беседу, забыв о своей изначальной функции
    • Выход: Текстовый ответ
    • Необходимость оценки: Скорее да, чем нет. Оценивать среднее число шагов, приводящее к возврату в рамки предметной области (Обрывать сразу не хорошо: "Давай не будем говорить о ..., мы здесь только о кулинарии", но и "Давай в 200 запросов обсуждать ..." тоже не норма)

Схема: