Dify调用硅基流动中模型时,流程编排中运行模型不显示思考过程,如何解决?

举报
虫无涯 发表于 2025/09/12 11:44:47 2025/09/12
【摘要】 今天在使用Dify调用硅基流动中模型时,流程编排中运行模型不显示思考过程,以下是详细的解决方法。可能有很多方法,这个方法只是一个示例。 1 硅基流动模型API本文仅是学习使用,所以用到了硅基流动模型API;硅基流动模型广场有一些免费的模型,所以就用这个用于学习了;需要先申请账号,才能下载模型;进入到对应的网址后,输入相关信息进行注册:选择首页后,选择模型广场:因为是学习用,所以选择了免费的模...

今天在使用Dify调用硅基流动中模型时,流程编排中运行模型不显示思考过程,
以下是详细的解决方法。可能有很多方法,这个方法只是一个示例。

1 硅基流动模型API

  • 本文仅是学习使用,所以用到了硅基流动模型API;
  • 硅基流动模型广场有一些免费的模型,所以就用这个用于学习了;
  • 需要先申请账号,才能下载模型;
  • 进入到对应的网址后,输入相关信息进行注册:
    在这里插入图片描述
  • 选择首页后,选择模型广场:
    在这里插入图片描述
  • 因为是学习用,所以选择了免费的模型进行使用:
    在这里插入图片描述
  • 比如选择了deepseek-ai/DeepSeek-R1-0528-Qwen3-8B,选择在线体验:
    在这里插入图片描述
  • 创建属于自己的API key,选择新建API即可:
    在这里插入图片描述
  • 复制保存自己的API,后续需要用到。

2 DIfy中下载硅基流动

  • 接下来是在Dify中下载硅基流动模型;
  • 进入Dify首页选择插件进行下载即可:
    在这里插入图片描述
    在这里插入图片描述
  • 选择进行硅基流动下载:
    在这里插入图片描述
  • 下载后在自己的本地插件页面可以看到:
    在这里插入图片描述

3 Dify工作流(无思考过程)

  • 进入工作室页面,新建一个空白应用(工作流):
    在这里插入图片描述

  • 增加开始节点:
    在这里插入图片描述

  • 增加一个模型节点:
    在这里插入图片描述

  • 再新增一个结束节点:
    在这里插入图片描述

  • 完整的流程如图,发现运行后没有思考过程:
    在这里插入图片描述
    在这里插入图片描述

  • 模型数据处理如下:

{
  "model_mode": "chat",
  "prompts": [
    {
      "role": "system",
      "text": "你是一个数学专家,请根据我的要求开展工作",
      "files": []
    },
    {
      "role": "user",
      "text": "请问1+1等于多少?",
      "files": []
    }
  ],
  "usage": {
    "prompt_tokens": 30,
    "prompt_unit_price": "0",
    "prompt_price_unit": "0.000001",
    "prompt_price": "0",
    "completion_tokens": 845,
    "completion_unit_price": "0",
    "completion_price_unit": "0.000001",
    "completion_price": "0",
    "total_tokens": 875,
    "total_price": "0",
    "currency": "RMB",
    "latency": 30.78103548800027
  },
  "finish_reason": "stop",
  "model_provider": "langgenius/siliconflow/siliconflow",
  "model_name": "Qwen/Qwen3-8B"
}
  • 模型输出如下:
{
  "text": "<think>\n\n嗯,用户问的是“1+1等于多少?”,
  这个问题看起来很简单,但作为数学专家,我需要仔细思考。首
  先,确定用户的需求是什么。可能他们是在测试我的知识,
  或者想确认基础数学概念,或者有更深层的问题。比如,
  他们可能在学习数学的基础,或者对某些数学理论有疑问,
  比如在模运算或布尔代数中1+1可能有不同的结果。\n\n接下来,
  我需要考虑用户可能的背景。如果是小学生,他们可能只是需要确认加法的基本规则,
  答案是2。
  但如果是更高级的用户,比如计算机科学或数学专业的学生,
  他们可能想知道在不同数学结构下的结果。比如,
  在二进制中,1+1等于10,而在布尔代数中,1+1等于1(逻辑或)。
  还有在模2运算中,1+1=0,因为2 mod 20。另外,
  集合论中,1+1可能代表两个集合的并集的基数,如果集合不相交,
  结果也是2;如果相交,可能不同。\n\n也有可能用户是在问某种哲学或逻辑问题,
  比如“1+1=2”是否总是成立,或者在某些情况下是否可能不成立。
  比如,在非标准分析中,无穷小量的存在可能会影响结果,
  但通常在基本算术中,1+1=2是公理。或者在某些抽象数学结构中,
  比如在模3运算中,1+1=2,但在模2运算中是0。
  需要明确用户是否在特定上下文中提问。\n\n此外,用户可能有拼写错误或其他误解,
  比如是否想问“1+1等于多少?”在某种编程语言中的运算结果,或者是否在问某种特定的数学问题,
  比如在范畴论中的加法,或者在群论中的运算。需要进一步询问用户是否需要特定领域的解释,
  或者是否在一般算术的范围内。\n\n可能还要考虑到用户是否在寻找一个幽默或讽刺的答案,
  比如在某些文化或语境中,1+1可能有不同的含义,但通常数学问题不会涉及这些。
  因此,作为数学专家,我需要先回答最普遍的情况,即在标准算术中1+1=2,
  然后询问是否有特定的上下文或领域需要进一步解释,以确保提供准确的信息。
  同时,保持回答简洁明了,适合不同层次的用户理解。\n\n</think>\n\n在标准算术中,**1 + 1 = 2**。
  这是基本的加法运算规则,适用于自然数、整数、实数等数域。\n\n不过,
  如果问题涉及其他数学结构或语境,答案可能不同:\n\n1. **二进制(计算机科学)**: 
   \n   在二进制中,`1 + 1 = 10`(即十进制的2)。  \n   原因:二进制的进位规则是满21,
   所以1+1=10。\n\n2. **布尔代数(逻辑运算)**:  \n   在布尔代数中,`1 + 1 = 1`(逻辑或)。 
    \n   原因:布尔加法对应逻辑“或”,11的结果是1。\n\n3. **模运算**:  \n   - 在模2运算中,
    `1 + 1 = 0`(因为20 mod 2)。  \n   - 在模3运算中,`1 + 1 = 2`(因为2 < 3)。\n\n4.
     **集合论**:  \n   如果1代表一个单元素集合,`1 + 1`表示两个不相交集合的并集,其基数为2。
     \n\n5. **非标准分析或抽象代数**:  \n   在某些特殊数学体系中,结果可能不遵循常规规则,
     但这类情况通常需要明确的上下文说明。\n\n**结论**:  \n在常规数学中,**1 + 1 = 2**。
     若涉及其他领域,请补充说明具体语境。",
  "usage": {
    "prompt_tokens": 30,
    "prompt_unit_price": "0",
    "prompt_price_unit": "0.000001",
    "prompt_price": "0",
    "completion_tokens": 845,
    "completion_unit_price": "0",
    "completion_price_unit": "0.000001",
    "completion_price": "0",
    "total_tokens": 875,
    "total_price": "0",
    "currency": "RMB",
    "latency": 30.78103548800027
  },
  "finish_reason": "stop",
  "files": []
}
  • 但是没有思考过程:
    在这里插入图片描述

4 Dify工作流(有思考过程)

  • 优化后的整个工作流如下:
    在这里插入图片描述
  • 新增一个开始节点,新增两个变量:
content;文本类型
mlist:下拉选项

在这里插入图片描述

  • 新增模型,配置如下:
    在这里插入图片描述
  • 新建一个条件分支,配置如下:
    在这里插入图片描述
  • 新建一个模版转换,配置如下:
    在这里插入图片描述
  • 新建一个代码执行节点,配置如下:


import re

def main(text: str) -> dict:
    cleaned_answer = re.sub(r'<think[^>]*>.*?</think>', '', text, flags=re.DOTALL)
    final_answer = re.sub(r'^\n+', '', cleaned_answer)
    return {
        "result": final_answer
    }

在这里插入图片描述

  • 新增一个变量聚合器节点,配置如下:
    在这里插入图片描述
  • 最后添加一个结束节点,配置如下:
    在这里插入图片描述
  • 运行模型,显示下拉框选择显示即可:
    在这里插入图片描述
  • 此时可以显示思考过程了:
    在这里插入图片描述
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。