newapi接入火山引擎的deepseek-r1 api,再用openwebui访问newapi发现无法实现思考输出

我分别用newapi接入了ppinfra的deepseek-r1和火山引擎的deepseek-r1 api,然后再用openwebui访问newapi,发现ppinfra家的可以输出思考过程,但火山引擎的没有展示思考过程



然后我分别用postman直接调两家的接口看了下,对于有思考过程的,,返回的信息是:

{
	"id": "xxxxx",
	"object": "chat.completion.chunk",
	"created": 1739368149,
	"model": "deepseek/deepseek-r1",
	"choices": [{
		"index": 0,
		"delta": {
			"content": "<think>"
		},
		//...
	}],
	"system_fingerprint": ""
}

也就是将所有的输出都放在choices=>delta=>content里面,对于思考的内容,用标签包裹起来,这样openwebui渲染的时候就只展示content里的信息,将think标签包裹的认为是思考内容。
对于火山引擎没思考过程的,返回结果是

{
	"choices": [{
		"delta": {
			"content": "",
			"reasoning_content": "用户",
			"role": "assistant"
		},
		"index": 0
	}],
	"created": 1739368282,
	"id": "xxx",
	"model": "deepseek-r1-250120",
	"object": "chat.completion.chunk",
	"usage": null
}
{
	"choices": [{
		"delta": {
			"content": "计算",
			"role": "assistant"
		},
		"index": 0
	}],
	"created": 1739368282,
	"id": "xxx",
	"model": "deepseek-r1-250120",
	"object": "chat.completion.chunk",
	"usage": null
}

将思考内容放在choices=>delta =>reasoning_content里,将非思考内容放在choices=>delta =>content里,我估计openwebui只展示了content内容,因此思考过程没展示出来。

然后我还看了下deepseek官方的api返回和火山引擎结构基本一样,所以openwebui也不展示思考过程。
不知道这种问题有没有大佬遇到过,有没有什么好的解决方法

1 个赞

可以试下这个

这个好,感谢感谢,我看了github,发现官方不打算适配 feat: Better support for reasoning content by zeyugao · Pull Request #9241 · open-webui/open-webui

这个issues之前论坛佬友们还讨论过 :tieba_022:

可以试试我写的中转器。把think里面的内容放到了 reasoning_content 里面。将 字节,火山,deepseek官方,硅基流动,POE等渠道的r1模型格式统一了,所有的思考内容都放在了reasoning_content 。

同时可以试试我新出的AI问答前端。可以自部署为网页使用,可以显示深度思考内容,但是不会把思考内容放在请求体里面。

2 个赞

写的很好,可是openwebui不支持reasoning_content

1 个赞

用佬友开发的uni-api中转ppinfra的deepseek-r1-community模型,提问楼主那个问题,不会展示思考过程(lobechat和cerebr中都试过了)。
直接用lobechat调用ppinfra的api,是可以显示思考过程的。麻烦大佬看看是咋回事。

可以私信我一个ppinfra的临时key,我帮你测试一下。

找到原因了,只需要在 cerebr API 配置的高级设置里面的系统提示加入:

<think>{{reasoning_content}}</think>

这一行 cerebr 就能显示思考内容了。原因是 API 如果你不让他思考,模型会偷懒不思考。因此需要系统提示强制思考,这不是 uni-api 或者 cerebr 的 bug。

支持查看每个 API 调用时的对话日志信息吗?

我的使用了,怎么还没有思考过程

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。