Feature Request: Support for Financial RAG Dataset Eval Pipelines with Domain-Specific Scorers
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
- Área
- machine-learning
Línea de trabajo
Empieza revisando el esquema de EvalCase y las API de registro de scorers descritas en el issue, y luego compáralas con el uso existente de Braintrust Eval. Antes de la implementación, hay que acotar el alcance entre la compatibilidad con context, la evaluación de equivalencia numérica y el registro basado en decoradores; done debe definirse mediante la propuesta seleccionada y la cobertura de su validación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
I've been building a financial RAG evaluation framework (FinRAG-Eval) and ran into friction when trying to use braintrust-sdk-python for domain-specific eval pipelines over financial documents (10-Ks, earnings transcripts, SEC filings).
Problem
When running evals on financial RAG outputs, the default scorer setup doesn't map well to domain-specific correctness signals. Specifically:
- No built-in support for numerical/unit-aware comparison — financial answers often contain figures like
$3.2Bvs3.2 billion. Current string-match scorers treat these as mismatches. - No dataset schema for context-grounded financial Q&A — when loading eval datasets from Braintrust's dataset store, there's no documented convention for attaching retrieved context chunks (needed for faithfulness scoring).
- Custom scorer registration is verbose — adding a domain scorer (e.g., a ROUGE-F1 scorer or a financial entity extractor) requires wrapping functions manually with no type hints or schema validation.
Proposed Solution
- Add a
contextfield to the standardEvalCaseschema (alongsideinput,expected,metadata) so retrieved chunks can be passed through to scorers natively. - Provide a
NumericEquivalenceScorerthat normalizes units (B/M/K, $, %) before comparing. - Allow scorer registration via a decorator pattern (
@braintrust.scorer) similar to how pytest fixtures work — this would reduce boilerplate significantly.
Example Use Case
@braintrust.scorer
def financial_faithfulness(output: str, context: list[str]) -> Score:
# Check if numerical claims in output are grounded in context
...
return Score(name="financial_faithfulness", score=0.87)
await Eval(
"FinRAG-Eval",
data=financial_qa_dataset,
task=rag_pipeline,
scores=[financial_faithfulness, NumericEquivalenceScorer()],
)
Context
I'm building this as part of finrag-eval, a framework for evaluating LLM outputs over financial documents. Happy to contribute a PR for the scorer decorator pattern or the context field addition if the team is open to it.
References
- Braintrust Eval Docs
- Related: DeepEval's
LLMTestCasehas aretrieval_contextfield that works similarly
- Lenguaje dominante
- Python
- Estrellas
- 19
- Forks
- 17
- Merge medio
- 22 h 50 min
- PR fusionados (30 d)
- 51
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de braintrustdata/braintrust-sdk-python
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
bot-automation new-integration
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
Todos los issues de braintrustdata/braintrust-sdk-python
Issues similares
-
货币战争手改优先级配置缺少列表元素类型校验(P3) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
syfoud/Simulated_Scepter#172 ·
-
A cancelled tests run makes the coverage comment workflow fail and reports it as a red check on main Abiertoarea: ci bug perceived difficulty: 3
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Nitjsefnie-Harness-Commons/daedalus#921 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
EleutherAI/lm-evaluation-harness#4207 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ClickHouse/clickhouse-connect#1057 ·