什么是 LangSmith

LangSmith 是一个用于构建生产级 LLM 应用程序的平台,它用于开发、协作、测试、部署和监控 LLM 应用程序。

LangSmith 官网介绍


如何配置 LangSmith

本章节将指引你注册 LangSmith 并将其集成至 Dify 平台内。

1. 注册/登录 LangSmith

2. 创建项目

在 LangSmith 内创建项目,登录后在主页点击 New Project 创建一个自己的项目,项目将用于与 Dify 内的应用关联进行数据监测。

在 LangSmith 内创建项目

创建完成之后在 Projects 内可以查看该项目。

在 LangSmith 内查看已创建项目

3. 创建项目凭据

创建项目凭据,在左侧边栏内找到项目设置 Settings

项目设置

点击 Create API Key,创建一个项目凭据。

创建一个项目 API Key

选择 Personal Access Token ,用于后续的 API 身份校验。

创建一个 API Key

将创建的 API key 复制保存。

复制 API Key

4. 将 LangSmith 集成至 Dify 平台

在 Dify 应用内配置 LangSmith。打开需要监测的应用,在左侧边菜单内打开监测,点击页面内的配置。

配置 LangSmith

点击配置后,将在 LangSmith 内创建的 API Key项目名粘贴到配置内并保存。

配置 LangSmith

配置项目名需要与 LangSmith 内设置的项目一致,若项目名不一致,数据同步时 LangSmith 会自动创建一个新的项目。

成功保存后可以在当前页面查看监测状态。

查看配置状态

在 LangSmith 内查看监测数据

配置完成后, Dify 内应用的调试或生产数据可以在 LangSmith 查看监测数据。

在 Dify 内调试应用

在 LangSmith 内查看应用数据

在 LangSmith 内查看应用数据

监测数据清单

Workflow /Chatflow Trace信息

用于追踪workflow以及chatflow

WorkflowLangSmith Chain
workflow_app_log_id/workflow_run_idid
user_session_id-放入metadata
workflow_name
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
模型token消耗相关usage_metadata
metadataextra
errorerror
[workflow]tags
”conversation_id/workflow时无”metadata中的conversation_id
conversion_idparent_run_id

Workflow Trace Info

  • workflow_id - Workflow的唯一标识
  • conversation_id - 对话ID
  • workflow_run_id - 此次运行的ID
  • tenant_id - 租户ID
  • elapsed_time - 此次运行耗时
  • status - 运行状态
  • version - Workflow版本
  • total_tokens - 此次运行使用的token总数
  • file_list - 处理的文件列表
  • triggered_from - 触发此次运行的来源
  • workflow_run_inputs - 此次运行的输入数据
  • workflow_run_outputs - 此次运行的输出数据
  • error - 此次运行中发生的错误
  • query - 运行时使用的查询
  • workflow_app_log_id - Workflow应用日志ID
  • message_id - 关联的消息ID
  • start_time - 运行开始时间
  • end_time - 运行结束时间
  • workflow node executions - workflow节点运行信息
  • Metadata
    • workflow_id - Workflow的唯一标识
    • conversation_id - 对话ID
    • workflow_run_id - 此次运行的ID
    • tenant_id - 租户ID
    • elapsed_time - 此次运行耗时
    • status - 运行状态
    • version - Workflow版本
    • total_tokens - 此次运行使用的token总数
    • file_list - 处理的文件列表
    • triggered_from - 触发来源

Message Trace信息

用于追踪llm对话相关

ChatLangSmith LLM
message_idid
user_session_id-放入metadata
“message_name
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
模型token消耗相关usage_metadata
metadataextra
errorerror
[“message”, conversation_mode]tags
conversation_idmetadata中的conversation_id
conversion_idparent_run_id

Message Trace Info

  • message_id - 消息ID
  • message_data - 消息数据
  • user_session_id - 用户的session_id
  • conversation_model - 对话模式
  • message_tokens - 消息中的令牌数
  • answer_tokens - 回答中的令牌数
  • total_tokens - 消息和回答中的总令牌数
  • error - 错误信息
  • inputs - 输入数据
  • outputs - 输出数据
  • file_list - 处理的文件列表
  • start_time - 开始时间
  • end_time - 结束时间
  • message_file_data - 消息关联的文件数据
  • conversation_mode - 对话模式
  • Metadata
    • conversation_id - 消息所属对话的ID
    • ls_provider - 模型提供者
    • ls_model_name - 模型ID
    • status - 消息状态
    • from_end_user_id - 发送用户的ID
    • from_account_id - 发送账户的ID
    • agent_based - 是否基于代理
    • workflow_run_id - 工作流运行ID
    • from_source - 消息来源
    • message_id - 消息ID

Moderation Trace信息

用于追踪对话审查

ModerationLangSmith Tool
user_id-放入metadata
“moderation”name
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
metadataextra
[moderation]tags
message_idparent_run_id

Message Trace Info

  • message_id - 消息ID
  • user_id: 用户id
  • workflow_app_log_id workflow_app_log_id
  • inputs - 审查的输入数据
  • message_data - 消息数据
  • flagged - 是否被标记为需要注意的内容
  • action - 执行的具体行动
  • preset_response - 预设响应
  • start_time - 审查开始时间
  • end_time - 审查结束时间
  • Metadata
    • message_id - 消息ID
    • action - 执行的具体行动
    • preset_response - 预设响应

Suggested Question Trace信息

用于追踪建议问题

Suggested QuestionLangSmith LLM
user_id-放入metadata
suggested_questionname
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
metadataextra
[suggested_question]tags
message_idparent_run_id

Message Trace Info

  • message_id - 消息ID
  • message_data - 消息数据
  • inputs - 输入的内容
  • outputs - 输出的内容
  • start_time - 开始时间
  • end_time - 结束时间
  • total_tokens - 令牌数量
  • status - 消息状态
  • error - 错误信息
  • from_account_id - 发送账户的ID
  • agent_based - 是否基于代理
  • from_source - 消息来源
  • model_provider - 模型提供者
  • model_id - 模型ID
  • suggested_question - 建议的问题
  • level - 状态级别
  • status_message - 状态信息
  • Metadata
    • message_id - 消息ID
    • ls_provider - 模型提供者
    • ls_model_name - 模型ID
    • status - 消息状态
    • from_end_user_id - 发送用户的ID
    • from_account_id - 发送账户的ID
    • workflow_run_id - 工作流运行ID
    • from_source - 消息来源

Dataset Retrieval Trace信息

用于追踪知识库检索

Dataset RetrievalLangSmith Retriever
user_id-放入metadata
dataset_retrievalname
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
metadataextra
[dataset_retrieval]tags
message_idparent_run_id

Dataset Retrieval Trace Info

  • message_id - 消息ID
  • inputs - 输入内容
  • documents - 文档数据
  • start_time - 开始时间
  • end_time - 结束时间
  • message_data - 消息数据
  • Metadata
    • message_id消息ID
    • ls_provider模型提供者
    • ls_model_name模型ID
    • status消息状态
    • from_end_user_id发送用户的ID
    • from_account_id发送账户的ID
    • agent_based是否基于代理
    • workflow_run_id工作流运行ID
    • from_source消息来源

Tool Trace信息

用于追踪工具调用

ToolLangSmith Tool
user_id-放入metadata
tool_namename
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
metadataextra
[“tool”, tool_name]tags
message_idparent_run_id

Tool Trace Info

  • message_id消息ID
  • tool_name工具名称
  • start_time开始时间
  • end_time结束时间
  • tool_inputs工具输入
  • tool_outputs工具输出
  • message_data消息数据
  • error错误信息,如果存在
  • inputs消息的输入内容
  • outputs消息的回答内容
  • tool_config工具配置
  • time_cost时间成本
  • tool_parameters工具参数
  • file_url关联文件的URL
  • Metadata
    • message_id消息ID
    • tool_name工具名称
    • tool_inputs工具输入
    • tool_outputs工具输出
    • tool_config工具配置
    • time_cost时间成本
    • error错误信息
    • tool_parameters工具参数
    • message_file_id消息文件ID
    • created_by_role创建者角色
    • created_user_id创建者用户ID

Generate Name Trace信息

用于追踪会话标题生成

Generate NameLangSmith Tool
user_id-放入metadata
generate_namename
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
metadataextra
[generate_name]tags

Generate Name Trace Info

  • conversation_id对话ID
  • inputs输入数据
  • outputs生成的会话名称
  • start_time开始时间
  • end_time结束时间
  • tenant_id租户ID
  • Metadata
    • conversation_id对话ID
    • tenant_id租户ID