Хорошая сводка, и спасибо, что вообще подняли API против живого интерфейса, обычно про это молчат. Добавлю от себя: по-моему это не второй параметр, а первый. Я мерю по отрендеренному ответу, который видит залогиненный человек в реальном браузере, а не по ответу из API. Ответ собирается под сессию, регион и веб-поиск, и эти два замера расходятся. Мерить надо ту картинку, на которую реально смотрят люди, иначе оптимизируешь то, чего никто не видит.
И про набор метрик. Mention rate, источники, цитаты стоят в списке через запятую, будто независимые оси. На деле это воронка: ответ появился, тебя извлекли в источники, тебя процитировали в тексте. Цитата это подмножество источников, модель ссылается только на то, что достала. Самый говорящий шаг тут последний, из скольких попаданий в источники выросла живая ссылка. А за честность про погрешность отдельный плюс, инструмент, который молчит, когда числу нельзя верить, хуже, чем никакого
Самый недооценённый совет тут спрятан в конце: прогоните запросы и посмотрите глазами. Подпишусь под каждым словом и добавлю деталь из своей практики. Ответ нейросети собирается под конкретного залогиненного пользователя. То, что показывает интерфейс живому человеку, и то, что отдаёт API, это два разных ответа на один вопрос. Я начал мерить видимость именно по отрендеренному ответу в настоящем браузере после того, как заметил это расхождение. И ещё одно наблюдение из прогонов: попасть в источники и получить то самое кликабельное упоминание в тексте это разные уровни. Модель цитирует только то, что извлекла, но цитирует далеко не всё извлечённое. Так что какой бы мониторинг вы ни выбрали, хотя бы раз сверьте его цифры с тем, что реально видно на экране по вашим двадцати запросам. Если сходится, повезло. Если нет, вы оптимизируетесь под ответ, которого никто не видит.
В тех задачах, что вы привели, можно собрать среду для ручного тестирования: список входных/выходных данных и вручную отсмотреть результаты. Как только качество на этой выборке устраивает, то можно ставить на регулярный запуск