写在前面的话
这样挺好。今天早晨,有一个哥们和我联系,要做一个小程序,我还没反应过来,人家把定金打过来了。我看挺爽快,也就接了。早饭后,趁此契机,详细的给抖哥说了下,我接下来要做头条运营及小程序开发,除了维护当前抖哥交待的项目,新项目的话,请抖哥优先分配给团队的其他成员,抖哥知道之后,很是赞赏,说可以可以,最后,算是皆大欢喜。我觉得结局挺好,我不用偷偷摸摸做事了,得到了抖哥的理解,我觉得的是好事,每个人有自己的想法,选择可能是对的,也可能是错的,但不试试的话,将来可能有遗憾。所以,心里有想法,就大胆去做吧,即使将来更下一层楼,也是好的,最起码知道了是怎么回事。加油吧,未来可期。
[278]-------->底部有张生活照片和昨日花销
【关键词】python、小程序、基础问询、流式处理
一、小程序相关(一级)
1.小程序基础问询数据返回(二级)
描述:现在小程序数据返回处理完了待测试,ragflow端相应的聊天记录没有保存,需要处理一下。
开工:
第一步:保存聊天记录(三级)
20250212周三时间段:10:37-11:00
a.测试发送(四级)
20250212周三时间段:10:51-11:00
修改初始发送程序如下:
图7a-1
注:这个保证初始发送和回复的第一条一起发,并且保证只发一次,测试效果还可以,截图如下:
图7a-2
注:接下来,在ragflow把发送数据保存一下。
b.保存发送数据(四级)
需要把发送数据和问题,都保存一下。修改程序如下:
图7a-3
注:这个就是保存数据的,运行看下效果。效果如下:
图7a-4
注:上线测试还可以,接下来,把小程序问一遍复杂问题,走一下全流程。
第二步:复杂问题(三级)
20250212周三时间段:12:01-12:30
问一遍复杂问题,走一遍全流程,遇到问题如下:
图7a-5
注:基础问询回答完,不往下走了。
conversation_id: b31c3ae7e8fe11efbc9bf020ff63f4c4
注:接下来,写个测试用例,把这个问题处理一下。
a.测试用例(四级)
20250212周三时间段:15:34-16:00
写测试用例如下:
图7a-6
注:跑一下,看看测试效果,还是用小程序测吧。测试发现,最后能问成功,但断开了。
b.为啥断开(四级)
20250212周三时间段:18:31-19:00
20250213周四时间段:10:16-10:30
先打开phpstudy,把代理服务跑起来,截图如下:
图7a-7
注:接下来,处理下小程序,最终卡断的问题。
c.专家诊断卡断(四级)
20250213周四时间段:10:40-11:00
现在运行报错,如下:
图7a-8
注:看下是不是代理出错了,用postman测试下接口。
测试结果如下:
图7a-9
注:为啥没发现呢,看下配置文件。配置文件没问题,发现是chat_sev没启动导致的。接下来,找下卡断原因。
根据历史记录来找,先解决一个流式问题。
第三步:流式问题(三级)
20250213周四时间段:11:19-11:30
现在有一个情况:ragflow返回数据需要10秒,chat_sev接收后,给到小程序,小程序直接展示,就说是小程序要等10秒才会把数据展示出来,原因在于,chat_sev没有进行流式接收,需要处理一下。
先找要改的方法,方法为:chat_direct_base_question
这个方法用于获取基本问题,需要流式接收。
a.chat_direct_base_question流式接收(四级)
20250213周四时间段:11:26-11:30
当前方法请求如下:
def chat_direct_base_question(conversation_id:str,pure_question:str,question,is_stream:bool=True):
'''
基础问询,直接问通义千问
'''
url = f"{RAG.BASE_URL}/api/chat_direct_bs_question"
resp = requests.post(
url = url,
json = json.dumps({
"conversation_id": conversation_id,
"pure_question": pure_question,
"question": question,
"is_stream":is_stream
}, default=custom_serializer),
headers = {
"Content-type": "application/json",
"Authorization": f"Bearer {RAG.API_KEY}"
}
)
if not 200 <= resp.status_code < 300:
raise Exception(f"GET {url} status_code {resp.status_code}.")
if not is_stream:
resp_json = resp.json()
if not resp_json.get('retcode') == 0:
raise Exception(f"chat completion fail,{resp_json}")
log.info(f"question:{question},answer:{resp_json}")
return resp_json['data']
return resp
注:这个没有采用流式请求接口数据,修改如下:
图7a-10
注:看来,也就是多加个参数,实际上这个参数是有的,is_stream,跑下看看效果吧。
效果如下:
图7a-11
注:这个发现是可以的,并且速度很快的。接下来,把专家诊断和通用诊断也改成流式的。
b.专家诊断(四级)
20250213周四时间段:14:47-15:00
20250213周四时间段:15:08-15:30
把专家诊断的也搞成流式的,修改代码如下:
图7a-12
注:测试一下,看看效果怎么样,顺便把基础问诊和专家诊断的接头处理一下。先看效果,效果如下:
图7a-13
注:问到最后,莫名的断开了,需要排查下原因。
c.莫名断开(四级)
20250213周四时间段:15:31-16:00
断开的原因,一般是后台报错了。查看下,原因如下:
原因是ragflow端卡住了,写个测试用例测一下是怎么回事。
没找到原因,重新编译一下,看看行不行。
d.重新编译(四级)
20250213周四时间段:16:53-17:00
下载下最新的代码,运行如下命令:
npm install --registry=https://registry.npmmirror.com
截图如下:
图7a-14
注:运行发现还是报错,报错截图如下:
图7a-15
注:这个和之前有点不同是:这个dist里面安装有node_moudles,而之前的版本确实没有,所以,这个要在dist里,再运行一次npm命令:
还是不不行,想着重启下电脑,再装一下。
重启之前,先卸载微信开发者工具,再跑一遍试试,不行,装下旧版本试试。
e.旧版本安装(四级)
20250213周四时间段:17:44-18:00
旧版本安装,先装一下旧版本,看行不行。旧的是可以的,截图如下:
图7a-16
注:接下来,继续做基础问询结束后的专家诊断两个的接头吧。
二、生活照片
拍摄于2026年1月17日,20:31:49,北京下雪,和二宝在外面玩拍的,当时二宝三岁三个月。人生的很多时候,路要自己走,或者说要自己拿主意,别人帮不上忙,但未来是未知的,按自己的认知和想法,大胆干就完了,其它的,交给老天吧,加油!
图7b-1
《本文完》