feat: make contexts optional in /api/score
When contexts is absent, metrics that require retrieved_contexts (faithfulness, context_recall, context_precision, noise_sensitivity) are automatically skipped and appear in skipped_metrics. Only answer_relevancy, factual_correctness, semantic_similarity remain computable without contexts. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -73,7 +73,8 @@ def score_sample(
|
||||
用于日志记录、质量监控或触发 Agent 自我改进流程。
|
||||
|
||||
**contexts 格式**:多个检索片段用 `context_separator`(默认 `" |||| "`)拼接为一个字符串,
|
||||
服务端自动拆分后传入 RAGAS 管道。
|
||||
服务端自动拆分后传入 RAGAS 管道。**contexts 为可选字段**,缺失时自动跳过依赖检索内容的指标
|
||||
(`faithfulness`、`context_recall`、`context_precision`、`noise_sensitivity`)。
|
||||
|
||||
**ground_truth 可选**:
|
||||
- 提供时:所有指定指标均参与计算。
|
||||
@@ -99,12 +100,13 @@ def score_sample(
|
||||
"""
|
||||
client = f"{raw_request.client.host}:{raw_request.client.port}" if raw_request.client else "unknown"
|
||||
logger.info(
|
||||
"[score] incoming client=%s method=%s content_type=%s metrics=%s has_gt=%s",
|
||||
"[score] incoming client=%s method=%s content_type=%s metrics=%s has_gt=%s has_ctx=%s",
|
||||
client,
|
||||
raw_request.method,
|
||||
raw_request.headers.get("content-type", ""),
|
||||
request.metrics,
|
||||
request.ground_truth is not None,
|
||||
bool(request.contexts),
|
||||
)
|
||||
settings = _get_settings()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user