更新时间:2024-11-21 GMT+08:00
分享

使用Server-Sent Events协议的方式访问在线服务

背景说明

Server-Sent Events(SSE)是一种服务器向客户端推送数据的技术,它是一种基于HTTP的推送技术,服务器可以向客户端推送事件。这种技术通常用于实现服务器向客户端推送实时数据,例如聊天应用、实时新闻更新等。

SSE主要解决了客户端与服务器之间的单向实时通信需求(例如ChatGPT回答的流式输出),相较于WebSocket(双向实时),它更加轻量级且易于实现。

前提条件

在线服务中的模型导入选择的镜像需支持SSE协议。

约束与限制

  • SSE协议只支持部署在线服务。
  • 只支持自定义镜像导入模型部署的在线服务。
  • 调用API访问在线服务时,对预测请求体大小和预测时间有限制:
    • 请求体的大小不超过12MB,超过后请求会被拦截。
    • 因APIG(API网关)限制,平台每次请求预测的时间不超过40秒。

SSE在线服务调用

SSE协议本身不提供额外的认证方式,和HTTP请求方式一致。

可以使用ModelArts提供的以下认证方式:

SSE服务调用如下(以图形界面的软件Postman进行预测,token认证为例):

图1 SSE服务调用
图2 响应头Content-Type

正常情况下,可以观察到响应头Content-Type为text/event-stream;charset=UTF-8。

相关文档