Skip to main content
推荐阅读在深入了解本内容之前,建议先阅读以下内容:
在线评估为您的生产轨迹提供实时反馈。这对于持续监控应用程序性能非常有用——可以识别问题、衡量改进效果,并确保长期保持一致的品质。 代码评估器允许您直接在 LangSmith 中使用 Python 或 JavaScript 编写评估器。通常用于验证数据的结构或统计属性。
当在线评估器在轨迹中的任何运行上执行时,该轨迹将自动升级为扩展数据保留。此升级会影响轨迹定价,但确保符合您评估标准(通常是那些对分析最有价值的轨迹)的轨迹得以保留以供调查。

查看在线评估器

前往 Tracing Projects 标签页并选择一个追踪项目。要查看该项目的现有在线评估器,请点击 Evaluators 标签页。 查看在线评估器

配置在线评估器

1. 导航至在线评估器

前往 Tracing Projects 标签页并选择一个追踪项目。点击追踪项目页面右上角的 + New,然后点击 New Evaluator。选择 code 评估器。

2. 命名您的评估器

3. 创建过滤器

例如,您可能希望基于以下条件应用特定的评估器:
  • 运行中用户留下反馈表明响应不令人满意。
  • 运行中调用了特定的工具调用。有关更多信息,请参阅筛选工具调用
  • 运行匹配特定的元数据片段(例如,如果您记录带有 plan_type 的轨迹,并且只想对来自企业客户的轨迹运行评估)。有关更多信息,请参阅向轨迹添加元数据
评估器上的过滤器与您在项目中筛选轨迹时的工作方式相同。有关过滤器的更多信息,您可以参考筛选轨迹
在创建评估器过滤器时,检查运行通常很有帮助。打开评估器配置面板后,您可以检查运行并对其应用过滤器。您对运行表应用的任何过滤器将自动反映在评估器的过滤器中。

4. (可选)配置采样率

配置采样率以控制触发自动化操作的过滤运行百分比。例如,为了控制成本,您可能希望设置过滤器,仅将评估器应用于 10% 的轨迹。为此,您需要将采样率设置为 0.1。

5. (可选)将规则应用于过去的运行

通过切换 Apply to past runs 并输入“Backfill from”日期,将规则应用于过去的运行。这仅在规则创建时可能。注意:回填作为后台作业处理,因此您不会立即看到结果。 为了跟踪回填进度,您可以查看评估器的日志,方法是前往追踪项目内的 Evaluators 标签页,并点击您创建的评估器的 Logs 按钮。在线评估器日志类似于自动化规则日志
  • 添加评估器名称
  • 可选地筛选您希望应用评估器的运行,或配置采样率。
  • 选择 Apply 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"
网络访问:您无法从代码评估器访问互联网。
代码评估器必须内联编写。我们建议在 LangSmith 中设置代码评估器之前先在本地进行测试。 在 UI 中,您将看到一个面板,允许您内联编写代码,并附带一些起始代码: LangSmith 中的代码评估器面板,显示内联代码编辑器 代码评估器接受一个参数:
  • 一个 Run参考)。这代表要评估的采样运行。
它们返回一个值:
  • 反馈字典:一个字典,其键是您想要返回的反馈类型,值是为该反馈键给出的分数。例如,{"correctness": 1, "silliness": 0} 将在运行上创建两种类型的反馈,一种表示正确,另一种表示不愚蠢。
在下面的截图中,您可以看到一个简单函数的示例,该函数验证实验中的每个运行是否具有已知的 json 字段:
import json

def perform_eval(run):
  output_to_validate = run['outputs']
  is_valid_json = 0

  # 断言可以序列化/反序列化为 json
  try:
    json.loads(json.dumps(output_to_validate))
  except Exception as e:
    return { "formatted": False }

  # 断言输出事实存在
  if "facts" not in output_to_validate:
    return { "formatted": False }

  # 断言必需字段存在
  if "years_mentioned" not in output_to_validate["facts"]:
    return { "formatted": False }

  return {"formatted": True}

测试并保存您的评估函数

在保存之前,您可以通过点击 Test Code 在最近的运行上测试您的评估器函数,以确保代码正确执行。 一旦您点击 Save,您的在线评估器将在新采样的运行(或如果您选择了回填选项,也包括回填的运行)上运行。 如果您更喜欢视频教程,请查看 LangSmith 入门课程中的在线评估视频