update for ragas

This commit is contained in:
wangwei
2026-07-01 17:53:00 +08:00
parent 2bb804b059
commit 4e74e1b247
15 changed files with 507 additions and 53 deletions
+21 -3
View File
@@ -20,7 +20,10 @@ __all__ = ["run_advisor", "Diagnosis", "diagnose"]
def run_advisor(
result: EvaluationResult,
scenario: Scenario,
llm: Any,
llm: Any = None,
*,
settings: Any | None = None,
chat_client: Any | None = None,
) -> None:
"""Run the full optimization advisor pipeline after an evaluation completes.
@@ -30,7 +33,10 @@ def run_advisor(
Args:
result: Completed EvaluationResult from Evaluator.evaluate().
scenario: The resolved Scenario (provides metrics, judge_model, output_dir).
llm: Pre-built RAGAS LLM instance (from build_models()) for LLM analysis.
llm: Deprecated/unused — kept for backward-compatible call sites. The
advisor now issues its own direct LLM call resolved from judge_model.
settings: Optional EvaluationSettings; defaults to EvaluationSettings().
chat_client: Optional pre-built chat client (used by tests to avoid network).
"""
if not scenario.optimization_advisor:
return
@@ -38,6 +44,10 @@ def run_advisor(
logger.info("[advisor] starting optimization analysis scenario=%s", scenario.scenario_name)
try:
if settings is None:
from rag_eval.settings import EvaluationSettings
settings = EvaluationSettings()
artifact_paths = build_artifact_paths(scenario.output_dir, result.run_id)
if artifact_paths.advice_md is None:
logger.warning("[advisor] advice_md path not set in RunArtifactPaths — skipping")
@@ -47,7 +57,15 @@ def run_advisor(
logger.info("[advisor] rule diagnosis complete: %d metric(s) triggered", len(diagnoses))
if diagnoses:
llm_markdown = asyncio.run(analyze(diagnoses, llm, scenario.scenario_name))
llm_markdown = asyncio.run(
analyze(
diagnoses,
scenario.scenario_name,
scenario.judge_model,
settings,
chat_client=chat_client,
)
)
else:
llm_markdown = ""