对于 Python 中较大的评估任务,我们推荐使用 aevaluate(),它是 evaluate() 的异步版本。仍然值得先阅读本指南,因为两者接口相同,然后再阅读关于异步运行评估的操作指南。在 JS/TS 中,evaluate() 已经是异步的,因此不需要单独的方法。运行大型任务时,配置
max_concurrency/maxConcurrency 参数也很重要。这通过将数据集有效地分配到多个线程来实现评估的并行化。定义应用
首先我们需要一个要评估的应用。让我们为这个示例创建一个简单的毒性分类器。创建或选择数据集
我们需要一个数据集来评估我们的应用。我们的数据集将包含带有标签的有毒和无毒文本示例。 需要langsmith>=0.3.13
定义评估器
有两种主要方式定义评估器。在代码中本地定义
你也可以查看 LangChain 的开源评估包 openevals,其中包含常见的预构建评估器。
- Python:需要
langsmith>=0.3.13 - TypeScript:需要
langsmith>=0.2.9
在 LangSmith UI 中定义
你也可以在 LangSmith UI 中定义评估器。你可以在 Evaluators 标签页下在 UI 中创建评估器。这些评估器将随着每个新实验自动触发。运行评估
我们将使用 evaluate() / aevaluate() 方法来运行评估。 关键参数包括:- 一个目标函数,它接收一个输入字典并返回一个输出字典。每个示例的
example.inputs字段会被传递给目标函数。在本例中,我们的toxicity_classifier已经设置好接收示例输入,因此我们可以直接使用它。 data- 要评估的 LangSmith 数据集的名称或 UUID,或者一个示例迭代器。evaluators- 用于给函数输出打分的评估器列表;Langsmith UI 中的数据集评估器也会自动触发。metadata- 一个可选对象,用于附加到实验。传递models、prompts和tools键以填充实验表视图中的相应列。
langsmith>=0.3.13
探索结果
每次调用evaluate() 都会创建一个实验,你可以在 LangSmith UI 中查看或通过 SDK 查询。更多详情请参见分析实验。
针对数据集运行的实验会列在实验表中。



参考代码
点击查看整合后的代码片段
点击查看整合后的代码片段
相关
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.




