在线评估 对您的生产环境提供实时反馈 追踪记录。这对于持续监控应用程序的性能非常有用:识别问题、衡量改进并确保随时间推移的质量一致性。
代码评估器允许您直接在 LangSmith 中使用 Python 或 JavaScript 编写评估器。常用于验证数据的结构或统计属性。
查看在线评估器
导航至 **追踪记录** 页面并选择一个追踪项目。要查看该项目现有的在线评估器,请点击 **评估器** tab.
配置在线评估器
1. 导航至在线评估器
导航至 **追踪记录** 页面并选择一个追踪项目。点击 **评估器** 标签页,然后点击 **+ 评估器** 以打开 **添加评估器** 面板。选择 **代码评估器** 在 **从头创建** 下构建新的评估器,或从工作区中选择现有的代码评估器在 **附加现有评估器**.
2. 为评估器命名
为评估器提供一个名称。此名称将在代码中引用评估器时使用,也将成为此评估器生成的反馈的名称。
3. 创建筛选条件
例如,您可能希望根据以下条件应用特定的评估器:
- - 运行其中 用户留下反馈 表示响应不满意的运行。
- - 调用特定工具调用的运行。请参阅 工具调用筛选 了解更多。
- - 匹配特定元数据的运行(例如,如果您使用
plan_type记录追踪记录,并且只想对企业客户的追踪记录运行评估)。请参阅 为追踪记录添加元数据 了解更多。
评估器上的筛选条件与您在项目中筛选追踪记录的方式相同。有关筛选条件的更多信息,请参阅 筛选追踪记录.
4. (可选)配置采样率
配置采样率以控制触发自动化操作的条件运行百分比。例如,为了控制成本,您可能希望将筛选条件设置为仅对10%的追踪应用评估器。为此,您需要将采样率设置为0.1。
5. (可选)将规则应用于历史运行
通过切换来将规则应用于历史运行 **应用于历史运行** 并输入“回填起始日期”。这仅在规则创建时才能执行。注意:回填作为后台作业处理,因此您不会立即看到结果。
要追踪回填进度,您可以导航至 **评估器** 追踪项目中的标签页,然后点击您创建的评估器的日志按钮。在线评估器日志与 自动化规则日志.
- - 添加评估器名称
- - (可选)筛选您希望对其应用评估器的运行或配置采样率。
- - 选择 **应用评估器**
编写您的评估函数
代码评估器必须以内联方式编写。我们建议在 LangSmith 中设置代码评估器之前先在本地进行测试。
在 UI 中,您会找到一个面板,可以在其中以内联方式编写代码,并附带一些起始代码。
代码评估器接受一个参数:
- - A
Run(reference)。这代表要评估的采样运行。
它们返回一个值:
- - 反馈字典:一个字典,其键是您想要返回的反馈类型,值是您将给予该反馈键的分数。例如,
{"correctness": 1, "silliness": 0}将在运行中创建两种类型的反馈,一种表示它是正确的,另一种表示它不是愚蠢的。
以下示例展示了一个函数,该函数验证实验中的每次运行是否都有已知的 JSON 字段:
def perform_eval(run):
output_to_validate = run['outputs']
is_valid_json = 0
# assert you can serialize/deserialize as json
try:
json.loads(json.dumps(output_to_validate))
except Exception as e:
return { "formatted": False }
# assert output facts exist
if "facts" not in output_to_validate:
return { "formatted": False }
# assert required fields exist
if "years_mentioned" not in output_to_validate["facts"]:
return { "formatted": False }
return {"formatted": True}
function perform_eval(run) {
const outputToValidate = run.outputs;
// Assert you can serialize/deserialize as json
try {
JSON.stringify(outputToValidate);
JSON.parse(JSON.stringify(outputToValidate));
} catch (e) {
return { "formatted": false };
}
// Assert output facts exist
if (!("facts" in outputToValidate)) {
return { "formatted": false };
}
// Assert required fields exist
if (!outputToValidate["facts"].hasOwnProperty("years_mentioned")) {
return { "formatted": false };
}
return { "formatted": true };
}
测试并保存您的评估函数
在保存之前,您可以通过点击 **测试代码** 来确保您的代码能够正确执行。
一旦您 **保存**,您的在线评估器将对新采样的运行运行(如果您选择了回填选项,也会对回填的运行进行评估)。
如果您喜欢视频教程,请查看 在线评估视频 ,来自 LangSmith 入门课程。