当前位置:首页>python>7python之会话列表及聊天时更新会话名

7python之会话列表及聊天时更新会话名

  • 2026-09-02 20:27:04
7python之会话列表及聊天时更新会话名

写在前面的话

不如见一面。昨天,刷视频,看到贾跃亭唱的一首歌,不如见一面,原唱是海来阿木。唱这个歌是贾在美国,两个女儿在中国,隔空对唱完成的,感动了大批网友,表达了贾想回国与家人生活的愿望。当时在国内没爆发危机时,贾当过科技首富,由于转战造车,导致资金断裂,远走美国。当然,国内欠了大量的钱,有上百亿,顶着这么大的压力,在美国创业十来年,这份精神,我是比较崇拜的,这得有多么强大的心脏和定力啊,创业九死一生,像快播王兴,抓起来被放出来之后,就没音了,老贾能坚持持续造车,想各种办法维持造车环境,在口碑极坏的情况下,还在持续折腾,我觉得不容易。像一些网友,信用卡欠百万,直接躺平,老子不管了,爱咋咋的。这是两种截然不同的处事方式,我还是比较支持贾的做法的。

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

【关键词】python、会话列表、聊天更新会话名、聊天记录

一、python接口相关

1.会话列表

描述:现在会话列表,展示有问题,从小程序测试来看,有点问题,看一下。

开工:

第一步:一条数据

测试发现,只输出1条数据,而数据库中是4条数据,截图如下:

图7a-1

注:看下代码。

第二步:看下代码

20241229周日时间段:2143-2200
20241229周日时间段:2200-2220
20241230周一时间段:0937-0940

知道原因了,是数据不同步造成的,因为是两个数据库,接下来,加个分页,限制10条。先做一件事,把没有name的忽略掉,修改程序如下:

    def query(cls, cols=None, reverse=None, order_by=None, **kwargs):
        try:
            query = cls.model.select()
            query = query.where(cls.model.name != '')
            if cols:
                query = query.select(*cols)
            if reverse:
                query = query.order_by(fn.REVERSE(order_by))
            if order_by:
                query = query.order_by(order_by)
            for key, value in kwargs.items():
                query = query.where(getattr(cls.model, key) == value)
            return [MyModel(**item.__data__) for item in query]
        except Exception as e:
            log.info(f"query error: {str(e)}")
            return f"query error: {str(e)}"

注:加个限制模型,避免死循环,如下:

class MyModel(BaseModel):
    id: str
    name: str
    open_id:str
    # 其他字段...

注:这样,终于解决了问题。运行结果如下:

图7a-2

注:接下来,代码上传之后,开始做限制条数。

第三步:限制输出条数

20241230周一时间段:1102-1120

这个倒没遇到卡点,修改如下:

图7a-3

注:这样就限制了输出条数,调用程序如下:

convs = ConversationService.query(
            open_id=open_id,
            order_by=ConversationService.model.create_time,
            reverse=True,
            limit=2)

输出如下:

图7a-4

注:符合条件的有3条,输出了两条,说明limit起了作用。接下来,聊天时,更新会话名。

2.聊天时更新会话名

描述:当获取聊天列表时,会话名需要最后一条用户的问题,所以,每次用户提问都要更新会话名。

分析:可以用户提问时就拦截并更新。

开工:

第一步:提问时拦截

20241230周一时间段:1118-1120
20241230周一时间段:1120-1140
20241230周一时间段:1500-1520

写下程序,在提问时调用更新,程序修改如下:

图7a-5

注:写个测试用例,看能不能更新成功。

第二步:写测试用例

20241230周一时间段:1537-1540
20241230周一时间段:1540-1550

写测试用例如下:

图7a-6

注:这个截图对应的代码如下:

async def test_websocket_endpoint():
    uri = "ws://127.0.0.1:6789/ws"  # 根据你的FastAPI应用端口进行修改
    async with client.connect(uri) as websocket:
        # 发送测试数据
        test_data = json.dumps({"is_ai": 0, "conversation_id": "3ab66ac6c68011ef8d98f020ff63f4c4", "question": "你好"})
        log.info(f"\n\n\n\n test_data-------------------------: {test_data} \n\n\n\n")
        await websocket.send(test_data)

        # 接收响应
        response = await websocket.recv()
        log.info(f"\n\n\n\n response----------: {response} \n\n\n\n")
        response_data = json.loads(response)
        log.info(f"\n\n\n\n response_data----------: {response_data} \n\n\n\n")

注:这个测试发现,没有修改成功,name没有改成【你好】,排查下原因。修改代码如下:

    try:
        # 尝试获取 JSON 请求体
        req = request
    except json.JSONDecodeError:
        # 如果 JSON 解码失败,尝试获取原始请求体
        req = await request.body()
        # 如果需要将其转换为字符串或字典,可以在这里进行
        # 例如:req = json.loads(req.decode('utf-8'))
        req = json.loads(req.decode("utf-8"))

注:这个主要是接收时,优化下代码。接下来,聊聊试试。如果可以,就上线,在线上测接口的可用性。可以的,下一步,线上测试。

接下来,看下写聊天记录。

3.聊天写入记录

描述:现在新建会话,好像调的是更新接口,验证一下。

开工:

第一步:在线上打日志,看下。

在更新接口,和新建接口都打下日志。

确实调了两个,晚上联调一下。接下来,是系统时间。问题

第二步:测试

晚上测试

4.ragflow系统时间

描述:现在新建会话,创建时间错了8个时区,看下原因。

开工:

第一步:在线上打日志,看下。

这个是docker容器的时间和系统时间不同步,docker相当于一个虚拟机,有自己的时间。

第二步:测试

测试还可以,接下来,接知识库。

5.接知识库

描述:现在接下知识库,看时间慢能不能优化一下。

开工:

第一步:接知识库

20241231周二时间段:1449-1500
a.先总结下docker
20241231周二时间段:1449-1500
1. docker重启【20241231 14:52】
docker restart agflow-server
注:docker命令是全局的,所以不用进入某个文件夹进行操作。
2.进入docker容器【20241231 15:04】
docker exec -it ragflow-server /bin/bash
b.vscode连接下copilot
20241231周二时间段:1507-1520

没连上,先不管。

c.接知识库

20250101周三时间段:1149-1200

接知识库进行测试

d.本地ssh连linux怎么避免输入密码--【2025-01-01 14:54】

创建密钥(可以在git bash里做)

ssh-keygen -t rsa -b 4096 -C " 243127387@qq.com"

上传密钥:

ssh-copy-id -p 2222 admin@39.101.69.172

注:输入上述命令运行时,会让输入服务器密码,输入之后,服务器会记住,下次用黑窗口登录,服务器就不会让输入用户名和密码了。

二、wp相关

1.下载代码

描述:下载项目代码。

开工:

第一步:登录siteground

20241230周一时间段:1500-1520
20241230周一时间段:1820-1840

发现需要个验证码,给客户要一下。

下载,2G的大小,需要下载一下。截图如下:

图7b-1

注:备份下数据库。

第二步:备份数据库

20241230周一时间段:1820-1840

下载数据库,把数据库下载一下,在本地部署完,这个活不准备挣钱,但要做完这三项。

2.改页面

描述:改个日志详情页面。

开工:

第一步:调整类框高度

20241230周一时间段:2015-2020
20250101周三时间段:2300-2320

完成,现在上传到服务器,遇到了问题,ftp一直搞不定,尝试用siteground.连接如下:

图7b-2

第二步:测试

测试还可以

三、生活照片

拍摄于‎2025‎年‎10‎月‎3‎日,‏‎16:54:16,带孩子去盘锦红海滩拍的,当时大宝七岁十个月。看了贾的故事,觉得创业这个事是成者王侯败者贼,贾转战造车是付出极大代价的,他因为国内欠款,已被证监会终身禁止进入证券行业,就是说他的公司想在中国上市不可能了,即使他以后还清欠款。他出走美国时44岁,如今53岁,已年过半百,还在坚持,这种轴劲令人钦佩,但愿他早日成功。

图7c-1

《本文完》

最新文章

随机文章