数据集转换
LangSmith 允许您将转换附加到数据集模式中的字段,这些转换将应用于您的数据,然后再将其添加到您的数据集中,无论数据来自 UI、API 还是运行规则。
结合 LangSmith 预构建的 JSON 模式类型,这些功能使您可以在将数据保存到数据集之前轻松地对其进行预处理。
转换类型
转换类型 | 目标类型 | 功能 |
---|---|---|
remove_system_messages | Array[Message] | 过滤消息列表以删除任何系统消息。 |
convert_to_openai_message | Message Array[Message] | 使用 langchain 的 convert_to_openai_messages,将任何来自 LangChain 内部序列化格式的传入数据转换为 OpenAI 的标准消息格式。 如果目标字段标记为必需,并且在条目中未找到匹配的消息,它将尝试从几个著名的 LangSmith 跟踪格式(例如,任何跟踪的 LangChain BaseChatModel 运行或来自 LangSmith OpenAI 包装器 的跟踪运行)中提取消息(或消息列表),并删除包含消息的原始键。 |
convert_to_openai_tool | Array[Tool] 仅在输入字典的顶层字段中可用。 | 使用 langchain 的 convert_to_openai_tool,将任何传入数据转换为此处 OpenAI 标准工具格式 如果在指定的键中未找到工具,则将从运行的调用参数中提取工具定义(如果存在)。这很有用,因为 LangChain 聊天模型将工具定义跟踪到运行的 extra.invocation_params 字段,而不是输入。 |
remove_extra_fields | Object | 删除此目标对象的模式中未定义的任何字段。 |
聊天模型预构建模式
转换的主要用例是简化将生产跟踪收集到数据集中,以便在评估/少量样本提示/等下游应用中跨模型提供商进行标准化使用。
为了简化最终用户的转换设置,LangSmith 提供了预定义的模式,该模式将执行以下操作
- 从您收集的运行中提取消息,并将它们转换为 openai 标准格式,这使得它们与所有 LangChain ChatModels 和大多数模型提供商的 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"
}
]