Feat: Implement `:tagged_summary` report format
@SubWal ci sta già lavorando.
Dal 7/10/2026.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia in evals/formatter.ex, in Evals.Formatter.format_report/3, e confronta i formati esistenti :full e :summary. Implementa l’opzione :tagged_summary usando i risultati delle eval completate, quindi verifica che i tag univoci siano ordinati alfabeticamente, che le medie siano leggibili, che i risultati senza tag vengano omessi correttamente e che i formati esistenti rimangano invariati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Is your feature request related to a problem? Please describe.
Labels: feature, reporting, formatter
Dependencies: Blocks Ticket #1 (YAML Metadata Parsing)
Description:
As a model evaluator, I want a report format that groups evaluation results by their tags. This will allow for a more granular analysis of a model's performance, helping to identify strengths and weaknesses in specific areas like otp, ecto, or pattern-matching.
This requires creating a new report format option, :tagged_summary.
Describe the solution you'd like
Acceptance Criteria:
- The
Evals.Formatter.format_report/3function accepts a new value for the:formatoption::tagged_summary. - When
format: :tagged_summaryis used, the report output should:- List each unique tag found across all completed evals.
- For each tag, display the average score of all evals that include that tag.
- The list of tags should be sorted alphabetically for consistent output.
- The final report must be clean and human-readable.
- The implementation must not break the existing
:fulland:summaryreport formats. - If no evals have tags, this section of the report should be gracefully omitted.
Implementation Notes:
- This work will be done in
evals/formatter.ex. - A new private function, such as
format_tagged_summary(results), will likely be needed. - The logic will involve:
- Reducing the
resultslist into a map where keys are tags and values are lists of scores (e.g.,%{otp: [1.0, 0.5], elixir_core: [1.0, 1.0, 0.5], ...}). - Transforming this map to calculate the average score for each tag.
- Sorting the results by tag name before formatting them into strings.
- Reducing the
Example Output:
... (Overall Summary) ...
TAGGED SUMMARY:
----------------------------------------
elixir-core | 83.3%
ecosystem | 100.0%
otp | 75.0%
pattern-matching | 100.0%
security | 0.0%
... (Detailed Results or end of report) ...
Describe alternatives you've considered
No response
Additional context
No response
- Lingua principale
- Elixir
- Stelle
- 51
- Fork
- 6
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ash-project/evals
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
ash-project/evals#5 · 11 commenti ·
-
enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
ash-project/evals#3 · 1 reazione ·
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 50/100
ash-project/evals#1 · 1 reazione ·
Tutte le issue di ash-project/evals
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
taskforcesh/bullmq#5038 ·
I maintainer di solito rispondono entro 1 giorno
-
pip: same package pinned twice with different casing in pyproject.toml, only the first pin is updatedForse già presa @v-abhishekbhaskar l’ha presa 1 giorno fa. ApertaL: python L: ruby:bundler T: bug 🐞
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
dependabot/dependabot-core#16756 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
feat: signup pageApertad: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 85/100