Skip to content

Feature/phase 4 reports#6

Merged
himanshu231204 merged 5 commits into
mainfrom
feature/phase-4-reports
Jul 8, 2026
Merged

Feature/phase 4 reports#6
himanshu231204 merged 5 commits into
mainfrom
feature/phase-4-reports

Conversation

@himanshu231204

Copy link
Copy Markdown
Contributor

Description

A clear and concise description of what this PR does.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Test update
  • CI/CD update

Related Issues

Closes #(issue_number)

How Has This Been Tested?

Describe the tests that you ran to verify your changes.

  • Unit tests pass (uv run pytest)
  • Linter passes (uv run ruff check .)
  • Type checker passes (uv run mypy openagent_eval/)
  • Manual testing performed

Checklist

  • My code follows the project's coding standards
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Screenshots (if applicable)

Add screenshots to demonstrate visual changes.

Additional Notes

Add any other notes about the PR here.

Test User added 5 commits July 8, 2026 16:43
- Add BaseMetric ABC interface and MetricResult dataclass
- Implement 7 retrieval metrics: ContextPrecision, ContextRecall, RecallAtK, PrecisionAtK, HitRate, MRR, NDCG
- Implement 9 generation metrics: Faithfulness, AnswerRelevancy, HallucinationDetection, SemanticSimilarity, ExactMatch, F1Score, BLEU, ROUGE, BERTScore
- Implement LatencyMetric for performance tracking
- Implement TokenCountMetric for cost estimation
- Add metric registry with get_metric() and list_metrics()
- Add Pydantic validation models for metric inputs/outputs
- Add 86 unit tests (136 total tests passing)
- Generation metrics use fallback implementations with optional external library integration (Ragas, DeepEval, HF Evaluate, sentence-transformers)

Phase 3 complete. Ready for Phase 4 (Reports).
- Define ReportGenerator abstract interface (reports/base.py)
- Implement TerminalReport with Rich console output
- Implement MarkdownReport for .md file generation
- Implement HTMLReport with Jinja2 templated output
- Implement JSONReport for machine-readable structured data
- Implement ComparisonReport for experiment side-by-side comparison
- Add FailureInfo and ExperimentComparison data models
- Add jinja2>=3.1.0 dependency to pyproject.toml
- Write 78 unit tests covering all reporters
- Update TASKS.md to mark Phase 4 as complete
…y test threshold

- BERTScore: chain fallbacks bert_score -> sentence_transformers -> word overlap
- SemanticSimilarity test: lower threshold to >=0.5 for word overlap fallback
Copilot AI review requested due to automatic review settings July 8, 2026 12:08

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@himanshu231204 himanshu231204 self-assigned this Jul 8, 2026
@himanshu231204 himanshu231204 merged commit 1e394d4 into main Jul 8, 2026
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.

2 participants