评估样本
评估样本是用于评估和衡量LLM应用程序在特定场景下性能的单个结构化数据实例。它代表AI应用程序预期处理的单个交互单元或特定用例。在Ragas中,评估样本使用SingleTurnSample
和MultiTurnSample
类表示。
SingleTurnSample
SingleTurnSample表示用户、LLM和预期结果之间的一次性交互。它适用于涉及单个问答对,可能带有额外上下文或参考信息的评估。
示例
以下示例展示了如何为基于RAG的应用程序中的单次交互创建SingleTurnSample
实例。在此场景中,用户提出一个问题,AI提供答案。我们将创建一个SingleTurnSample实例来表示此交互,包括任何检索到的上下文、参考答案和评估标准。
from ragas import SingleTurnSample
# 用户的问题
user_input = "法国的首都是什么?"
# 检索到的上下文(例如,从知识库或搜索引擎)
retrieved_contexts = ["巴黎是法国的首都和人口最多的城市。"]
# AI的响应
response = "法国的首都是巴黎。"
# 参考答案(真实情况)
reference = "巴黎"
# 评估标准
rubric = {
"准确性": "正确",
"完整性": "高",
"流畅性": "优秀"
}
# 创建SingleTurnSample实例
sample = SingleTurnSample(
user_input=user_input,
retrieved_contexts=retrieved_contexts,
response=response,
reference=reference,
rubric=rubric
)
MultiTurnSample
MultiTurnSample表示人、AI和可选工具之间的多轮交互以及预期的评估结果。它适用于表示在更复杂交互中进行评估的对话代理。在MultiTurnSample
中,user_input
属性表示一系列消息,这些消息共同构成了人机用户与AI系统之间的多轮对话。这些消息是HumanMessage
、AIMessage
和ToolMessage
类的实例。
示例
以下示例展示了如何为多轮交互创建MultiTurnSample
实例。在此场景中,用户想知道纽约市的当前天气。AI助手将使用天气API工具获取信息并回复用户。
from ragas.messages import HumanMessage, AIMessage, ToolMessage, ToolCall
# 用户询问纽约市的天气
user_message = HumanMessage(content="今天纽约市的天气怎么样?")
# AI决定使用天气API工具获取信息
ai_initial_response = AIMessage(
content="让我为您查看纽约市的当前天气。",
tool_calls=[ToolCall(name="WeatherAPI", args={"location": "New York City"})]
)
# 工具提供天气信息
tool_response = ToolMessage(content="纽约市阳光明媚,气温为75°F。")
# AI向用户提供最终回复
ai_final_response = AIMessage(content="今天纽约市阳光明媚,气温为75华氏度。")
# 将所有消息组合成列表以表示对话
conversation = [
user_message,
ai_initial_response,
tool_response,
ai_final_response
]
现在,使用对话创建MultiTurnSample对象,包括任何参考回复和评估标准。