思想局限。昨天,看了一个视频,一个985女生,长的很漂亮,在一个公司做人事九年,节前老板开会说,行业不景气,要裁员,让大家有个心理准备。她自己的话说:自己是个乖乖女,生病了不敢请假,作为人事,每天人事部不管有活没活,自己最后一个走,过去三年,公司六轮裁员,自己有幸没裁到,不知这次能不能挺过去。因为通知裁员,大姨妈吓的都憋回去了,自己是女孩子,外卖,滴滴不知能不能做,感觉天塌了。刷到过很多类似的视频,很多人都说失业了跑滴滴,送外卖,送快递,当保安。觉得思想局限性太大,就拿那女孩来说,一个名校毕业生,不能有点其它想法吗。就像我同事,自己在老家带两娃,摸索出一条帮助商家拉流量的路,做的风生水起。身在北京,思路更应该打开,多思考才是好的。
[309]-----底部有张生活照片和昨日花销
【关键词】python、ragflow、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:0020250106周一时间段:22:49-23:00找到方法,debug,截图如下:

图4a-2
注:运行之后,会到如下的界面。

图4a-3
注:这个运行之后,要在debug里看,这也就是如下这个:

图4a-4
注:这样就能看到具体的报错数据,看看是不是哪个没写进去,哪个配置错了,这里遇到的问题是client的地址配错了,这里能看出来,现在已改成正确的。
20250106周一时间段:23:32-23:40还有一点要注意的是,看如下截图:

图4a-5
注:以上截图中的三个按钮,
标1的意思是:点一下从一个断点跳到另一个断点
标2的意思是:从一断点处向下走,遇到一个方法,会进入方法内部,再从方法内部走。
标3的意思是:从一个方法内出来,与标2的作用相反。先总结到这吧,算是对debug有了更深的认识。
描述:现在对话速度慢,总体返回需要一分钟,追踪下哪里慢。
开工:
20250106周一时间段:23:32-23:4020250106周一时间段:23:40-00:00
先跑一遍龙哥的那个性能用例,效果如下:

图4a-6
注:邪门了,为啥超时呢。重启下服务器看看行不行,可能是龙哥重启服务器,导致一些服务没起来。本地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
20250107周二时间段:09:44-10:00路径:
testapi_app2/test_local_competence_performance跑下这个测试用例,看下速度情况。截图如下:

图4a-7
注:平均19秒,还可以。接下来,跑通全流程。
20250107周二时间段:09:44-10:00跑通全流程,从本地聊天开始。
20250107周二时间段:09:52-10:00启动chat_sev,启动ragflow,phpstudy,把chat_sev上的日志全干掉。
20250107周二时间段:10:05-10:20注:注意if后面只有输出语句的情况。去掉之后,没有明显改善,现在发现一个问题,就是最三次获取用户会话信息时,用时1分钟,很慢,截图如下:

图4a-8
注:看下是不是因为传的数据大,改成POST会不会好点。
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三次调用.
20250107周二时间段:11:03-11:2020250107周二时间段:11:20-11:40
修改第一次,修改程序如下:

图4a-9
注:不获取message,不传messages,传question代替,其它两次也是同理,接下来,改api/completion2及api/completion两个ragflow接口。
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
《本文完》