Dify 1.11.4 获取思维链 reasoning_content 并前端折叠渲染

Dify对接DeepSeek深度思考:完整获取并渲染reasoning_content实战 随着大语言模型进入推理时代,思维链成为提升回答质量的关键机制。DeepSeek、Kimi等模型在输出最终答案前会生成一段reasoning_content,记录完整的推理过程。然而在Dify这类低代码平台中,如何将深度思考内容从模型API透传到前端,成为开发者普遍面临的难题。本文从流式输出原理出发,剖析Dify 1.11.4模型适配层对reasoning_content的封装逻辑,针对“reasoning_content must be passed back to the api”等高频报错给出三种解决方 阅读详情

最近我把 Dify 社区版从旧版本升到了 1.11.4,顺手接了一个带“深度思考”能力的 LLM 模型。原本以为就是配个 API Key 的事,结果真正折腾起来才发现: 如果直接用 Dify 的 LLM 节点,模型返回的 reasoning_content (也就是思维链内容)会被默认丢弃,用户只能看到最终答案,中间那串“思考过程”根本不会出现在消息里。 更进一步,在多轮对话场景下,某些 OpenAI 兼容接口还会因为上一轮没有回传 reasoning_content 而直接报 HTTP 400,提示必须把思考内容原样带回。

这篇文章就用我实际跑通的方案,讲讲怎么在 Dify 1.11.4 里拿到 reasoning_content ,以及如何在前端把它渲染成可以折叠的“思维链”区块。整个方案不依赖改 Dify 内核,只用到工作流里的 HTTP 请求节点、代码节点和一点前端代码,适用于大多数想展示推理过程的开发者。

1. 先说结论:为什么 Dify 里看不到“思考过程”

1.1 深度思考模型返回的不只是一个答案

现在不少大模型都加入了“先思考、后回答”的机制。以 DeepSeek 的深度思考模型为例,API 返回的消息体里通常包含两个关键字段:

  • content :最终回答给用户的文本。
  • reasoning_content :模型内部生成的思考过程,包含推理步骤、中间结论、自我纠错等。

两者的关系,可以理解成“开会讨论的草稿”和“对外发布的会议纪要”。前者信息量大,但不适合直接呈现;后者是经过整理后的正经答案。但对很多 AI 应用来说, 用户其实很想看到草稿,因为草稿能展示模型是怎么一步步推导的,交互体验完全不同。 我见过不少知识库问答、代码助手、写作类应用,都把思维链折叠展示作为一项核心体验来宣传。

问题在于,Dify 的 LLM 节点在设计上主要消费的是最终 content 字段。 reasoning_content 这类扩展字段在模型供应商适配层里往往被过滤掉了。哪怕你在界面里选择了支持深度思考的模型,Dify 工作流里能拿到的东西也还是只有答案,思考过程根本没进入变量体系。

1.2 我们需要解决的问题其实有三个

单看标题:“Dify 1.11.4 配置 LLM 深度思考:获取 reasoning_content 并支持前端渲染”,拆开来看,实际要解决三件事:

  1. 让 Dify 能拿到 reasoning_content :既然默认拿不到,就要换一种调用方式,把原始响应交给代码节点解析。
  2. 正确处理多轮对话中的 reasoning_content 回传 :这也是很多人忽略的点。部分 API 在 thinking 模式下,要求后续请求的 assistant 消息里带着上一轮的推理内容,否则直接报错。
  3. 把推理内容展示到前端 :Dify 默认聊天界面不会渲染未知字段,我们需要自定义输出格式和前端解析逻辑。

这篇文章的测试环境是 Dify 1.11.4 社区版,部署方式是 Docker Compose。后面提到的做法在当前版本里都能直接用;新版本(比如 1.17.x)虽然也在不断调整模型能力,但这个“直接调 API + 自解析”的思路是通用的,换到其他版本也不会过时。

2. 准备工作:确认模型接入与接口行为

2.1 在 Dify 里配置模型供应商,但别对它期望太高

首先还是要做好基础接入。登录 Dify 后台,进入“设置 -> 模型供应商”,找到 DeepSeek 或者其他支持 OpenAI 兼容接口的供应商,填入 API Key。Dify 1.11.4 社区版内置了 DeepSeek 供应商配置,选好后测试一下连接,能通就算成功。

不过这里要提前打个预防针: 供应商配置通过,只能保证模型能出答案,并不代表 reasoning_content 会出现在工作流变量里。 我试过直接在 LLM 节点的输出里找扩展字段,也试过在结束节点里绑定各种变量,结果都一样——Dify 把模型响应格式化成了统一的字符串,思考内容压根没有进入可选项。所以接下来的操作,不能依赖 Dify 的模型适配层。

2.2 先用 curl 验证 API 返回了什么

在动工作流之前,建议先用一条 curl 命令搞清楚目标 API 的返回结构。这样后面写 HTTP 请求节点时,你才知道该从哪里取字段。

以 DeepSeek 官方 API 为例,非流式请求大概是这样的:

curl https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxx" \
  -d '{
    "model": "deepseek-reasoner",
    "messages": [
      {"role": "user", "content": "请解释一下什么是递归?"}
    ],
    "stream": false
  }'

返回的 JSON 主体结构大致如下:

{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "递归就是函数直接或间接调用自身。",
        "reasoning_content": "用户问什么是递归。递归是一种编程技巧,核心是函数调用自身。需要拆解为基线条件和递归条件。"
      },
      "index": 0
    }
  ]
}
Dify中获取DeepSeek思考过程:reasoning_content回传与前端渲染全解析 大模型接口返回中除了最终答案,通常还包含一段推理过程,OpenAI兼容协议里常见字段为reasoning_content,部分模型也写作thinking或reasoning。理解这一字段的原理,是构建可解释、可控的AI应用的重要环节。在实际工程中,开发人员往往需要将模型思考过程展示给用户或用于调试,这就要求后端能够正确提取并传递该字段。然而在多轮对话、Agent工具调用等场景下,若未将思考内容原样回传,API会报出“reasoning_content must be passed back to the a 阅读详情

相关推荐

Dify接入深度思考模型:reasoning_content获取与前端渲染全攻略

大模型应用开发中,深度思考模型的推理过程通常隐藏在reasoning_content字段中,而非直接暴露给用户。理解这一字段的获取、传递与渲染原理,是实现透明化AI输出的关键。通过合理设计工作流与前端数据结构分离,能够将模型的分析步骤与最终答案分区展示,极大提升用户对结论的信任度。该技术可广泛应用于知识库问答、复杂任务拆解等企业级场景。在Dify 1.11.4中,可以通过代码节点提取该字段,并通过HTTP透传与前端折叠渲染实现完整链路,同时解析常见的“reasoning_content must be pa

weixin_29031161的博客 311

Dify接入DeepSeek深度思考:reasoning_content提取与多轮400报错修复

随着大模型能力向推理侧延伸,深度思考模型逐渐成为复杂任务的首选。这类模型在输出最终答案前,会生成一段内部推理过程,通常以reasoning_content字段返回。理解这个字段与content的分工,是构建多轮对话和流式输出的基础。在实际工程中,如何从LLM响应中提取思维链、如何在前端通过SSE流式渲染思考过程、以及如何在多轮对话中正确回传推理内容以避免HTTP 400报错,都是落地推理模型必须解决的问题。本文以Dify平台接入DeepSeek深度思考模型为例,系统讲解reasoning_content的字

weixin_29043895的博客 132

FPGA以太网接口设计避坑指南:GMII与RGMII时序转换的三种实现方案对比

本文深入解析FPGA以太网接口设计中GMII与RGMII时序转换的三种实现方案,包括Xilinx官方IP核、手工原语逻辑和开源方案gmii_to_rgmii。通过对比分析各方案的优缺点和适用场景,为工程师提供技术选型指南,帮助避免常见设计陷阱,提升高速网络设备开发的效率和可靠性。

weixin_42570484的博客 360

SQL-拼多多 面试题:连续3次为球队得分的球员名单

1.使用LAG开窗函数 筛选出 下一次和下下一次得分,并用进球时间进行排序。2.使用where筛选出值得嘉奖的球员。

Ftr1998的博客 637

GPS从入门到放弃(一) --- GPS基础原理

GPS从入门到放弃(一) — GPS基础原理 GPS,全称Global Positioning System,已经广泛应用于我们的日常生活中了,现在的智能手机 里都会自带GPS定位功能。这是一个美国的全球定位系统,虽然我们现在也有北斗了,但毕竟GPS搞的早,所以先从它开始研究起。 整个GPS系统分三大部分: 地面站 卫星 接收机 地面站负责监控。它们通过接收、测量各个卫星信号,计算卫星的运行轨...

tyst08的专栏 2万+

深入浅出卡尔曼滤波器算法

深入浅出讲解卡尔曼滤波器的工作原理及其公式推导,讨论卡尔曼滤波器的核心公式所代表的意义及个人的理解。

m0_37835056的博客 1355

红日-VulnStack靶场-ATT&CK(二):从Weblogic漏洞到域控渗透实战

本文详细解析了红日安全团队VulnStack靶场中从Weblogic漏洞到域控渗透的完整攻击链。通过实战演示Weblogic反序列化漏洞利用、Cobalt Strike持久化控制、域内信息收集及PsExec横向移动等关键技术,复现了企业内网渗透的典型场景,并提供了防御建议。

tgb3456789的博客 924

C#读取和写入excel表数据--手把手教详解

C#读写excel数据详解

如如水的博客 4050

【Claude】Claude Code 子代理(Subagents)完全指南:多 AI 编排与并行任务管理

子代理是在独立上下文窗口特性主代理子代理上下文窗口与你对话的主上下文完全独立的上下文工具权限拥有所有工具可自定义限制生命周期整个会话完成任务后结束通信方式直接对话结果返回给主代理模型继承主会话设置可指定不同模型你可以创建专属子代理,指定模型、工具权限和系统提示。在对话中,Claude 会根据任务自动选择合适的子代理。

博客 5530

基于卷积神经网络CNN实现电力负荷多变量时序预测(PyTorch版)

随着智能电网的发展,精准的电力负荷预测对能源调度和电网稳定具有重要意义。本文基于PyTorch框架,提出一种基于卷积神经网络(CNN)的多变量时间序列预测模型,用于电力负荷的短期预测。

时序笔记 986

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 终端Agent:AI编程从代码生成到执行落地的关键跃迁
下一篇: LLM系统提示词泄露防护:七道工程化防线实战指南
廷哥带你小路超车
博客等级 码龄10年 65粉丝 6381原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值