Add judge_language config plumbing (settings + scenario + ScoreRequest)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -64,6 +64,7 @@ def load_scenario(path: str | Path) -> Scenario:
|
||||
optimization_advisor=model.optimization_advisor,
|
||||
metric_weights=dict(model.metric_weights),
|
||||
doc_weights=dict(model.doc_weights),
|
||||
judge_language=model.judge_language,
|
||||
)
|
||||
# Run cross-field checks after all relative paths have been resolved.
|
||||
validate_scenario(scenario)
|
||||
|
||||
@@ -57,6 +57,7 @@ class ScenarioModel(BaseModel):
|
||||
optimization_advisor: bool = False
|
||||
metric_weights: dict[str, float] = Field(default_factory=dict)
|
||||
doc_weights: dict[str, float] = Field(default_factory=dict)
|
||||
judge_language: Literal["en", "zh"] | None = None
|
||||
|
||||
@field_validator("metrics")
|
||||
@classmethod
|
||||
|
||||
@@ -22,6 +22,7 @@ class EvaluationSettings(BaseSettings):
|
||||
openai_api_key: str | None = Field(default=None, alias="OPENAI_API_KEY")
|
||||
openai_base_url: str = Field(default="http://6.86.80.4:30080/v1", alias="OPENAI_BASE_URL")
|
||||
ragas_judge_model: str = Field(default="gpt-5", alias="RAGAS_JUDGE_MODEL")
|
||||
ragas_judge_language: str = Field(default="en", alias="RAGAS_JUDGE_LANGUAGE")
|
||||
ragas_embedding_model: str = Field(
|
||||
default="text-embedding-3-small",
|
||||
alias="RAGAS_EMBEDDING_MODEL",
|
||||
|
||||
@@ -79,6 +79,9 @@ class Scenario:
|
||||
optimization_advisor: bool = False
|
||||
metric_weights: dict[str, float] = field(default_factory=dict)
|
||||
doc_weights: dict[str, float] = field(default_factory=dict)
|
||||
# Language used for judge prompts: 'en' (default, English) or 'zh' (Chinese).
|
||||
# None means "use the global settings default".
|
||||
judge_language: str | None = None
|
||||
|
||||
def snapshot(self) -> dict[str, Any]:
|
||||
"""Serialize the scenario into a reporting-friendly dictionary snapshot."""
|
||||
|
||||
Reference in New Issue
Block a user