Skip to content

Profile driven evals#8

Merged
savitharaghunathan merged 5 commits into
mainfrom
profile-driven-evals
May 1, 2026
Merged

Profile driven evals#8
savitharaghunathan merged 5 commits into
mainfrom
profile-driven-evals

Conversation

@savitharaghunathan

Copy link
Copy Markdown
Owner

No description provided.

savitharaghunathan and others added 5 commits April 30, 2026 20:50
Introduces reusable evaluation profiles with metrics, weights, and
criteria; auto-routing adapter registry; composite scoring with quality
gates; evaluation policies for CI/CD; CLI entry point; and built-in
profiles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add BatchResult schema and evaluate_profile_batch() for multi-case
  evaluation from data files
- Add context_precision_with_reference to the metric registry
- Specify floating-point tolerance for weight validation
- Document score normalization assumption (0.0-1.0 range)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
10-task TDD plan covering: exceptions, metric registry, output schemas,
built-in profiles, ProfileManager (loading/validation/scoring), framework
integration, CLI, and final validation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements the complete profile-driven evaluation system with:
- Metric registry with priority-based auto-routing to RAGAS/DeepEval adapters
- ProfileManager for YAML profile loading, validation, policy resolution, scoring, and batch evaluation
- MetricEvaluation, ProfileResult, and BatchResult Pydantic schemas
- Built-in profiles (rag_default, strict, smoke_test)
- Click CLI with evaluate, profiles list/show/validate commands
- Custom exceptions (ProfileValidationError, UnknownMetricError, ProfileNotFoundError)
- 67 new tests (220 total), all passing with zero lint errors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…or handling

- Add resolve_metric_candidates() and use it in _run_metrics() to fall
  back to next-priority adapter when the primary fails
- Return deepcopy from get_profile() to prevent callers from mutating
  internal state
- Catch yaml.YAMLError in CLI validate command for clean error output
- Add tests for all three fixes (5 new tests, 225 total)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@savitharaghunathan savitharaghunathan self-assigned this May 1, 2026
@savitharaghunathan
savitharaghunathan merged commit d9490fa into main May 1, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant