AI调用流式输出应该如何输出reasoning_content ?

使用问题 · 1411 次浏览
dalou 创建于 3天4小时前

AI调用模块流式输出无法输出deepseek思考过程,是否有办法像HTTP请求模块一样使用子程序处理?

 

         


回复内容
CL 2天11小时前
#1

暂时还没时间研究,再过几天看看

dalou 回复 CL 1天5小时前 :

好的,流式输出内容格式是否也能改变呢

dalou 1天5小时前
#2

在HTTP请求中,流式输出内容的思考部分与正文部分的格式无法做出差异性(例如每行用 “>” 开头做出高亮标识),而且输出内容需分两个追加内容步骤,否则会出现思考内容与正文字符混乱的情况。

因为流式输出会多次调用SSE子程序,所以无法在返回内容中插入任何字符。




高亮处理

  


dalou 最后更新于 1天4小时前
dalou 回复 dalou 1天4小时前 :

 流式输出多次调用子程序,每次返回几个字符,字符的处理也是多次调用,无法实现预期效果



CL 回复 dalou 1天0小时前 :

文本窗口似乎不是很适合这个场景,还是web技术更合适一些。
不过很多>这个情况可以尝试判断一下前一个文字是不是换行,如果不是换行,就不再加>符号。

dalou 回复 CL 22小时12分钟前 :

变量{reasoning_content} 一次获取2~4个字符,输出后重新获取内容,无法判断前面的字符,虽然可以每次都将 “\n” (不是"\r\n") 正则替换为"\n>",但是无法判断最开始的字符在哪,也就无法在第一行前面加上">"符号,只能在调用子程序前先行输入一个">",如果调用的模型不是深度思考类型,这个符号又会变多余。

dalou 最后更新于 22小时4分钟前
CL 回复 dalou 10小时50分钟前 :

从上面的截图看,每个换行前面都是有>的,说明在上一个消息的结尾肯定是换行结束。

主程序里弄一个变量,子程序在收到内容后,判断是否为换行结尾,如果是的话,设置变量值为true,否则设置为false。

然后在下次收到消息的时候,如果前面那个不是true,就不添加>符号。

回复主贴