chatchat知识库对话接口修改成sse流式输出方案

在chatchat结合chatGLM搭建的私有化知识库中,使用原生的webUI画面是可以流式输出的,而直接调用api接口,不管stream为true还是false,都是阻塞式输出的,也就是一口气返回给接口。

我们的解决方案是修改StreamingResponse方式返回,变更为EventSourceResponse。以下是详细步骤:

1、 增加sse依赖,Python -m pip install sse-starlette

2、找到工程中的/server/chat/knowledge_base_chat.py文件,将其拷贝一份,命名为:knowledge_base_chat_sse.py

在这里插入图片描述
3、 增加依赖:from sse_starlette.sse import EventSourceResponse,并且修改文件内方法名,和文件明对应上。
在这里插入图片描述

4、把方法返回值类型StreamingResponse改为EventSourceResponse
在这里插入图片描述
注意python的换行问题。

5、修改init文件:
在这里插入图片描述

6、修改aip.py文件:
在这里插入图片描述

在这里插入图片描述

7、最后
Conda中增加环境变量:

conda env config vars set openai_api_key=""
conda env config vars list

然后重载一下环境:

conda activate LangChain-Chatchat-0.2.3

启动即可:

python startup.py –a 或者 nohup python startup.py -a

如果报openai错,将modal中配置文件的GPT3.5的key改为””,如下图:

在这里插入图片描述

然后在启动就行了。

备注,常用命令:

conda activate LangChain-Chatchat-0. 2.3  //进入指定conda空间
nohup python startup.py -a  //后台启动
 ps -ef |grep -i python //检索进程
bash shutdown_all.sh  //停止chatchat
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值