feat(gooddata-eval): register knowledge_question evaluator - #1763
Conversation
knowledge_question had reclassified fixtures (commit 658b9ea6) but no registered evaluator, so get_evaluator() raised KeyError and every item was silently skipped -- data/test_kinds.yaml had to keep it disabled. Reuses GeneralQuestionEvaluator directly: both are free-text-rubric, LLM-judged prose answers, and ItemReport.test_kind is tagged from the dataset item's own field rather than the evaluator class, so sharing one class across both kinds doesn't mislabel results.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe evaluator registry adds ChangesKnowledge question evaluator support
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The change enables evaluation of knowledge questions instead of skipping them; no actionable merge-blocking risk remains after normal checks and review. Sequence Diagram(s)sequenceDiagram
participant get_evaluator
participant GeneralQuestionEvaluator
participant LLMJudge
get_evaluator->>GeneralQuestionEvaluator: resolve knowledge_question
GeneralQuestionEvaluator->>LLMJudge: evaluate answer
LLMJudge-->>GeneralQuestionEvaluator: return score
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1763 +/- ##
==========================================
+ Coverage 80.65% 80.68% +0.02%
==========================================
Files 272 272
Lines 19369 19369
==========================================
+ Hits 15622 15627 +5
+ Misses 3747 3742 -5 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Summary
knowledge_questionfixtures were reclassified out ofgeneral_question(platform/product/policy Q&A that isn't LDM-grounded) but no evaluator was ever registered for the kind, soget_evaluator("knowledge_question")raisedKeyErrorand every item was silentlyskipped— the downstream repo has keptknowledge_question: falsein its test-kind config as a result.knowledge_questionin the lazy-evaluator registry, reusingGeneralQuestionEvaluatordirectly rather than adding a new class: both are free-text-rubric, LLM-judged prose answers, differing only in subject matter (LDM facts vs. platform/policy facts).ItemReport.test_kindis tagged from the dataset item's owntest_kindfield (runner.py), not from the evaluator class'stest_kindattribute, so sharing one evaluator class across both kinds does not mislabel results in reports/dashboards.Test plan
uv run pytest packages/gooddata-eval/tests/— 476 passedget_evaluator("knowledge_question")resolves toGeneralQuestionEvaluator; pass/fail dispatch through the reused evaluator (test_text_evaluators.py)test_run_items_routes_all_supported_kinds's exact-set assertion to includeknowledge_questionruff check/ruff format --checkclean on changed filesSummary by CodeRabbit
New Features
Tests