以编程方式使用文档

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

代码评估器允许您直接在 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 入门课程。