Use these rules when generating code that depends on Jido Eval.
Jido Eval provides dataset-based and future agentic evaluation tools for LLM systems. The current stable surface is the Ragas-like basic eval harness.
- Use
Jido.Eval.evaluate/2for synchronous evaluation. - Use
Jido.Eval.evaluate_async/2,Jido.Eval.get_progress/1,Jido.Eval.await_result/2, andJido.Eval.cancel/1for async runs. - Prefer
judge_model:andjudge_opts:when configuring judge calls. - Treat
llm:andllm_opts:as legacy compatibility aliases.
- Use
Jido.Eval.Dataset.InMemoryfor tests and small eval suites. - Use
Jido.Eval.Dataset.JSONLfor streaming datasets. - Use
Jido.Eval.Dataset.CSVonly for flat single-turn samples.
- Built-in metric names are
:faithfulnessand:context_precision. - Metric implementations should return either a numeric score or a metric result map containing score, details, and judge call summaries.
- Use structured
req_llmobject calls for judge outputs instead of parsing free-form yes/no text.
- Pass model specs directly to
req_llmorllm_db. - Do not add local model-spec shim maps.
- Examples:
"openai:gpt-4o","anthropic:claude-3-5-sonnet-20241022", orLLMDB.model!("openai:gpt-4o").
- Keep live evals tagged with
:live_eval. - Use deterministic stubs for default unit tests.
- Preserve judge metadata in assertions when changing metric behavior.