当前位置:首页>python>4python之debug打到内部库里去及测试对话速度

4python之debug打到内部库里去及测试对话速度

  • 2026-09-08 05:49:35
4python之debug打到内部库里去及测试对话速度

写在前面的话

思想局限。昨天,看了一个视频,一个985女生,长的很漂亮,在一个公司做人事九年,节前老板开会说,行业不景气,要裁员,让大家有个心理准备。她自己的话说:自己是个乖乖女,生病了不敢请假,作为人事,每天人事部不管有活没活,自己最后一个走,过去三年,公司六轮裁员,自己有幸没裁到,不知这次能不能挺过去。因为通知裁员,大姨妈吓的都憋回去了,自己是女孩子,外卖,滴滴不知能不能做,感觉天塌了。刷到过很多类似的视频,很多人都说失业了跑滴滴,送外卖,送快递,当保安。觉得思想局限性太大,就拿那女孩来说,一个名校毕业生,不能有点其它想法吗。就像我同事,自己在老家带两娃,摸索出一条帮助商家拉流量的路,做的风生水起。身在北京,思路更应该打开,多思考才是好的。

[309]-----底部有张生活照片和昨日花销

【关键词】python、ragflow、debug、内部库

一、ragflow相关(一级)

1.debug到内置库里去(二级)

20250106周一时间段:22:32-22:40

描述:现在一个方法出问题了,要debug追踪,怎么追踪到内置库里去呢,这个龙哥已演示了一遍怎么做,要记录一下。

开工:

第一步:改配置(三级)

20250106周一时间段:22:45-23:00

先改下配置,配置文件为:

{            "type": "debugpy",            "request": "launch",            "name": "test_completion",            "module": "pytest",            "args": [                "-s",                "${workspaceFolder}/test/test_api_app2.py::test_completion"            ],            "console": "integratedTerminal",            "env": {"PYTHONPATH": "${workspaceFolder}"},            "cwd":"${workspaceFolder}",            "justMyCode": false         }

截图如下:

图4a-1

注:这个里面主要包含一个路径(/test/test_api_app2.py)及里面的方法名(test_completion),接下来,要演示一下怎么使用。

第二步:使用(三级)

20250106周一时间段:22:47-23:00

a.找到方法,debug一下(四级)

20250106周一时间段:22:49-23:00

找到方法,debug,截图如下:

图4a-2

注:运行之后,会到如下的界面。

图4a-3

注:这个运行之后,要在debug里看,这也就是如下这个:

图4a-4

注:这样就能看到具体的报错数据,看看是不是哪个没写进去,哪个配置错了,这里遇到的问题是client的地址配错了,这里能看出来,现在已改成正确的。

b.三个按钮(四级)

20250106周一时间段:23:32-23:40

还有一点要注意的是,看如下截图:

图4a-5

注:以上截图中的三个按钮,

标1的意思是:点一下从一个断点跳到另一个断点

标2的意思是:从一断点处向下走,遇到一个方法,会进入方法内部,再从方法内部走。

标3的意思是:从一个方法内出来,与标2的作用相反。先总结到这吧,算是对debug有了更深的认识。

2.测试对话速度(二级)

描述:现在对话速度慢,总体返回需要一分钟,追踪下哪里慢。

开工:

第一步:先跑一遍(三级)

20250106周一时间段:23:32-23:4020250106周一时间段:23:40-00:00

先跑一遍龙哥的那个性能用例,效果如下:

图4a-6

注:邪门了,为啥超时呢。重启下服务器看看行不行,可能是龙哥重启服务器,导致一些服务没起来。本地testing报错,排查一下。

第二步:本地testing报错(三级)

20250107周二时间段:09:28-09:40

找到原因了,是因为一些日志,我注释掉了,但是如下的这种这情况:

        if not task.local_input_file:            filepath = str(Path("batch_llm/" + id).with_suffix(".jsonl"))            if STORAGE_IMPL.obj_exist(CACHE_BUCKET,filepath):                #log.debug(f"{filepath} exists, skip file upload.")            else:                STORAGE_IMPL.put(CACHE_BUCKET,filepath,content.encode())            task.local_input_file = filepath

注:这种情况下把【log.debug(f"{filepath} exists, skip file upload.")】注释掉,【if STORAGE_IMPL.obj_exist(CACHE_BUCKET,filepath):】就会报错,因为里面没有任何处理了。所以,这种的要注意。

接下来,跑:testapi_app2/test_local_competence_performance

第三步:test_local_competence_performance(三级)

20250107周二时间段:09:44-10:00

路径:

testapi_app2/test_local_competence_performance

跑下这个测试用例,看下速度情况。截图如下:

图4a-7

注:平均19秒,还可以。接下来,跑通全流程。

第四步:跑通全流程(三级)

20250107周二时间段:09:44-10:00

跑通全流程,从本地聊天开始。

a.本地聊天(四级)

20250107周二时间段:09:52-10:00

启动chat_sev,启动ragflow,phpstudy,把chat_sev上的日志全干掉。

b.干掉chat_sev日志(四级)

20250107周二时间段:10:05-10:20

注:注意if后面只有输出语句的情况。去掉之后,没有明显改善,现在发现一个问题,就是最三次获取用户会话信息时,用时1分钟,很慢,截图如下:

图4a-8

注:看下是不是因为传的数据大,改成POST会不会好点。

c.第三次comverstation(四级)

20250107周二时间段:10:23-10:4020250107周二时间段:10:40-11:0020250107周二时间段:11:00-11:20

排查下原因,想到一个办法,就是把messages放到ragflow里去获取,不再传递。

修改get_comverstation,去掉messages。

先改ragflow返回时不要message字段,修改如下:

def get_no_message(conversation_id):    try:        e, conv = API4ConversationService.get_by_id(conversation_id,['id','open_id','create_date'])        if not e:            return get_data_error_result(retmsg="Conversatio1111n not found!-515")        res = get_json_result(data=conv)        return res    except Exception as e:        return server_error_response(e)

注:写了个不需要message的方法,因为那个有message的方法,在获取聊天记录时,需要用到。接下来,修改chat_sev三次调用.

d.修改三次调用comverstation(四级)

20250107周二时间段:11:03-11:2020250107周二时间段:11:20-11:40

修改第一次,修改程序如下:

图4a-9

注:不获取message,不传messages,传question代替,其它两次也是同理,接下来,改api/completion2及api/completion两个ragflow接口。

e.修改api/completion(四级)

20250107周二时间段:11:34-11:4020250107周二时间段:11:40-12:00

修改[api/completion],修改程序如下:

    if "messages" not in req and "question" in req:        message = [{"role": "user", "content": req["question"]}]        req["messages"] = message + conv.message 

注:修改的位置截图如下:

图4a-10

注:这里要增加个入参question,并且消息已经存在conv中了,直接取就可以。接下来,进行测试看下效果。运行ragflow时报了一个错,截图如下:

图4a-11

注:看下怎么回事。

二、生活照片

拍摄于‎2024‎年‎10‎月‎27‎日,‏‎18:02:57,带大宝去上庄玩。通过和同事交流,我开阔了眼界,互联网上机会很多,但要自己去研究,自己去琢磨,看看能不能产生赢利模式,开滴滴,跑外卖,是下下策,有思想的人在家里坐着就把钱挣了。但怎么说呢,互联网上的机会寻找和变现也是需要天赋的,我去拜访过同事她老公,人家操作手机很溜,能在极短时间内操作很多个页面,并会分析养号,平台规则之类,这也不是一般人能做的或者说需要不断探索的, 不过,没事了分析分析还是好的,有这个意识比较重要,遇到同事两口子也是我的幸运。

图2c-1

《本文完》

最新文章

随机文章