FastGPT icon indicating copy to clipboard operation
FastGPT copied to clipboard

关于think的建议

Open bincooo opened this issue 10 months ago • 15 comments

例行检查

  • [x] 我已确认目前没有类似 features
  • [x] 我已确认我已升级到最新版本
  • [x] 我已完整查看过项目 README,已确定现有版本无法满足需求
  • [x] 我理解并愿意跟进此 features,协助测试和提供反馈
  • [x] 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 features 可能会被无视或直接关闭

功能描述

web对话中是否可以在输出think标签时对其组件渲染呢?而不是直接文本输出。 输出的think在上下文中有屏蔽吗?一般只有在最后一条消息中输出给用户吧,不知是否在持续对话中的历史消息有没有携带。


感谢作者的开源奉献

应用场景

相关示例

如下参考图:

Image

bincooo avatar Feb 07 '25 04:02 bincooo

按 ds 官方接口,是没有 think 的,他们已经做了转义,fastgpt 适配的是 ds 官方的接口格式。 这块转义应该在接口层实现,我们自己做的 oneapi 已经支持了,后续会切换到新的 api 网关项目。

c121914yu avatar Feb 07 '25 04:02 c121914yu

感谢回复。请教一下只检测reasoningContent字段吗?

Image

输出这样的格式是否可以识别?

bincooo avatar Feb 07 '25 08:02 bincooo

可以的

Image

c121914yu avatar Feb 07 '25 09:02 c121914yu

Image

奇怪,聊天页面显示的是这样的。看不到具体内容

bincooo avatar Feb 07 '25 09:02 bincooo

现在又好了,谢谢🙏

bincooo avatar Feb 07 '25 09:02 bincooo

@c121914yu 你好大佬,又有了新想法。

Image

可否在非deepseek中也可开启think呢? 我实现了buffer拦截但是却无法在FastGPT中使用

Image

bincooo avatar Feb 09 '25 08:02 bincooo

既然是编排工具,完全可以通过系统提示让ai稳定输出<think> ... </think>,但是又不想这部分内容被写入上下文

bincooo avatar Feb 09 '25 08:02 bincooo

@c121914yu 你好大佬,又有了新想法。

Image

可否在非deepseek中也可开启think呢? 我实现了buffer拦截但是却无法在FastGPT中使用

Image

需要配置模型时候开启支持思考

c121914yu avatar Feb 10 '25 01:02 c121914yu

新版的config.yaml配置了似乎不生效?

bincooo avatar Feb 10 '25 03:02 bincooo

哎呦,不错,学习一下。

adogshz avatar Feb 11 '25 03:02 adogshz

是否支持ollama部署的deepseek r1推理模型think标签部分也能像ds官方接口显示一样推理文字能折叠?(目前用的V4.8.20-fix2版本)

Image fastgpt接入deepseek官方接口推理显示效果

Imagefastgpt接入ollama本地部署deepseek推理显示效果

towsix36 avatar Feb 12 '25 15:02 towsix36

同问,本地部署ollama中的量化版ds输出的都是标签,是否能支持一下

2506013878 avatar Feb 13 '25 08:02 2506013878

同问!本地部署的标签。也关不掉。

584731180 avatar Feb 14 '25 09:02 584731180

#3796

goactiongo avatar Feb 15 '25 11:02 goactiongo

挺多人关注这个的 这里贴一下我的处理,应该没事吧。。。

bincooo/chatgpt-adapter 它可以在fastgpt和llm之间桥接接口,ollama或者其他llm v1接口都可以通过这个做think拦截

custom-llm:
  - prefix: custom
    proxied: true
    reversal: https://models.inference.ai.azure.com
  - prefix: grok
    proxied: true
    reversal: https://api.x.ai/v1
matcher:
  - match: <think>
    over: </think>
    think_reason: true
    notice:
    regex: |
      "(?s)<think>(.+)</think>":"$1"

这样可以做到上文中buffer过滤think标签,并转换成reasoningContent。 只不过think过滤的过程是阻塞的,也就是没有打字机效果

bincooo avatar Feb 16 '25 07:02 bincooo