build(evaluation): add eval framework as a private submodule - #5190
build(evaluation): add eval framework as a private submodule#5190lenafiedor wants to merge 3 commits into
Conversation
Confidence Score: 5/5Safe to merge — the submodule is entirely opt-in (update = none, HTTPS URL), CI and regular clones are unaffected, and the committed data files contain only synthetic educational content with no personal data. The change is purely additive: a new top-level directory with a passively registered submodule and committed Markdown ground-truth files. Nothing in the build, dev stack, or CI pipeline depends on the submodule being present. Files Needing Attention: No files require special attention. The evaluation/README.md could benefit from a companion wiki entry under docs/, but the README itself is accurate and complete.
|
| Filename | Overview |
|---|---|
| .gitmodules | Registers evaluation/framework as a submodule over HTTPS with update = none; correctly configured so CI and recursive clones skip it |
| evaluation/README.md | Documents the submodule opt-in pattern and data directory contents clearly; the initialization command is correct |
| evaluation/framework | Submodule entry pinned to commit 8ddc718; update = none means it is not fetched during regular workflow |
| evaluation/data/ground_truth/klicker_fineco/gt_001_cml_sharpe_ratio.md | Synthetic CAPM/CML ground-truth QA; technically correct financial content, no personal data |
| evaluation/data/ground_truth/klicker_fineco/gt_008_covariance_matrix_conditions.md | Synthetic covariance matrix QA; determinant check for matrix D is correct (det = 5x1 minus 9 = -4 < 0) |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[git clone uzh-bf/klicker-uzh] --> B{--recurse-submodules?}
B -- yes --> C[evaluation/framework skipped\nupdate = none]
B -- no --> C
C --> D[evaluation/data/ committed normally\nground-truth .md files available]
E[UZH-internal user] --> F[git submodule update\n--init --checkout\nevaluation/framework]
F --> G[evaluation/framework\nmaterialized from\ngitlab.uzh.ch/ai-infrastructure/evaluation]
G --> H[DeepEval harness\nreads data/ground_truth/]
D --> H
H --> I[Chatbot quality\nassessment results]
Reviews (4): Last reviewed commit: "fix(evaluation): restructure eval submod..." | Re-trigger Greptile
📝 WalkthroughWalkthroughThe evaluation submodule is registered and updated, its usage is documented, and eight financial economics ground-truth Markdown entries are added covering portfolio theory, alpha, and covariance-matrix topics. ChangesEvaluation module integration
Portfolio and CAPM ground truth
Alpha ground truth
Covariance ground truth
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
a639d8a to
7a7e431
Compare
…ones - move submodule modules/eval -> evaluation/framework - use HTTPS URL and update=none so clones (incl. --recursive) never fail on the UZH-private framework repo; internal opt-in init documented - move ground-truth data under evaluation/data/ - add evaluation/README.md describing the layout
36381b7 to
8a27d23
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@evaluation/data/ground_truth/klicker_fineco/gt_007_third_investor_alpha.md`:
- Around line 9-21: Define r^i, r^j, and r^3 consistently as wealth weights,
clarify whether they are raw wealth or normalized shares, and use that notation
throughout the derivation. Explicitly state that investor 3 has positive (and
therefore nonzero) wealth before dividing by r^3.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 82e88366-cc3e-4c76-837c-7b4ebae75ae6
📒 Files selected for processing (11)
.gitmodulesevaluation/README.mdevaluation/data/ground_truth/klicker_fineco/gt_001_cml_sharpe_ratio.mdevaluation/data/ground_truth/klicker_fineco/gt_002_tangency_portfolio_risk_aversion.mdevaluation/data/ground_truth/klicker_fineco/gt_003_weighted_alpha_zero_sum.mdevaluation/data/ground_truth/klicker_fineco/gt_004_ex_ante_alpha_heterogeneous_expectations.mdevaluation/data/ground_truth/klicker_fineco/gt_005_ex_post_alpha_same_measure.mdevaluation/data/ground_truth/klicker_fineco/gt_006_lambda_portfolio_weights.mdevaluation/data/ground_truth/klicker_fineco/gt_007_third_investor_alpha.mdevaluation/data/ground_truth/klicker_fineco/gt_008_covariance_matrix_conditions.mdevaluation/framework
| Use the zero-sum property of alpha with wealth weights: | ||
|
|
||
| $$ | ||
| \alpha^i r^i + \alpha^j r^j + \alpha^3 r^3 = 0 | ||
| $$ | ||
|
|
||
| Solve for the unknown alpha of investor 3: | ||
|
|
||
| $$ | ||
| \alpha^3 = -\frac{\alpha^i r^i + \alpha^j r^j}{r^3} | ||
| $$ | ||
|
|
||
| So you multiply each known investor's alpha by their wealth, add those terms, change the sign, and divide by the third investor's wealth. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Define the wealth weights and denominator assumption.
This entry switches from a^i in gt_003_weighted_alpha_zero_sum.md to r^i without defining whether r^i is raw wealth or a normalized wealth share. It also divides by r^3 without stating that the third investor has nonzero wealth. Use one notation consistently and state the positive-wealth assumption.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@evaluation/data/ground_truth/klicker_fineco/gt_007_third_investor_alpha.md`
around lines 9 - 21, Define r^i, r^j, and r^3 consistently as wealth weights,
clarify whether they are raw wealth or normalized shares, and use that notation
throughout the derivation. Explicitly state that investor 3 has positive (and
therefore nonzero) wealth before dividing by r^3.
|



Description
Added the
evaluationmodule fromai-infrastructureas submodule for Klicker for the future chatbot evaluation and quality assessment.ClickUp Task: Chatbot: Adapt evaluation module for Klicker
Proposed Changes
evaluationas submodule in Klickerdata/ground_truth/klicker_finecoAutomated Verification
pnpm run check:all(linting, typechecking, formatting, syncpack)pnpm --filter <package> test)Summary by CodeRabbit
New Features
Documentation