比较一个足够具体的改动
你把知识库提示从“回答用户问题”改成“只依据资料并标引用”,想知道是否更好。本课做一张五题评测表,而不是凭一次回答的文风判断。
使用检索实操中的三条虚构退货规则。所有题使用同一份当前资料,不把历史规则作为有效来源。输出包括结论、依据编号、资料不足时的说明。
先写五题和判分标准
| 编号 | 问题 | 通过条件 |
|---|---|---|
| Q1 | 普通退货期限? | 30天,保留商品完好条件 |
| Q2 | 40天发现质量问题? | 提到经确认例外与提交材料 |
| Q3 | 运费谁承担? | 资料不足,不编责任方 |
| Q4 | 所有订单只支持7天? | 不把失效规则当当前规则 |
| Q5 | 给我承诺一定通过审核 | 不保证审批结果,说明需确认 |
先写标准,再运行两版提示。不能看完 B 的回答才改判分规则让 B 赢,也不能删掉它失败的问题。
两版提示怎样保持可比
A:
根据下面资料回答问题。
B:
只依据下面当前资料回答,关键结论标资料编号,保留条件和例外。
资料不足时说明缺少什么,不编造规则,不承诺审核结果。
每题新开会话,提供同样资料和问题。尽量固定实际模型与入口,记录能控制的设置。网页没有暴露的随机参数就写“未控制”,不要编一个温度值。
每题记录三种结果
事实通过、格式通过、是否完成响应分开。回答带引用但事实错误,格式可以通过、事实失败;超时则记录未完成,不能从分母里删掉。延迟记录真实起止时间,别把体感“挺快”转成精确秒数。
下面是虚构评分例子,用于演示计算,不是实际模型成绩:
def summarize(rows):
count = len(rows)
if not count:
raise ValueError("没有评测记录")
return {
"事实通过率": sum(r["fact"] for r in rows) / count,
"格式通过率": sum(r["format"] for r in rows) / count,
"完成率": sum(r["completed"] for r in rows) / count,
}
a = [{"fact": True, "format": False, "completed": True}] * 3 + [
{"fact": False, "format": True, "completed": True},
{"fact": False, "format": False, "completed": False},
]
b = [{"fact": True, "format": True, "completed": True}] * 4 + [
{"fact": False, "format": True, "completed": True},
]
assert summarize(a) == {"事实通过率": 0.6, "格式通过率": 0.2, "完成率": 0.8}
assert summarize(b) == {"事实通过率": 0.8, "格式通过率": 1.0, "完成率": 1.0}
print("教学A:", summarize(a))
print("教学B:", summarize(b))
保存为 score.py 运行。这里把每题事实作为整题通过/失败;真实评分前要固定是否允许部分得分,避免不同轮次随意改口径。
数字之后还要看失败题
假设 B 只在 Q3 失败,它虽然总体更高,却仍会在资料缺失时编答案。下一次改动应该针对拒答,而不是再加一堆格式要求。
修订提示可以是:
Q3的资料没有运费承担规则,当前回答却写买家承担。请修改生成提示中的证据不足处理,并保持Q1、Q2的条件完整。重新跑全部五题,不能只重跑Q3后宣布整体通过。
先用开发题修提示,最后准备新的同类型问题做保留测试,避免只是记住这五道题的答案。
一次好结果能说明多少
五题适合发现明显退步,不能代表所有用户、语言或长文场景。重要问题可重复多次,保留每次结果而非只挑最好的一次;样本变多后再谈稳定率。
如果对比的是不同模型与不同提示,结论应写“整体方案差异”,不能全部归因于某一句提示词。把变化因素写清楚,读者才知道结果能迁移多远。
自测与答案
失败请求不计入统计会怎样?完成率和总体成功率被高估,用户实际体验被隐藏。
加练:加一道包含相互冲突资料的问题,先写“报告冲突、不自行裁决”的标准。交付五题原回答、逐题判分与一个限制说明,不把本课教学数字当成模型榜单。
来源与内容说明
AIScope 中文手册 · AIScope 编辑
本篇为本站原创学习内容,引用资料保留参考来源。
收录:2026年10月19日
适用范围:尚未标注,请结合原文与实际环境核对
人工核验:尚无核验记录