Spring-AI Model Evaluator模型评估
在 Spring AI 中,Evaluator 的核心逻辑遵循 **“LLM-as-a-Judge”**(大模型即裁判)模式。
·
Spring-AI Model Evaluator模型评估
文章目录
为什么需要模型评估
- 传统的软件测试是“确定性”的(输入 A 必得 B),但 AI 的输出是“概率性”的。你改了一个 Prompt 或者换了一个 Embedding 模型,效果到底是变好了还是变差了?靠人工盲测是不可能的。这就是 Evaluator 存在的意义。
Spring-AI是如何进行评估的
- 在 Spring AI 中,Evaluator 的核心逻辑遵循 “LLM-as-a-Judge”(大模型即裁判)模式。
评估相关的代码
@FunctionalInterface
public interface Evaluator {
EvaluationResponse evaluate(EvaluationRequest evaluationRequest);
}
public class EvaluationRequest {
private final String userText;
private final List<Document> dataList;
private final String responseContent;
}
public class EvaluationResponse {
private final boolean pass;
private final float score;
private final String feedback;
private final Map<String, Object> metadata;
}
- Evaluator对应的实现
- RelevancyEvaluator:它主要评估 “回答(responseContent)”是否真正解决了“问题(userText)”。
- FactCheckingEvaluator:它主要评估 “回答(responseContent)”与“上下文(dataList)” 之间的一致性。
执行流程如下:
- 构造上下文:EvaluationRequest 包含了三类关键数据:
- userText: 用户的原始问题。
- responseContent: AI 生成的回答。
- dataList(Context): 检索到的原始文档片段(用于 Fact-checking)。
- 内置 Prompt 模版:每种 Evaluator 内部都持有一个精心编写的系统提示词(System Prompt)。这些提示词会命令“裁判模型”以批判性的视角审查输入。
- 调用裁判模型:Spring AI 将上述数据和评估 Prompt 发送给一个高性能模型(通常建议用 GPT-4o 或 Qwen-Max 这种逻辑能力强的模型作为裁判,哪怕你业务模型用的是更便宜的模型)。
- 结构化解析:裁判模型返回结果(通常是 JSON 或特定格式),Evaluator 将其解析为 EvaluationResponse,其中包含:
- pass: 是否通过(布尔值)。
- score: 评分(通常 0-1 或 1-5)。
- feedback: 裁判给出的具体理由(这对调试 Prompt 极其有用)。
FactCheckingEvaluator和RelevancyEvaluator区别
FactCheckingEvaluator
核心关注点:事实核查(FactChecking)
- 原理:它主要评估 “回答(responseContent)”与“上下文(dataList)” 之间的一致性。
- 裁判逻辑:裁判模型会检查:回答中的每一个事实陈述,是否都能在提供的参考文档中找到依据?
- 判定为“失败”的情况:
- 回答中包含了文档里没有提到的数字、人名或结论。
- 回答与文档内容发生了冲突(文档说 A 是对的,回答说 A 是错的)。
- 实战场景:主要用于 RAG 系统 的安全性检查,确保 AI 没在瞎编。
RelevancyEvaluator
核心关注点:相关性 (Relevancy)
- 原理:它主要评估 “回答(responseContent)”是否真正解决了“问题(userText)”。
- 裁判逻辑:裁判模型会忽略参考文档,只看用户问了什么,以及 AI 答了什么。它评估的是回答是否切题、是否完整、是否简洁地满足了用户意图。
- 判定为“失败”的情况:
- 答非所问(用户问天气,回答了股价)。
- 回答虽然是正确的,但过于笼统,没有解决问题的核心需求。
- 实战场景:用于优化 意图识别 和 Prompt 的引导效果。
避坑指南
- 裁判模型的等级必须高于(或等于)被评估模型。
更多推荐


所有评论(0)