Skip to main content

设置在线评估

推荐阅读

在深入研究此内容之前,阅读以下内容可能会有所帮助:

在线评估提供有关您的生产跟踪的实时反馈。这对于持续监控应用程序的性能非常有用 - 识别问题、衡量改进情况并确保质量随时间推移保持一致。

LangSmith 支持两种类型的在线评估:

  • LLM as-a-judge:使用 LLM 评估您的跟踪记录。用作一种可扩展的方式,为您的输出提供类似人类的判断(例如毒性、幻觉、正确性等)。
  • 自定义代码:直接在 LangSmith 中用 Python 编写赋值器。通常用于验证数据的结构或统计属性。

在线评估是使用自动化规则配置的。

开始使用在线评估器

1. 打开要配置在线评估的跟踪项目

2. 选择 Add Rules(添加规则)按钮(右上角)

3. 配置规则

  • 添加 evaluator name
  • (可选)筛选要应用赋值器的运行或配置采样率。例如,根据用户指示响应不满意的运行、使用特定模型的运行等来应用特定评估器是很常见的。
  • 选择 Apply Evaluator

配置 LLM 作为裁判在线评估器

查看本指南以配置配置 LLM 作为裁判评估员

配置自定义代码计算器

选择 Custom code evaluator(自定义代码计算器)。

编写评估函数

自定义代码评估器限制。

允许的库:您可以导入所有标准库函数,以及以下公共包:

  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"

网络访问:您无法从自定义代码评估器访问 Internet。

自定义代码计算器必须内联编写。我们建议在 LangSmith 中设置自定义代码计算器之前在本地进行测试。

在 UI 中,您将看到一个面板,用于内联编写代码,其中包含一些起始代码:

自定义代码计算器采用一个参数:

  • 一个Run (参考)。这表示要评估的采样运行。

它们返回单个值:

  • Feedback(s) Dictionary(反馈词典):一个词典,其 keys 是您要返回的反馈类型,values 是 您将为该 feedback key 给出的分数。例如{"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}

测试并保存您的评估函数

在保存之前,您可以通过单击 Test Code (测试代码) 在最近的运行中测试计算器函数,以确保您的代码正确执行。

保存后,您的在线评估器将运行新采样的运行(如果您选择了回填选项,则也会运行回填的运行)。

如果您更喜欢视频教程,请观看 LangSmith 课程简介中的在线评估视频


这个页面有帮助吗?


您可以在 GitHub 上留下详细的反馈。