【Dv3Admin】插件 dv3admin_chatgpt 优化支持多种启动方式实现SSE效果
2026/9/24 14:05:22 网站建设 项目流程

服务端推送(SSE)常用于实时对话、流式输出等应用场景。但传统同步方式在高并发场景下易阻塞,ASGI 环境虽支持异步,但流输出需额外处理。项目对 SSE 实现方式进行重构,以适应多种部署模式。

继上一篇 【Dv3Admin】插件 dv3admin_chatgpt 集成大语言模型智能模块 的插件功能基础之上进行的优化改进,支持多种方式启动 Django 项目实现 SSE 效果。

聚焦chat_use_model接口在 WSGI 与 ASGI 环境中的差异,解析如何通过解耦同步与异步逻辑、重构流式响应生成函数,实现兼容 uvicorn/daphne 的标准 SSE 推送。并对认证机制与异常处理方式进行精简优化。

文章目录

  • 优化改进
  • 应用开发
  • 总结

优化改进

在原有架构中,项目仅通过python manage.py runserver(WSGI)方式启动时能够正常实现 SSE(Server-Sent Events)分段输出。但在切换至uvicorndaphne(ASGI)环境后,SSE 分段输出失效,原因在于原有的handle_chat_request函数将数据持久化和流式响应逻辑耦合在一起,无法与异步流兼容。

为解决该问题,我们对代码结构进行了重构和优化,将原有的嵌套逻辑拆解为两个独立职责的函数。

函数名说明
handle_chat_request用于同步执行请求入库、参数配置校验等操作
event_stream专注于生成大模型响应流,用于 SSE 分段输出

为解决在uvicorndaphne环境下 SSE 分段输出无效的问题,项目对核心接口逻辑进行了重构。原有实现中,同步操作与异步流耦合,导致 ASGI 下阻塞。将请求入库与响应输出解耦:handle_chat_request只负责配置验证与入库,

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询