Перейти к содержимому

Датасеты и скриптовая оценка

care dataset управляет небольшим оценочным датасетом, привязанным к одной цепочке, — терминальный аналог /dataset в TUI. Каждая запись связывает входную задачу с ожидаемой подстрокой; run прогоняет все записи через цепочку и выставляет оценку. Под-действие обязательно: list, add, run или export.

  1. add — добавьте случаи с --expected, то есть с подстрокой, которую должен содержать ответ цепочки.
  2. run — прогон датасета: каждый случай воспроизводится через цепочку (исполнитель CARL) и оценивается по подстроке без учёта регистра. Команда печатает ✓/✗ по каждому случаю и строку score: N/M passed, а при любом провале завершается с кодом 1 — то есть сразу готова стать гейтом в CI.
  3. export — выгрузите датасет в JSONL, если хотите оценивать его во внешнем фреймворке.

Добавляет один тест-кейс в датасет цепочки.

Окно терминала
care dataset add weather "погода в Париже завтра" --expected "Париж"
ФлагПо умолчаниюНазначение
--expected EXPECTEDобязателенПодстрока, которую должен содержать ответ (гейт run сверяет её без учёта регистра).
--rubric RUBRIC""Рубрика LLM-судьи, используется только при прогоне из TUI — care dataset run её игнорирует и оценивает по подстроке.

Выводит записи датасета цепочки — по строке на случай, со статусом и усечённой задачей.

Окно терминала
care dataset list weather
care dataset list weather --json
ФлагПо умолчаниюНазначение
--jsonвыкл.Выдать записи в JSON вместо построчного вида.

Прогоняет каждую запись через цепочку и выставляет оценку.

Окно терминала
care dataset run weather
✓ погода в Париже завтра
✗ прогноз на пять дней для SF
score: 1/2 passed (substring)
ФлагПо умолчаниюНазначение
--jsonвыкл.Выдать структурированный результат вместо построчного вывода.

Код возврата равен 0, только если прошли все оценённые случаи; иначе — 1.

Выгружает датасет в JSONL — по записи на строку — для внешнего фреймворка оценки.

Окно терминала
care dataset export weather weather-eval.jsonl

Поскольку run завершается с ненулевым кодом при первом же провале, шаг CI — это просто сама команда, без дополнительной обвязки:

Окно терминала
# один раз наполняем датасет (или коммитим случаи через `add` на этапе setup)
care dataset add weather "погода в Париже завтра" --expected "Париж"
care dataset add weather "идёт ли дождь в Лондоне" --expected "Лондон"
# гейт: ненулевой код роняет пайплайн
care dataset run weather
# .github/workflows/eval.yml (фрагмент)
- name: Оценка цепочки weather
run: care dataset run weather
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}

Запустите care dataset --help для полного и актуального списка флагов.