打造未来,API网关成为AIGC访问的基石

简介: 最近人工智能爆炸性消息层出不穷,先是百度和微软分别宣布将于近期发布新款类ChatGPT产品,随着相关消息披露,商业化成为业内最为关注的话题。此前OpenAI宣布开放ChatGPT的API接口。这意味着,任何公司和个人都可以在自己的程序中自由调取ChatGPT的相关功能。随着ChatGPT的强大功能不断被验证,近期一批A股上市公司纷纷宣布接入或计划接入ChatGPT等类似系统。随着ChatGPT的API接口正式开放,更多公司的加入将会加速相关模型的商业化落地。

最近人工智能爆炸性消息层出不穷,先是百度和微软分别宣布将于近期发布新款类ChatGPT产品,随着相关消息披露,商业化成为业内最为关注的话题。此前OpenAI宣布开放ChatGPT的API接口。这意味着,任何公司和个人都可以在自己的程序中自由调取ChatGPT的相关功能。随着ChatGPT的强大功能不断被验证,近期一批A股上市公司纷纷宣布接入或计划接入ChatGPT等类似系统。随着ChatGPT的API接口正式开放,更多公司的加入将会加速相关模型的商业化落地。


在继3月16日百度发布文心一言大模型后,国内众多科技、AI巨头都相继公布了各家大模型的发布会时间:4月8日华为盘古大模型发布、4月10日商汤大模型发布、4月11日阿里大模型发布,国内大模型的“百家争鸣”,AI已经成为大厂的必争之地,一些通用性AI能力将成为基础设施,以后大家看到的APP可能都离不开这些AI提供的能力。未来我们上线的APP的整体架构可能会是这样的:


image.png


AI能力作为基础设施处于最底层,客户端和用户的业务系统都有调用AI的API的需求。用户的业务系统可以通过API网关将所有AI的API包装起来,对客户端和业务系统提供统一的访问方式,统一控制访问权限和访问频率。这个架构还有个好处,就是用户购买的AI能力和用户业务API通过API网关上托管的统一的域名对客户端提供服务,可以统一控制相关权限和流量。下面我们分块描述下阿里云API网关在能力开放这块提供的基础能力。


统一域名证书


image.png


用户可以将自己的业务域名和对应的SSL证书统一托管到API网关,将所有AI的API和自己业务系统的API包装到API网关后,对客户端和外部系统提供统一的域名进行访问,将所有AI的服务域名都包装起来。调用者并不知道后端真正提供能力实现的系统名称,用户可以根据业务运行的情况来替换AI的供应商,调用者感知不到后端API的变化。


鉴权


image.png


不同的AI能力提供者对用户派发了不同的访问凭证,调用不同的AI提供者的API的鉴权方式各有不同。用户可以将这些复杂度统统在阿里云的API网关配置上,对其调用者提供统一的鉴权方式。用户可以通过API网关为不同的用户生成不同的访问凭证,并且为这些访问凭证设置有效期,也可以在API网关控制台随时删除指定的访问凭证。


阿里云API网关除了为用户提供访问凭证类型的鉴权方式,还提供了标准的JWT的鉴权方式,用户可以通过颁发Token的方式对调用者进行动态鉴权,并且可以通过管理API网关的插件数据集方式来Block已经颁发的Token。


阿里云API网关还提供了灵活的第三方鉴权的能力,用户配置自己的鉴权服务为API的访问进行鉴权,API网关在调用API后端服务之前先调用用户的鉴权服务,收到鉴权服务的鉴权成功应答后才会继续调用后端服务,否则给客户端返回鉴权失败的应答。


支持流式输出(SSE)


image.png


目前众多类ChatGPT的AI提供方提供的服务形式都是对话性质的,在返回应答的时候都是流式输出的,如上图所示,返回的应答都是逐字逐句返回的。阿里云的API网关可以通过简单的配置支持流式输出的特性(SSE),以适配目前流行的对话型AI服务模式。


流控


image.png


流控是API网关最基础的能力,无论用户的业务API还是AI的API都需要有流控的保护。阿里云API网关允许用户根据后端系统最大承受能力设置流量阈值,当客户端请求总量超过阈值时,网关把多出的请求直接驳回,保证后端服务不会遇到过载请求的情况。API网关允许用户通过多个维度对请求进行流控,可以对API,App(访问凭证),用户(访问方的App归属用户)三个维度进行秒、分钟、小时、天等时间维度进行流控,API网关同时提供针对请求中自定义参数这个维度的限流,请求的任意一个参数都可以成为流控的锚定值,比如用户可以指定请求中的IP头作为流控锚定值,那么可以通过API网关的流控能力轻松控制每个IP的请求RPS。


监控与报警


image.png


业务的可观测性和异常情况报警是一个系统的必备基础能力,API网关作为用户业务流量入口,天生是业务观测最佳位置。阿里云的API网关将所有业务访问日志同时同步到了阿里云的三个产品中:日志服务(SLS)、应用实时监控服务(ARMS)、云监控服务,用户可以在不同的云产品中通过不同的方式去观测与监视自己的业务监控情况。


  • 通过日志服务(SLS)查看每一个请求的详细情况,包括请求和应答、后端服务耗时等细节;
  • 通过应用实时监控服务(ARMS)观测整个请求链条中,每个网络节点的耗时请求,对全链路耗时情况进行分析;
  • 通过云监控服务,对所有业务日志进行监控,并可以根据业务情况针对后端应答码、后端服务耗时设置报警规则。


请求与应答大小限制


在调用类ChatGPT的API的时候,请求和应答中存在需要传输文件的场景,比如传输一张图片给ChatGPT,或者从ChatGPT中下载一个生成的视频文件。阿里云API网关在请求和应答的限制上针对类似场景给出非常优化的限制:


  • Request Body大小,共享实例最大为8MB,专享实例最大为32MB。
  • Response Body大小,无限制,但需要在API设置的后端超时时间内返回。专享实例后端超时时间最大允许为90秒。


性能


性能是所有API网关的一个非常核心的一个指标,所有业务请求都需要过API网关,API网关的性能会是整个系统性能指标的的非常关键的一环。阿里云API网关商业化后在公有云对公众用户提供服务七年有余,在性能上做个多次大幅度的优化,可以给大家分享两个2022年统计的两个专享实例的关键性能指标:98.17%的请求在API网关耗时在1毫秒以内,99.23%的请求在API网关耗时在2毫秒以内。


阿里云的API网关除了性能优秀,本身耗时极低,还可以为用户提供无限扩容的专享实例,可以为用户生成支持超过百万RPS的专享实例,在性能上和容量上彻底打消后顾之忧。


小结


在AI成为基础设施的今后,以AI为基础的应用会随着AI能力的普及大量地出现在人们的视野中。未来以AI作为基础设施的应用系统架构中,使用阿里云的API网关作为统一API入口,将AI能力的复杂性包装在API网关内,提供统一的鉴权、流控等基础能力。API网关内部集成了阿里云日志监控类云产品,为用户提供API调用统计、全链路监控、报警等功能,方便对API进行管理和维护,提高接口的稳定性和可靠性。API网关提供极高的并发能力和扩容能力,可以满足高并发的业务需求。

目录
相关文章
|
3月前
|
JSON API 开发工具
【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改
【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改
|
1月前
|
编解码 中间件 API
API实现跨平台访问的方式
【10月更文挑战第16天】API实现跨平台访问的方式
48 2
|
1月前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
159 0
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
|
2月前
|
API iOS开发 开发者
Snapchat API 访问:Objective-C 实现示例
Snapchat API 访问:Objective-C 实现示例
|
1月前
|
弹性计算 网络协议 网络安全
内网DNS解析&VPN网关联动实现云上访问云下资源
内网DNS解析&VPN网关联动实现云上访问云下资源
|
3月前
|
负载均衡 应用服务中间件 nginx
搭建域名访问环境二(负载均衡到网关)
这篇文章讲述了如何配置Nginx实现域名访问环境,通过负载均衡将请求从Nginx反向代理到服务网关,并提供了详细的配置步骤和测试验证方法。
搭建域名访问环境二(负载均衡到网关)
|
3月前
|
API 开发者
【API管理 APIM】APIM集成内部VNet后,自我访问出现(Unable to connect to the remote server)问题,而Remote Server正是APIM它自己
【API管理 APIM】APIM集成内部VNet后,自我访问出现(Unable to connect to the remote server)问题,而Remote Server正是APIM它自己
|
3月前
|
Web App开发 缓存 小程序
【Azure API 管理】从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能
【Azure API 管理】从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能
|
3月前
|
Kubernetes Serverless API
Kubernetes 的架构问题之利用不可变性来最小化对API Server的访问如何解决
Kubernetes 的架构问题之利用不可变性来最小化对API Server的访问如何解决
80 7
|
3月前
|
程序员 数据库连接 API
分享一个解决 EF 性能低的思路,通过 Python 访问心跳侦测 API 保持 EF 在线
分享一个解决 EF 性能低的思路,通过 Python 访问心跳侦测 API 保持 EF 在线
下一篇
无影云桌面