AI网关是什么意思?有什么用?
AI网关是企业应用与内外部大模型之间的桥梁,它位于企业应用与内外部大模型的调用交汇点。
AI网关的主要功能 是 将应用请求 通过集中管理模块 转发给 1 内部自建模型、2 外部大模型服务提供商,甚至 3 海外模型提供商。
通过这种方式,AI网关在企业内管理了所有的AI出口流量,为开发运维团队提供了更好的维护切面,同时也为不同团队带来了不同的好处:
对于开发团队来说: AI网关可以让开发团队不再关心模型费用和申请问题,按需调用即可,加速应用构建。这意味着开发团队可以更专注于应用的开发,而不需要担心与AI模型申请和管理相关的繁琐事务。
对于安全和治理团队来说:AI网关通过限制访问、确保安全使用AI模型及提供控制、审计和可见性,保护应用。这有助于确保企业应用的安全性和合规性,同时为安全和治理团队提供了更好的控制手段。
对于基础设施团队来说:AI网关在加速开发应用构建的同时,增强整个AI调用的稳定性,尤其是海外模型调用的稳定性。这有助于提高企业应用的性能和可靠性,同时降低故障和延迟的风险。
总的来说,AI网关在企业应用与内外部大模型之间起到了关键的作用,它不仅提高了应用的开发效率,还增强了应用的安全性和稳定性。
AI网关应有的核心能力
1)API聚合 :通过AI网关,企业可以将来自不同AI供应商的服务统一管理起来。例如,一家公司可能同时使用了阿里云的语音识别服务、百度的图像识别技术以及谷歌的文字翻译功能。在这种情况下,AI网关能够作为单一接入点,让开发者只需面对一个接口就能访问到所有这些服务,极大地简化了集成过程并降低了维护成本。
2)调用管理 :对于内部团队来说,合理控制预算同样重要。比如,在某大型科技公司内部,管理层希望限制每个项目组每日在AI服务上的开销不超过一定金额(如500元),但并不想因此而限制他们探索不同的模型或功能。借助AI网关提供的调用管理功能,管理员可以轻松设定这样的规则,既保证了财务健康又促进了创新活动。
3)安全审查:考虑到敏感数据的安全性至关重要,AI网关还提供了强大的日志记录与追踪机制。假设有一家金融机构正在利用AI分析客户行为模式以改进其产品推荐系统,那么通过启用AI网关的安全审查功能,该机构不仅能详细跟踪每一次请求的具体内容及其返回结果,还能确保所有交易信息都得到妥善保护,防止未授权访问或泄露给第三方。
4)高可用增强:当业务规模不断扩大时,单一API Key可能会成为瓶颈。为解决这个问题,AI网关支持配置多个备用密钥。假如某个在线教育平台每天都要处理数百万次的自然语言处理请求,并且已经设置了两个来自不同提供商的有效密钥A和B。一旦发现密钥A因达到速率限制而无法继续工作时,系统会自动切换至密钥B继续提供服务,从而有效避免了因单点故障导致的服务中断问题,提高了整体系统的稳定性和响应速度。
基于我们在阿里巴巴集团内部的最佳实践来看,采用AI网关是十分必要的。它不仅帮助我们高效整合了自建模型与外部优质资源,使得用户可以无缝享受到最前沿的人工智能成果;更重要的是,通过精细化的成本管理和严格的数据安全措施,我们也能够更好地保护客户隐私,同时实现经济效益的最大化。
Higress AI 开源网关 功能介绍
Higress AI网关 是一个阿里 开源的 网关 ,里面有大量AI插件,提供了多种关键功能,这些功能不仅增强了系统的灵活性和安全性,也提高了用户体验。
1)API多模型适配: 在多模型适配方面,即使不同供应商提供的大模型在接口调用上有差异,通过统一的API层,可以轻松实现跨平台兼容,极大地简化了集成流程。AI代理插件支持与超过15家国内外知名的大规模语言模型(LLM)提供商对接,这大大减少了企业在选择或更换AI服务时的成本和技术障碍。同时,这种广泛的兼容性还允许组织内部的不同团队根据自己的需求自由地访问最适合其应用场景的语言模型,而无需担心底层技术栈的变化对业务造成影响。
2)AI内容审核插件,它能够无缝连接至阿里云的内容安全服务,自动识别并过滤掉诸如非法言论、虚假信息或是含有歧视性的文本片段,确保输出给最终用户的每一条信息都是符合法律规范且积极正面的。此外,该插件还能详细记录下每一次请求及其处理结果,便于后续审计追踪,并且所有这些日志都会被赋予唯一的请求ID,以便于快速定位问题发生的位置。
3)统计和限流插件。一方面,通过实时生成Prometheus监控指标以及在访问日志中打印相关数据,管理员可以清楚地了解到当前系统的Token吞吐量;另一方面,则是基于上述统计信息实施灵活的流量控制策略,比如设置每个用户每天最大允许使用的Token数量上限,这样既能保证公平使用公共资源,又能有效防止因滥用导致的服务不稳定现象。
4)高可用切换插件:AI网关特别设计了一套健壮的密钥管理方案——当某个密钥失效时,系统会自动切换到下一个可用密钥继续提供服务,直到耗尽所有备选选项为止。这种方式不仅提升了整体服务的可靠性和连续性,也为用户带来了更好的体验。总之,通过结合以上提到的各项核心能力,AI网关为企业级应用提供了一个强大而全面的AI基础设施平台。
Higress的AI插件设置
Higress 提供了多种 AI 插件以增强其功能,比如 AI 检索增强生成(RAG)、AI 内容安全以及 AI 提示词模板。接下来将分别基于这三类插件提供详细的配置指南。
1) AI检索增强生成(RAG)插件配置
此插件旨在通过阿里云向量检索服务来提升模型的搜索和生成能力。配置时需要提供关于通义千问服务及阿里云向量检索服务的相关信息。
- 准备必要参数:确保你已经获取了
dashscope
与dashvector
的服务相关密钥及域名等信息。
- 编辑配置文件:在你的项目中找到或创建一个 YAML 格式的配置文件。参考如下格式填写相应信息:
dashscope:apiKey: [您的apiKey]serviceName: [服务名称]servicePort: [服务端口, 如443]domain: [访问服务时使用的域名]
dashvector:apiKey: [您的apiKey]serviceName: [服务名称]servicePort: [服务端口, 如443]domain: [访问服务时使用的域名]
- 应用配置:保存更改后的配置文件,并根据具体环境重启或者重新加载 Higress 服务使得新设置生效。
2 ) AI内容安全插件配置
为了保障大模型输出的内容符合规范要求,可以启用该插件并与阿里云内容安全服务集成。
- 获取接入凭证:首先登录到阿里云控制台并创建所需的服务实例,记录下
ak
(Access Key ID)与sk
(Secret Access Key)。
- 更新YAML配置:同样地,在您的配置文件里添加如下条目:
serviceSource: "dns"
serviceName: "safecheck"
servicePort: 443
domain: "green-cip.cn-shanghai.aliyuncs.com"
ak: "[您的AK]"
sk: "[您的SK]"
- 验证设置:保存配置并重新启动服务后,可以通过发送含有敏感词汇的请求测试是否能够正确触发内容过滤机制。
3) AI提示词模板插件配置
当希望对用户输入进行预处理,以确保它们符合某些特定格式或规则时,可以考虑使用这个插件。
- 定义模板:在配置文件中指定想要使用的Prompt模板及其细节:
templates:
- name: "example-template"template:model: gpt-3.5-turbomessages:- role: systemcontent: "You are an expert in answering questions about..."- role: usercontent: "{{query}}"
- 发送请求:客户端发送API调用时需包含之前定义好的模板名以及任何必要的变量替换值,如:
{"template": "example-template","properties": {"query": "What is the capital of France?"}
}
按照上述步骤操作即可完成Higress AI插件的基本配置过程。每一步都至关重要,请务必仔细检查每一项设置是否准确无误。此外,对于更高级别的定制化需求,则可能还需要深入查阅官方文档获取更多信息。
Higress单机简易部署
本例子提供了Higress的单机部署样例,Higress也支持了 基于k8s和helm chart的
Higress单机快速部署
根据我了解的信息中的第2篇参考内容,这里将详细介绍如何在本地环境中使用Docker快速部署Higress,并完成基本的配置与测试。此方法适用于个人开发者在本地搭建学习环境或用于简易站点。
前置条件
- 本机已安装Docker。如未安装,请参考官方指南进行安装:Get Docker | Docker Docs
部署步骤
- 创建一个工作目录来存放Higress相关的文件和数据。
mkdir higress
- 使用Docker运行Higress容器。这一步会自动下载所需的镜像并启动服务。
docker run -d --rm --name higress-ai -v ./higress:/data \-p 8001:8001 -p 8080:8080 -p 8443:8443 \higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest
解释:
-
-d
表示后台运行容器。
-
--rm
指令确保当容器停止时自动删除它。
-
--name higress-ai
给容器指定一个名称。
-
-v ./higress:/data
将当前主机上的higress
目录挂载到容器内的/data
路径下,这样可以让容器内产生的配置等文件被持久化保存。
-
-p 8001:8001
、-p 8080:8080
和-p 8443:8443
分别映射了容器内部的8001、8080以及8443端口到宿主机对应的端口上。
-
higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest
是使用的Docker镜像名称及其版本号。
- 登录Higress控制台开始进行必要的初始化设置及后续操作。
-
- 在浏览器中输入
http://127.0.0.1:8001
进入Higress UI管理界面。
- 在浏览器中输入
-
- 首次访问需要初始化管理员账号。按照页面提示设置用户名密码后点击“确定”按钮完成注册流程。
-
- 利用刚才设置好的凭据登录到控制台。
- 配置服务来源和服务路由规则。
-
- 点击左侧菜单栏里的“服务来源”,然后点击右方出现的“创建服务来源”按钮。在此处添加一个新的DNS域名作为示例服务(比如选择
httpbin.org
)。
- 点击左侧菜单栏里的“服务来源”,然后点击右方出现的“创建服务来源”按钮。在此处添加一个新的DNS域名作为示例服务(比如选择
-
- 接着转至“路由配置”,点击“创建路由”。为这个新创建的服务定义一个匹配规则(例如精确匹配路径
/get
),同时选择刚才添加的服务作为目标。
- 接着转至“路由配置”,点击“创建路由”。为这个新创建的服务定义一个匹配规则(例如精确匹配路径
- 测试验证所做配置是否生效。
-
- 打开命令行工具或者直接在浏览器地址栏里输入
http://127.0.0.1:8080/get
尝试访问刚刚设定好的路由。
- 打开命令行工具或者直接在浏览器地址栏里输入
-
- 如果一切正常,您应该能看到来自
httpbin.org
网站返回的一段JSON格式响应信息,表明请求已经成功地被转发到了该远程服务器。
- 如果一切正常,您应该能看到来自
通过上述步骤,您就完成了Higress网关的一个基础版本部署,并能够基于此开展更复杂的应用场景探索。请注意,尽管这种方式非常适合快速试用或小规模实验,但对于生产级别的应用来说还是建议采用更为稳定可靠的Kubernetes集群部署方案。