跳过主内容

数据集转换

LangSmith 允许您将转换应用于数据集架构中的字段,这些转换在数据添加到数据集之前(无论是通过 UI、API 还是运行规则)应用于数据。

结合 LangSmith 的预构建 JSON 模式类型,这些转换使您能够在将数据保存到数据集中之前轻松进行预处理。

转换类型

转换类型目标类型功能
移除系统消息数组[消息]过滤消息列表以移除任何系统消息。
转换为 OpenAI 消息消息
数组[消息]
使用 LangChain 的 convert_to_openai_messages 将来自 LangChain 内部序列化格式的任何传入数据转换为 OpenAI 的标准消息格式。

如果目标字段被标记为必需,并且在输入时未找到匹配的消息,它将尝试从几个已知的 LangSmith 追踪格式(例如,任何追踪的 LangChain BaseChatModel 运行或来自 LangSmith OpenAI 包装器的追踪运行)中提取消息(或消息列表),并移除包含该消息的原始键。
转换为 OpenAI 工具数组[工具]

仅适用于输入字典中的顶级字段。
使用 LangChain 的 convert_to_openai_tool 将任何传入数据转换为 OpenAI 标准工具格式。

如果存在或在指定键处未找到工具,将从运行的调用参数中提取工具定义。这很有用,因为 LangChain 聊天模型将工具定义追踪到运行的 extra.invocation_params 字段而不是输入中。
移除额外字段对象移除此目标对象模式中未定义的任何字段。

聊天模型预构建模式

转换的主要用例是简化将生产追踪收集到数据集中,使其格式可在不同模型提供商之间标准化,以便在下游评估/少样本提示等场景中使用。

为了简化终端用户的转换设置,LangSmith 提供了预定义模式,它将执行以下操作:

  • 从您收集的运行中提取消息并将其转换为 OpenAI 标准格式,这使得它们与所有 LangChain ChatModel 以及大多数模型提供商的 SDK 兼容,用于下游评估和实验。
  • 提取您的 LLM 使用的任何工具,并将其添加到示例输入中,以便在下游评估中用于重现性。
提示

希望迭代其系统提示的用户在使用我们的聊天模型模式时,通常也会在其输入消息上添加“移除系统消息”转换,这将防止您将系统提示保存到数据集中。

兼容性

LLM 运行收集模式旨在从 LangChain BaseChatModel 运行或来自 LangSmith OpenAI 包装器的追踪运行中收集数据。

如果您追踪的 LLM 运行不兼容,请联系 support@langchain.dev,我们可以扩展支持。

如果您想将转换应用于其他类型的运行(例如,用消息历史记录表示 LangGraph 状态),请直接定义您的模式并手动添加相关转换。

启用

将追踪项目或标注队列中的运行添加到数据集时,如果它具有 LLM 运行类型,我们将默认应用聊天模型模式。

有关新数据集的启用,请参阅我们的数据集管理操作指南

规范

有关预构建模式的完整 API 规范,请参阅以下部分:

输入模式

{
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"$ref": "https://api.smith.langchain.com/public/schemas/v1/message.json"
}
},
"tools": {
"type": "array",
"items": {
"$ref": "https://api.smith.langchain.com/public/schemas/v1/tooldef.json"
}
}
},
"required": ["messages"]
}

输出模式

{
"type": "object",
"properties": {
"message": {
"$ref": "https://api.smith.langchain.com/public/schemas/v1/message.json"
}
},
"required": ["message"]
}

转换

转换如下所示:

[
{
"path": ["inputs"],
"transformation_type": "remove_extra_fields"
},
{
"path": ["inputs", "messages"],
"transformation_type": "convert_to_openai_message"
},
{
"path": ["inputs", "tools"],
"transformation_type": "convert_to_openai_tool"
},
{
"path": ["outputs"],
"transformation_type": "remove_extra_fields"
},
{
"path": ["outputs", "message"],
"transformation_type": "convert_to_openai_message"
}
]

本页有帮助吗?


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