当前位置:首页>python>5python之聊天时间耗费追踪及非AI模式开发

5python之聊天时间耗费追踪及非AI模式开发

  • 2026-08-26 11:31:18
5python之聊天时间耗费追踪及非AI模式开发

写在前面的话

会放弃吗。小孩有时很气人,过年这几天,二宝还行,大宝基本不吃家里饭,老爸老妈一直给我上强度,让我不胜其烦。抖哥那边想着让现有的一个项目,用小龙虾大改一下,让我俩解放出来,但里面涉及的业务问题比较复杂,人家是用java写的后端,vue写的前端,并且经过两三轮开发人员的手,里面很多关节不知道为啥要这样写,换语言开发风险很大,但一旦改成,后期将很轻松,不过两个孩子闹腾,让我一天一个小时都抽不出来,只能让抖哥自己先改。晚上,陪大宝睡觉我在想,大宝二宝这么磨人,我会放弃他俩吗,显然不会。哪怕以后他俩杀人放火,作为父母,也会无脑的救赎,不会从心底放弃两个孩子。那反过来呢,爸妈这一段,说的话有时让我接受不了,我多说一句话,指定闹僵,我会放弃父母吗,我想我不会。

[315]-------底部有张生活照片

【关键词】python、websocket、聊天、耗费时间、非AI模式

一、python相关

1.聊天时间耗费追踪

描述:今天主要追踪下,一次聊天耗费时间中,哪些模块用时太多,耗时模块都做了哪些事,能不能去掉。

开工:

第一步:打断点测试

a.先打第一个
20241227周五时间段:0947-1000
20241227周五时间段:1000-1020

先打第一个耗时模块断点,就是组装questions的。

先建一个新的会话

conversation_id为:6c0ca0f6c3f611ef94e1f020ff63f4c4

json:{'code': 0, 'data': {'id': '6c0ca0f6c3f611ef94e1f020ff63f4c4', 'dialog_id': '34bb8d02b30911ef9c3b0242ac120006', 'open_id': 'qhz1234567890', 'token': '1234567890qhz', 'is_intent': None, 'intention': None, 'dispatch': None, 'name': '狗狗感冒1227周五', 'message': [{'content': '你好! 我是专业宠物医生,有什么可以帮到你的吗?', 'role': 'assistant'}], 'reference': [], 'create_time': 1735264862328, 'create_date': '2024-12-27T10:01:02', 'update_time': 1735264862328, 'update_date': '2024-12-27T10:01:02'}, 'msg': 'success'}

注:接下来,改下前端代码中的conversation_id,截图如下:

图5a-1

注:先跑一下,看看效果,决定在哪里打断点。

b.新的conversation_id跑一遍
20241227周五时间段:1019-1020
20241227周五时间段:1020-1040

第一次询问,截图如下:

图5a-2

注:用了11分钟。追踪一下。

先打断点,再把函数抽出来,写个测试进行局部验证。

c.局部验证
20241227周五时间段:1136-1140
20241227周五时间段:1449-1500

要验证的代码位置如下:

图5a-3

注:要验证的代码如下:

图5a-4

注:打断点看一下,以方便写测试用例。先看下completion需要传什么才能调用。

d.completion方法
20241227周五时间段:1533-1540
20241227周五时间段:1540-1600
20241227周五时间段:1600-1620
20241227周五时间段:1620-1640

这个需要传哪些参数呢,如下:

conversation_id、messages

注:把端口改为9380,保持一致,方便测试,all_in龙哥。学一些先进的方法。

写测试用例如下:

def test_completion(client):

    conversation_ids = [
        "6c0ca0f6c3f611ef94e1f020ff63f4c4"
    ]

    question_list = [
        "你好,医生。我家猫咪最近老是在挠耳朵,耳朵里好像还有黑色分泌物,带去看兽医后说是耳螨。请问用什么药可以治疗耳螨,效果会比较好?"
    ]
    last_times =  []
    for conversation_id in conversation_ids:
        for question in question_list:
            start = time.time()
            messages = [{"role":"user","content":question}]

            url = f"/v1/api/completion"
            resp = client.post(
                url,
                json = json.dumps({
                    "conversation_id": conversation_id,
                    "messages": messages
                }),
                headers = {
                    "Content-type": "application/json",
                    "Authorization": "Bearer ragflow-UxOGYzZjUwYjMwOTExZWZiODc0MDI0Mm"
                }
            )

            if not 200 <= resp.status_code < 300:
                raise Exception(f"GET {url} status_code {resp.status_code}.")

            received_data = []
            for chunk in resp.iter_encoded():
                answer = chunk.decode('utf-8').strip()
                if answer:
                    received_data.append(answer)
                break

            end = time.time()
            last_times.append(end-start)
            log.info(f"conversation:{conversation_id} \nquestion: {question} \n received_data: {received_data},last:{end - start:.2f}s")

    log.info(f'question {len(last_times)} times, max:{max(last_times):.2f}s, min:{min(last_times):.2f}s, avg:{sum(last_times)/len(last_times):.2f}s')

测试结果如下:

图5a-5

注:这个还是定位到抽取知识的那个地方,如下:

        if prompt_config.get("keyword", False):
            log.info("\n\n chat--time trace-----------------------------------\n\n")    
            questions[-1] += keyword_extraction(chat_mdl, questions[-1])
        kbinfos = retr.retrieval(" ".join(questions), embd_mdl, dialog.tenant_id, dialog.kb_ids, 1, dialog.top_n,
                                        dialog.similarity_threshold,
                                        dialog.vector_similarity_weight,
                                        doc_ids=attachments,
                                        top=dialog.top_k, aggs=False, rerank_mdl=rerank_mdl)

注:这就说明测试用例也能找到问题的基本。接下来,就要看它是怎么影响的了。

e.测试影响 
20241227周五时间段:1655-1700

先把无用的log.info去掉。之后,再跑一下,看看日志减少没有。如果没有问题,再打几个断点看下。无效日志去掉了,效果如下:

图5a-6

注:接下来,开始打断点。先找一个小点,这个小点解决了,提交下代码,再搞下一个小点。

第二步:打一个断点

20241227周五时间段:1943-2000
20241228周六时间段:0000-0040

先暂停,搞一个非ai的。

2.非AI的

描述:先搞一个非AI的,让前端进行测试。

分析:这个加个参数,传这个参数就进行非AI测试,否则,就接着搞三连。

开工:

第一步:加个参数

20241228周六时间段:0042-0100

加参数is_ai,默认true,自己测试时,is_ai传false即可。

先做个小事。把日志文件都改为chat_api。

a.改chat_api.log
20241228周六时间段:0046-0100

修改替换一下。

log_common_sevice.log------log_chat_api.log

log_pet_diagnos.log------log_chat_api.log

log_pet_doctor.log------log_chat_api.log

注:这样以来就统一了,不要在分着看日志文件了。上传下代码,一个小点就要上传一次,显示自己的工作,也能方便自己记忆,供日后查找方便。

现在报错了,如下:

图5a-7

注:这个最终破案了,是因为磁盘满了。接下来,能不能清下服务器上的磁盘,先暂时能用。

b.清下服务器磁盘
20241228周六时间段:1134-1140

查下,哪些日志可以清理,能不能给出10G的空间。现在空间情况如下:

图5a-8

注:数据盘的可用大小为0,现在有两种思路:一是admin文件夹下有230G的空间,能不能拿出30G给数据盘,另一种思路是,把data目录下,看一下,能不能清一些数据,先用着。

第二种思路是最佳的,因为啥也不用动.

第二步:清磁盘日志

20241228周六时间段:1142-1200
20241228周六时间段:1200-1220
20241228周六时间段:1306-1320

发现data下面文件夹很多进不去,想办法能不能把admin下的给它30G,发现不好搞,先这样吧,别把服务器搞崩了。

二、python教程相关

1.python中的字符串

描述:python中的字符串很常用,注意些什么。

开工:

第一步:截取注意一

my_str = 'abcd'
print(my_str[0:-1])//abc
print(my_str[0:])//abcd
print(my_str[0])//a
print(my_str)//abcd

注:-1表示最后一个,[0:-1]不包括最后一个。

第二步:测试

测试还可以

2.python试题

描述:看个python题,截图如下:

图5b-1

开工:

第一步:试题代码

代码如下:

下面代码运行后,屏幕输出的是:
list_1=[1,2,3,4]
if list_1.remove(4):
   print("A")
elif list_1.pop() == 4:
   print("B")
elif list_1.pop()== 3:
print("C")
else:
print("D")
A. A
B. B
C. C
D. D

注:这个用到了python列表中的remove方法及pop方法,remove是移除指定元素,pop是删除最后一个元素并返回删除的元素,所以结果为B,运行结果如下:

图5b-2

注:没想到这个代码输出D,先执行remove方法,把列表变为了[1,2,3],但执行完remove,结果为none,也就是假,所以不会是A选项。接着执行pop,此时list=[1,2,3]执行pop删除最后一个元素,并返回删除的元素,执行后list=[1,2],返回3,而不是4所以B选项错误,再执行C选项,返回2,所以C错,最终返回D,这个题好巧妙啊。

第二步:测试

测试还可以

三、生活照片

拍摄于‎2026‎年‎1‎月‎29‎日,‏‎18:31:41,媳妇去杭州出差拍摄。父母这些天,老是说媳妇去东北花多少钱,平时给她妈多少钱,说的好像媳妇付钱时他俩在旁边看着似的。我说,这些你们都没见,是你们自己想的,说的有鼻子有眼,像真的一样,咱们退一步来讲,即使给了,人家把女儿养这么大花点女儿的钱也是应该的,你们没必要这么嫉恶如仇。老妈说自己好辛苦,还不如回家。老妈说多少次,我忍多少次,因为老妈七十多了,如果前几年,老妈说回家,我指定让她回去了,现在回家,我也不放心,孩子那么闹,我都能忍,为什么不能忍七十多岁的老妈呢,老妈一个人回家,肯定会很失落,那是我不愿意看到的场景。

图5c-1

《本文完》

最新文章

随机文章