5分钟科普:AI网关是什么?应用场景是什么?有没有开源的选择?

news/2024/11/7 18:58:44/

AI网关的功能及其定义

AI网关位于企业应用与内外部大模型调用的交汇点,能够灵活地将请求转发给内部自建模型或外部大模型服务提供商,甚至海外的服务商。它管理着企业所有的AI出口流量,为企业内的不同团队提供了多方面的优势。

对于开发团队而言,AI网关简化了模型的选择和使用过程,让他们可以专注于产品的快速迭代而无需担心成本控制或复杂的申请流程。

针对安全和治理方面的团队而言,AI网关通过实施访问控制、加密传输等措施来保证数据的安全性,并提供详细的日志记录以支持审计活动。

对于基础设施团队而言,也能从AI网关中有所收益,因为AI网关不仅有助于提高新功能上线的速度,还增强了系统对外部依赖特别是跨境服务调用时的可靠性和性能表现。综上所述,AI网关是现代企业架构中不可或缺的一部分,对于促进高效协作、保障信息安全以及优化资源利用具有重要作用。

AI网关主要的功能概述

1)API聚合:在实际应用中,一家公司可能同时使用阿里云、百度AI以及腾讯云等多个AI服务提供商的技术。通过AI网关,企业可以将这些不同来源的API统一接入到一个平台上进行管理。比如,在开发智能客服系统时,可以选择性地调用不同供应商提供的语音识别或自然语言处理能力,而无需针对每个接口单独编写代码,极大地简化了开发流程,并减少了因频繁切换API而导致的成本增加。

2)调用管理:对于大型企业而言,内部可能存在众多项目组都在使用各种AI服务的情况。为了更好地控制成本,可以通过AI网关设置每位员工每日可使用的预算上限。例如,规定市场部团队成员每天只能花费不超过50元用于图像分析等特定功能上,但并不限制他们具体访问哪些模型。这种方式既保证了资源的有效利用,又避免了不必要的开支浪费。

3)安全审查:随着越来越多敏感信息被纳入AI处理范围之内,如何保障数据安全性成为重要课题之一。AI网关能够记录所有与之交互的数据流,并为每条请求分配唯一标识符(Request ID),便于追踪审计。假如某次调用了涉及客户个人信息的服务后发现异常情况,管理员可以根据日志快速定位问题所在,并采取相应措施防止进一步泄露。

4)高可用增强:当面对高并发场景或者单个账号面临流量限制时,配置多个API Key并通过AI网关实现自动故障转移变得尤为关键。假设你正在运营一款基于人脸识别技术的应用程序,在高峰期可能会遇到API调用次数受限的问题。此时,如果预先设置了多套密钥并开启了failover机制,则一旦某个Key达到限额,系统会无缝切换至下一个有效Key继续提供服务,从而确保用户体验不受影响。

在我们的实践中,同样采用了上述方法来优化AI资源管理和成本控制。通过构建统一的AI网关平台,不仅实现了对自有研发模型和外部合作伙伴所提供服务的一体化管理,还加强了对企业资产的安全防护力度。此外,借助精细化的成本管控策略,我们能够在充分利用现有计算力的基础上,最大程度地降低总体支出,让每一位用户都能以最经济的方式享受到先进的AI技术支持。

Higress AI 开源网关 概述:

Higress是阿里基于内部Envoy Gateway实践并以Istio和Envoy为核心构建的开源 云原生AI 网关,实现了流量、微服务及AI 网关三合一的高度集成能力。它支持Dubbo、Nacos等微服务技术栈,能显著降低网关部署与运维成本。

Higress经过阿里巴巴集团包括双11在内的多次大促考验,并已在优酷、钉钉等多个业务中广泛应用。

Higress AI网关 则是Higress网关的一个细分领域

他通过提供一系列强大的插件,实现了对AI能力的全面支持与优化。

首先,在安全防护方面,AI内容审核插件能够对接阿里云的内容安全服务,有效拦截包含有害语言、误导信息、歧视性言论以及违法违规的内容,确保了大模型生成的回答符合合规标准。例如,当一个请求或响应中包含了非法内容时,该插件会立即拦截,并返回一个由内容安全服务建议的安全回答,从而保护用户免受不良信息的影响。

其次,AI代理插件极大地简化了跨多个AI提供商的操作流程,当前共支持包括国内外主流厂商在内的15家LLM(大型语言模型)提供商。这意味着开发者可以在不更改代码的情况下轻松切换不同的AI后端,大大减少了集成和维护多源AI服务的成本。这种灵活性还允许企业根据性能表现和服务价格选择最合适的供应商组合,以实现成本效益最大化。

此外,AI限流插件则能更好帮助企业更好地控制AI服务使用成本并提高系统稳定性。它不仅支持基于Token吞吐量来实施细粒度的流量限制策略,而且还可以针对特定租户设定明确的日消费额度上限。这样一来,即便是在高峰期也能保证服务的稳定运行而不至于超出预算范围。同时,通过记录详细的访问日志并与每次请求ID绑定,增强了数据安全性,防止敏感信息外泄。

最后,AI结果缓存插件,则可以存储之前已经处理过的查询及其答案,下次遇到相同问题时直接从缓存中读取答案而不是重新计算,这样既节省了宝贵的计算资源又显著提高了响应速度。此功能特别适用于客服机器人等场景,在那里重复咨询的情况非常普遍。

综上所述,Higress AI网关凭借其丰富的插件生态系统,为企业级用户提供了一个高效、灵活且安全的大规模AI应用解决方案。

Higress的AI插件设置样例

Higress的AI插件配置

Higress提供了多种AI相关的插件,包括AI检索增强生成(RAG)、AI提示词模板以及AI内容安全。每个插件都针对特定的应用场景提供支持,并且需要进行一定的配置以满足应用需求。以下是根据提供的知识对如何配置这些插件进行详细的步骤说明。

1. AI 检索增强生成 (RAG) 插件配置

此插件允许通过集成阿里云向量检索服务来提升模型基于上下文理解能力的应用性能。

  • 步骤1: 准备必要的API密钥和服务信息。
    • dashscope.apiKey: 获取用于通义千问服务认证的API Key。
    • dashvector.apiKey: 获取阿里云向量检索服务所需的API Key。
  • 步骤2: 配置服务相关信息。
    • 确定serviceName, servicePort, 和 domain对于通义千问及向量检索服务的具体值。
  • 步骤3: 在YAML文件中添加上述配置项。
dashscope:apiKey: "您的通义千问API Key"serviceName: "dashscope"servicePort: 443domain: "dashscope.aliyuncs.com"
dashvector:apiKey: "您的向量检索API Key"serviceName: "dashvector"servicePort: 443domain: "vrs-cn-xxxxxxxxxxxxxxx.dashvector.cn-hangzhou.aliyuncs.com"collection: "指定集合名"
  • 解释: 通过以上设置,我们为AI检索增强功能指定了必要的访问凭证和网络路径信息,使得插件能够正确地与后台服务通信并执行任务。
2. AI 提示词模板插件配置

该插件旨在帮助快速创建具有固定格式的Prompt,适用于需要控制输入结构的应用场合。

  • 步骤1: 定义模板数组。
    • 根据实际应用场景设计合适的Prompt模板结构。
  • 步骤2: 填写模板详情。
    • 对于每一个模板定义其name, model, 以及messages属性。
  • 步骤3: 将模板配置加入到系统中。
templates:
- name: "developer-chat"template:model: gpt-3.5-turbomessages:- role: systemcontent: "You are a {{program}} expert, in {{language}} programming language."- role: usercontent: "Write me a {{program}} program."
  • 解释: 此配置段落设置了可供调用的预定义Prompt模板库,便于在具体请求时直接引用或稍作调整后使用。
3. AI 内容安全插件配置

为了确保输出内容符合法律法规要求,可以启用AI内容安全插件对接阿里云内容安全服务。

  • 步骤1: 获取阿里云账号下的Access Key ID (ak) 和 Access Key Secret (sk)。
  • 步骤2: 设置目标服务的基本信息。
    • 指定serviceSource, serviceName, servicePort, 和domain
  • 步骤3: 在YAML配置文件中录入安全检查参数。
serviceSource: "dns"
serviceName: "safecheck"
servicePort: 443
domain: "green-cip.cn-shanghai.aliyuncs.com"
ak: "您的阿里云AK"
sk: "您的阿里云SK"
  • 解释: 上述操作完成了对内容安全插件的基础设定,使系统能够在处理请求/响应过程中自动触发安全性检查流程,从而有效防止不良信息传播。

综上所述,按照以上详细步骤逐一完成相关配置后,即可充分利用Higress平台上的各项AI功能插件为您的应用程序带来更强大、安全的服务体验。

Higress本地快速部署

本例子提供了Higress的单机部署样例,Higress也支持了 基于k8s和helm chart的实现

Higress单机快速部署

根据提供的我了解的信息,这里将详细介绍如何在本地环境中使用Docker容器快速部署Higress。这种部署方式适合个人开发者进行学习或者搭建简易站点。

前置条件
  • 本机需已安装 Docker。如尚未安装,请参考官方指南:Get Docker | Docker Docs
部署步骤
  1. 创建一个工作目录
mkdir higress
  1. 启动 Higress 容器
    使用 -v 参数将宿主机的 higress 目录挂载到容器内的 /data 路径下,并通过 -p 参数暴露必要的端口(8001, 8080, 8443)。执行以下命令:
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

监听端口说明:

  • 8001 端口:Higress UI 控制台入口。
  • 8080 端口:网关 HTTP 协议入口。
  • 8443 端口:网关 HTTPS 协议入口。
登陆 Higress 控制台进行配置
  1. 打开浏览器并输入地址 http://127.0.0.1:8001 访问 Higress 控制台。
  1. 初始化管理员账号(首次访问时):
    按照提示设置用户名和密码后,页面会自动跳转至登录界面。请使用刚才设置的信息登录控制台。
  1. 创建服务来源
    • 点击左侧菜单栏中的“服务来源”选项。
    • 点击右侧的“创建服务来源”按钮,填写如下信息后保存提交:
      • 服务类型:DNS域名
      • 服务名称:httpbin
      • 服务端口:80
      • 域名列表:httpbin.org
  1. 配置路由
    • 点击左侧菜单栏中的“路由配置”选项。
    • 点击右侧的“创建路由”按钮,按以下内容设置后保存提交:
      • 路由名称:my-route
      • 匹配规则:精确匹配,路径为 /get
      • 目标服务:从下拉列表中选择 httpbin.dns
测试生效
  1. 在浏览器地址栏输入 http://127.0.0.1:8080/get 来测试刚刚创建的路由是否正常工作。
  1. 如果一切配置无误,您应当能看到当前请求被代理到了 httpbin.org,该网站将以 JSON 格式返回您的请求详情。

以上即完成了Higress的单机版快速部署与基础配置流程。对于更高级别的定制化需求或生产环境下的部署建议参照官方文档中的其他指导。


http://www.ppmy.cn/news/1545143.html

相关文章

【第六章·循环控制结构】第五节:流程的转移控制

目录 goto 语句 break 语句 示例:使用 goto 和 break 实现读入正整数程序,遇负数终止 用 goto 语句编程实现 用 break 语句编程实现 break 语句与 goto 语句的区别 continue 语句 break 语句与 continue 语句的区别 示例:使用 conti…

香橙派Zero3部署Talebook电子书库结合内网穿透随时随地享受阅读乐趣

文章目录 前言1. 添加镜像源2. 安装Talebook3. 简单使用介绍4. 安装内网穿透工具5. 配置固定公网地址 前言 本文主要介绍如何在刷了CasaOS轻NAS系统的香橙派Orange Pi Zero3中,使用Docker本地部署Talebook电子书管理系统并结合cpolar内网穿透实现远程管理本地书籍与…

DS二叉树--赫夫曼树解码

题目描述 已知赫夫曼编码算法和程序,在此基础上进行赫夫曼解码 可以增加一个函数:int Decode(const string codestr, char txtstr[]);//输入编码串codestr,输出解码串txtstr 该方法如果解码成功则返回1,解码失败则返回-1&…

Browserslist 配置

Browserslist 是一个工具和规范,用于定义和共享支持的浏览器列表,以便在前端开发中管理不同工具的兼容性。这些工具可以包括 Babel、Autoprefixer、ESLint 等,它们都可以使用 Browserslist 提供的配置来确定应支持哪些浏览器及其版本。 主要…

【Springboot问题】创建springboot项目后没有Resources文件夹及application文件

问题描述: 在创建springboot项目之后,由于项目识别的问题,没有出现资源文件夹以及application文件。 解决方法: 但是此刻依旧没有application.yml文件,创建

服务器上删除超大文件夹的解决方案

1.示例主脚本 delete_all_folders.sh 它会遍历指定目录下的所有子目录&#xff0c;并调用 delete_files.sh 脚本删除每个子目录中的文件和空目录 #!/bin/bash# 检查是否指定了根目录路径 if [ -z "$1" ]; thenecho "Usage: $0 <root_directory>"ex…

(十四)JavaWeb后端开发——MyBatis

目录 1.MyBatis概述 2.MyBatis简单入门 3.JDBC&#xff08;了解即可&#xff09; 4.数据库连接池​ 5.lombok 6.MyBatis基本操作 7.XML映射文件 8.动态SQL 8.1 if标签 8.2 foreach标签 8.3 sql/include标签​ 1.MyBatis概述 MyBatis是一款优秀的持久层&#xff08…

大模型的常用指令格式 --> ShareGPT 和 Alpaca (以 llama-factory 里的设置为例)

ShareGPT 格式 提出背景&#xff1a;ShareGPT 格式起初来自于用户在社交平台上分享与聊天模型的对话记录&#xff0c;这些记录涵盖了丰富的多轮对话内容。研究者们意识到&#xff0c;这类真实的对话数据可以帮助模型更好地学习多轮对话的上下文保持、回应生成等能力。因此&…