270315475
270315475
  • 发布:2025-03-04 16:17
  • 更新:2025-03-04 17:04
  • 阅读:24

uniCloud.callFunction 请求 AI 利用uniCloud.SSEChannel 后请求 120 秒中断无法接收

分类:uniCloud

现在在做 AI 回答,利用uniCloud.callFunction 请求 openai 接口,利用 const channel = new uniCloud.SSEChannel(); // 创建消息通道;

支付宝空间,uniCloud.callFunction不管在哪配置各类参数,始终突破不了 120 秒超时瓶颈!

120 秒超时后uniCloud.SSEChannel消息通道也关闭了,导致 AI 回答的东西后续的文字中断,这个怎么解?

2025-03-04 16:17 负责人:无 分享
已邀请:
DCloud_uniCloud_VK

DCloud_uniCloud_VK

uniCloud.callFunction 有最大超时时间, 可在云函数根目录下的
package.json文件里配置 timeout, 但此值受云厂商限制, 目前腾讯云最大30秒 阿里云最大120秒 支付宝云最大180秒,

 "cloudfunction-config": {  
    "concurrency": 1,  
    "memorySize": 512,  
    "path": "",  
    "timeout": 180,  
    "triggers": [],  
    "runtime": "Nodejs18",  
    "keepRunningAfterReturn": false  
  },
  • 270315475 (作者)

    AI处理的内容多,180秒也不够AI返回的,这样无解了吗?

    2025-03-04 17:19

  • 270315475 (作者)

    支付宝云设置"timeout": 180后,这次80秒就超时了

    2025-03-04 17:28

  • DCloud_uniCloud_VK

    回复 270315475: 180秒如果还不够的话, 那常规方法目前是无解了, 有一个不常规的方案就是用户问的问题存入数据库问题表,然后定时任务跑,定时任务每5秒触发一次,一旦从数据库拿到用户的问题,就标记为执行中,然后开始问ai,定时任务可以跑3小时

    2025-03-04 17:31

  • DCloud_uniCloud_VK

    即定时任务时,timeout最大值可以设置为10800

    2025-03-04 17:34

  • DCloud_uniCloud_VK

    回复 270315475: 除了配置里设置外, 试试在 uniCloud.callFunction 也加下参数 timeout: 180

    2025-03-04 17:39

  • DCloud_uniCloud_VK

    配置里的是最大超时时间, uniCloud.callFunction 里设置的是本次请求超时时间

    2025-03-04 17:39

  • 270315475 (作者)

    回复 DCloud_uniCloud_VK: 好的 看来只能走定时任务方案解决了,谢谢 ,我试试吧

    2025-03-04 17:45

要回复问题请先登录注册