AI调用模块流式输出无法输出deepseek思考过程,是否有办法像HTTP请求模块一样使用子程序处理?
暂时还没时间研究,再过几天看看
好的,流式输出内容格式是否也能改变呢
在HTTP请求中,流式输出内容的思考部分与正文部分的格式无法做出差异性(例如每行用 “>” 开头做出高亮标识),而且输出内容需分两个追加内容步骤,否则会出现思考内容与正文字符混乱的情况。
因为流式输出会多次调用SSE子程序,所以无法在返回内容中插入任何字符。
高亮处理
流式输出多次调用子程序,每次返回几个字符,字符的处理也是多次调用,无法实现预期效果
文本窗口似乎不是很适合这个场景,还是web技术更合适一些。不过很多>这个情况可以尝试判断一下前一个文字是不是换行,如果不是换行,就不再加>符号。
变量{reasoning_content} 一次获取2~4个字符,输出后重新获取内容,无法判断前面的字符,虽然可以每次都将 “\n” (不是"\r\n") 正则替换为"\n>",但是无法判断最开始的字符在哪,也就无法在第一行前面加上">"符号,只能在调用子程序前先行输入一个">",如果调用的模型不是深度思考类型,这个符号又会变多余。
从上面的截图看,每个换行前面都是有>的,说明在上一个消息的结尾肯定是换行结束。
主程序里弄一个变量,子程序在收到内容后,判断是否为换行结尾,如果是的话,设置变量值为true,否则设置为false。
然后在下次收到消息的时候,如果前面那个不是true,就不添加>符号。
可行,加了一个状态用于判断开头与结尾,已能够正确高亮深度思考内容:R1请求 - by dalou - 动作信息 - Quicker
在此基础上,HTTP请求应该如何保持历史对话消息?每次对话后都用状态记录吗?
可参考以下动作,基本能实现你的全部需求🌟
ChatAI
很棒的动作,值得学习👍,希望作者有空闲可以优化MD窗口实时显示文本窗口的文字变化,体验更佳。
文本追问希望能够调整为:文本追问|call:l$n$sp$ChatAI?提问方式=文本
用光标所在行或已选则的文本作为追问内容,在无需选择文字的情况下能够更加便捷的提问。
1. MD窗口实时渲染输入文本,估计是办不到了,想象不出实现途径,能力有限😂2. "用光标所在行或已选则的文本作为追问内容",这个下一版本可以改
实时刷新其实不复杂的,大概思路是:文本窗口内容可自动保存到状态, 在md预览的子程序中用循环判断文本内容是否变化,然后用WebView2的发送消息功能可实现实时刷新内容。
1.43.60 增加了输出,试下看看。
可以了,谢谢老大!