Dify智能体开发:跟踪应用程序在生产环境中的性能

你可以在 概览 内监控、跟踪应用程序在生产环境中的性能,在数据分析仪表盘内分析生产环境中应用的使用成本、延迟、用户反馈、性能等指标,并通过持续调试、迭代不断改进你的应用程序。

集成外部 Ops 工具

为什么需要 LLMOps 工具

尽管 LLM 拥有出色的推理和文本生成能力,但其内部运作机制仍然难以完全理解,这给基于 LLM 的应用开发带来了挑战。例如:

  • 评估输出质量
  • 推理成本评估
  • 模型响应延迟
  • 链式调用、Agent 和工具引入的调试复杂
  • 复杂的用户意图理解

而 LangSmith、Langfuse 这类 LLMOps 工具,能够为 LLM 应用提供全面的追踪和深度评估能力,为开发者提供从应用的原型构建到生产、运营的完整生命周期支持。

  • 原型阶段

LLM 应用在原型构建阶段通常涉及提示词测试、模型选择、RAG 检索策略和其他参数组合的快速实验。快速了解模型的执行效果对于此阶段非常重要。接入 Langfuse 可以在跟踪 dify 应用执行的每个步骤,提供清晰的可见性和调试信息,从而让开发者快速定位问题并减少调试时间。

  • 测试阶段

进入测试阶段后,需要继续收集数据以改进和提高性能。 LangSmith 能够将运行作为示例添加到知识库中,从而扩展实际场景的测试覆盖范围。这是将日志系统和评估/测试系统置于同一平台中的一个关键优势。

  • 生产阶段

进入生产环境后,开发团队还需要仔细检查应用关键数据点、增加基准知识库、人工注释以及深入分析运营数据结结果。尤其是在应用大规模使用中,运营和数据团队需要持续观测应用成本和性能,对模型以及应用表现进行优化。

Dify 与 Ops 工具的集成

使用 Dify Workflow 编排 LLM 应用时,通常涵盖一系列节点和逻辑,具有较高的复杂性。

将 Dify 与外部 Ops 工具集成,有助于打破编排应用时可能面临的 LLM “黑盒”问题。开发者只需要在平台上进行简单的配置,即可追踪应用生命周期中的数据和指标,轻松评估在 Dify 上创建的 LLM 应用质量、性能和成本。

集成 Arize

Arize 简介

企业级LLM可观测性、在线和离线评估、监控和实验平台,基于OpenTelemetry构建,专为LLM和代理驱动的应用程序设计。

配置 Arize

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

1. 注册/登录 Arize

2. 获取 Arize API 密钥

从右上角的用户菜单中获取 Arize API 密钥。点击 API Key,然后点击 API Key 进行复制

3. 集成 Arize 与 Dify

在 Dify 应用程序中配置 Arize。打开需要监控的应用程序,在侧边菜单中打开监控,并在页面上选择追踪应用性能

点击配置后,将在 Arize 中创建的 API KeySpace ID 和项目名称粘贴到配置中并保存。

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

监控数据列表

工作流/对话流追踪信息

用于追踪工作流和对话流

工作流Arize 追踪
workflow_app_log_id/workflow_run_idid
user_session_id- 放置在元数据中
workflow_{id}name
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
Model token consumptionusage_metadata
metadatametadata
errorerror
[workflow]tags
conversation_id/none for workflowconversation_id in metadata

工作流追踪信息

  • workflow_id - 工作流唯一标识符
  • conversation_id - 对话 ID
  • workflow_run_id - 当前运行的 ID
  • tenant_id - 租户 ID
  • elapsed_time - 当前运行所用时间
  • status - 运行状态
  • version - 工作流版本
  • total_tokens - 当前运行使用的总令牌数
  • file_list - 处理的文件列表
  • triggered_from - 触发当前运行的来源
  • workflow_run_inputs - 当前运行的输入数据
  • workflow_run_outputs - 当前运行的输出数据
  • error - 当前运行期间遇到的错误
  • query - 运行期间使用的查询
  • workflow_app_log_id - 工作流应用程序日志 ID
  • message_id - 关联的消息 ID
  • start_time - 运行开始时间
  • end_time - 运行结束时间
  • workflow node executions - 工作流节点执行信息
  • 元数据
    • workflow_id - 工作流唯一标识符
    • conversation_id - 对话 ID
    • workflow_run_id - 当前运行的 ID
    • tenant_id - 租户 ID
    • elapsed_time - 当前运行所用时间
    • status - 运行状态
    • version - 工作流版本
    • total_tokens - 当前运行使用的总令牌数
    • file_list - 处理的文件列表
    • triggered_from - 触发当前运行的来源

消息追踪信息

用于追踪 LLM 相关对话

聊天Arize LLM
message_idid
user_session_id- 放置在元数据中
”llm”name
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
Model token consumptionusage_metadata
metadatametadata
[“message”, conversation_mode]tags
conversation_idconversation_id in metadata

消息追踪信息

  • message_id - 消息 ID
  • message_data - 消息数据
  • user_session_id - 用户会话 ID
  • conversation_model - 对话模式
  • message_tokens - 消息中的令牌数
  • answer_tokens - 答案中的令牌数
  • total_tokens - 消息和答案中的总令牌数
  • error - 错误信息
  • inputs - 输入数据
  • outputs - 输出数据
  • file_list - 处理的文件列表
  • start_time - 开始时间
  • end_time - 结束时间
  • message_file_data - 与消息关联的文件数据
  • conversation_mode - 对话模式
  • 元数据
    • 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 - 消息来源

审核追踪信息

用于追踪对话审核

审核Arize Tool
user_id- 放置在元数据中
”moderation”name
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
metadatametadata
[“moderation”]tags

审核追踪信息

  • message_id - 消息 ID
  • user_id - 用户 ID
  • workflow_app_log_id - 工作流应用程序日志 ID
  • inputs - 审核输入数据
  • message_data - 消息数据
  • flagged - 内容是否被标记需要注意
  • action - 采取的具体行动
  • preset_response - 预设响应
  • start_time - 审核开始时间
  • end_time - 审核结束时间
  • 元数据
    • message_id - 消息 ID
    • action - 采取的具体行动
    • preset_response - 预设响应

建议问题追踪信息

用于追踪建议问题

建议问题Arize LLM
user_id- 放置在元数据中
”suggested_question”name
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
metadatametadata
[“suggested_question”]tags

消息追踪信息

  • 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 - 状态消息
  • 元数据
    • 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 - 消息来源

数据集检索追踪信息

用于追踪知识库检索

数据集检索Arize Retriever
user_id- 放置在元数据中
”dataset_retrieval”name
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
metadatametadata
[“dataset_retrieval”]tags
message_idparent_run_id

数据集检索追踪信息

  • message_id - 消息 ID
  • inputs - 输入内容
  • documents - 文档数据
  • start_time - 开始时间
  • end_time - 结束时间
  • message_data - 消息数据
  • 元数据
    • 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 - 消息来源

工具追踪信息

用于追踪工具调用

工具Arize Tool
user_id- 放置在元数据中
tool_namename
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
metadatametadata
[“tool”, tool_name]tags

工具追踪信息

  • 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
  • 元数据
    • 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

生成名称追踪信息

用于追踪对话标题生成

生成名称Arize Tool
user_id- 放置在元数据中
”generate_conversation_name”name
start_timestart_time
end_timeend_time
inputsinputs
outputsoutputs
metadatametadata
[“generate_name”]tags

生成名称追踪信息

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

《CDA数据分析师技能树系列图书》系统整合数据分析核心知识,从基础工具(如Python、SQL、Excel、Tableau、SPSS等)到机器学习、深度学习算法,再到行业实战(金融、零售等场景)形成完整体系。书中结合案例讲解数据清洗、建模、可视化等技能,兼顾理论深度与实操性,帮助读者构建系统化知识框架。同时,内容紧跟行业趋势,涵盖大数据分析、商业智能、ChatGPT与DeepSeek等前沿领域,还配套练习与项目实战,助力读者将知识转化为职场竞争力,是数据分析师从入门到进阶的实用参考资料。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王国平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值