LLM как судья: оценка ответов
Соберёте скрипт, который сравнивает две модели (или два промпта) на ваших вопросах: сильная модель-судья ставит оценки, скрипт сводит их в таблицу.
Нужно: ключ fetch_... (создать), баланс (50 вопросов ≈ 10 центов), Python 3.10+, 20–100 настоящих вопросов клиентов с эталонами — короткими правильными ответами.
- 1Соберите вопросы
Возьмите реальные вопросы из чата поддержки или почты, простые и каверзные. К каждому напишите эталон: что обязательно должно прозвучать.
- 2Выберите судью
Судья сильнее кандидатов и не один из них:
claude-sonnet-5-5илиgpt-6.1-sol. - 3Проверьте рубрику
Она в
GRADE_SYSTEM: верность, полнота, ясность по шкале 1–5. Важно бизнесу «не обещать того, чего нет в правилах» — добавьте отдельный критерий. - 4Запустите
Скопируйте код в
judge.py, заменитеRULESиDATASETсвоими. Выполнитеpip install openai pydantic, затемpython judge.py. - 5Сверьте судью с собой
Откройте
judge_results.jsonlи оцените 10–20 ответов сами. Часто расходитесь с судьёй — уточните рубрику или эталоны, а не верьте таблице.
1Код
Пример сравнивает deepseek-v4.1-flash и claude-haiku-5-5 в роли поддержки магазина. Судья — claude-sonnet-5-5.
"""
LLM как судья: какая из двух моделей лучше отвечает клиентам магазина.
pip install openai pydantic
python judge.py
"""
import asyncio
import json
import os
import statistics
from typing import Literal
from openai import AsyncOpenAI
from pydantic import BaseModel, Field, ValidationError
Результат — таблица такого вида (цифры зависят от моделей и вопросов):
Модель Балл Верно Полно Ясно Победы Поражения Ничьи
deepseek-v4.1-flash 4.20 4.40 4.00 4.60 1 2 2
claude-haiku-5-5 4.40 4.60 4.20 4.60 2 1 2
Судья поменял мнение при перестановке ответов: 1 из 52Как читать таблицу
- Каждую пару судья сравнивает дважды, поменяв ответы местами. Победа засчитывается, только если оба раза выбран один кандидат.
- Судья поменял мнение больше чем в трети вопросов — кандидаты почти равны или рубрика размыта.
- На 5 вопросах разница в 0,2 балла — случайность. Для решения берите 30–50 вопросов и смотрите на победы в парах.
3Что учесть
X-Zukko-Cache: true: одинаковые запросы 7 дней отдаются из кэша бесплатно. Поменяли рубрику — платите только за новые запросы судьи. Нужны свежие ответы кандидатов — поставьтеCACHE = {}.- Не задавайте
temperature: новые модели Claude могут отклонять нестандартные значения.
4Если не работает
| Что видите | Что сделать |
|---|---|
ValidationError у судьи и после повтора | Уточните формат в промпте судьи или возьмите модель сильнее |
| У кандидатов почти одинаковые баллы | Добавьте каверзные вопросы, доведите набор до 30–50 |
| Судья часто меняет мнение при перестановке | Уточните критерии, смотрите на баллы по рубрике |
| Повторный запуск даёт те же ответы кандидатов | Это кэш. Нужны свежие — поставьте CACHE = {} |
| Высокий балл у ответа с выдумками | Дополните эталон, добавьте критерий «нет выдуманного» |