设置在线评估
在线评估为您的生产追踪提供实时反馈。这对于持续监控您的应用程序的性能非常有用 - 以识别问题、衡量改进并确保长期一致的质量。
LangSmith 支持两种类型的在线评估
- LLM-as-a-judge:使用 LLM 评估您的追踪。用作一种可扩展的方式,为您的输出提供类似人类的判断(例如,毒性、幻觉、正确性等)。
- 自定义代码:直接在 LangSmith 中用 Python 编写评估器。通常用于验证数据的结构或统计属性。
在线评估使用 自动化规则 进行配置。
开始使用在线评估器
1. 打开您要配置在线评估器的 追踪项目
2. 选择“添加规则”按钮(右上角)
3. 配置您的规则
- 添加评估器名称
- 您可以选择性地过滤您想要应用评估器的运行,或配置采样率。例如,通常根据用户指示响应不令人满意的运行、具有特定模型的运行等应用特定的评估器。
- 选择“应用评估器”
配置 LLM-as-a-judge 在线评估器
查看本指南以配置 LLM-as-a-judge 评估器。
配置自定义代码评估器
选择“自定义代码”评估器。
编写您的评估函数
自定义代码评估器的限制。
允许的库:您可以导入所有标准库函数,以及以下公共包
numpy (v2.2.2): "numpy"
pandas (v1.5.2): "pandas"
jsonschema (v4.21.1): "jsonschema"
scipy (v1.14.1): "scipy"
sklearn (v1.26.4): "scikit-learn"
网络访问:您无法从自定义代码评估器访问互联网。
自定义代码评估器必须内联编写。我们建议在 LangSmith 中设置自定义代码评估器之前在本地进行测试。
在 UI 中,您将看到一个面板,允许您内联编写代码,并提供一些入门代码
自定义代码评估器接受一个参数
- 一个
Run
(参考)。这表示要评估的采样运行。
它们返回一个单一值
- 反馈字典:一个字典,其键是您想要返回的反馈类型,值是您将为该反馈键给出的分数。例如,
{"correctness": 1, "silliness": 0}
将在运行中创建两种类型的反馈,一种表示它是正确的,另一种表示它不愚蠢。
在下面的屏幕截图中,您可以看到一个简单函数的示例,该函数验证实验中的每个运行都具有已知的 json 字段
import 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}
测试并保存您的评估函数
在保存之前,您可以通过单击“测试代码”在最近的运行中测试您的评估器函数,以确保您的代码正确执行。
一旦您“保存”,您的在线评估器将对新采样的运行(或者如果您选择了回填选项,也会对回填的运行)运行。
如果您喜欢视频教程,请查看 LangSmith 课程介绍中的“在线评估”视频。