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

查看在线评估器

导航到跟踪页面并选择一个跟踪项目。要查看该项目的现有在线评估器,请点击评估器选项卡。 查看在线评估器

配置在线评估器

1. 导航到在线评估器

导航到跟踪页面并选择一个跟踪项目。点击评估器选项卡,然后点击 + 评估器以打开添加评估器面板。在从头开始创建下选择代码评估器以构建新的评估器,或在附加现有评估器下从您的工作区中选择现有的代码评估器。

2. 为评估器命名

为您的评估器提供一个名称。此名称将在代码中引用评估器时使用,也将是此评估器生成的反馈的名称。

3. 创建过滤器

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

4. (可选)配置采样率

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

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

通过切换应用于过去的运行并输入“回填起始日期”将规则应用于过去的运行。这仅在创建规则时可能。注意:回填作为后台作业处理,因此您不会立即看到结果。 为了跟踪回填进度,您可以通过导航到跟踪项目中的评估器选项卡并点击您创建的评估器的日志按钮来查看评估器的日志。在线评估器日志类似于自动化规则日志
  • 添加评估器名称
  • 可选地过滤您希望应用评估器的运行或配置采样率。
  • 选择应用评估器

编写您的评估函数

代码评估器限制。允许的库:您可以导入所有标准库函数,以及以下公共包:
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}

测试并保存您的评估函数

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