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

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.mzph.cn/bicheng/59668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring中的 InitializingBean、BeanPostProcessor、@PostConstruct 等初始化动作的执行时机分析

初始化Bean的时序图如下: 小结说明: 1、相同点:InitializingBean 的(afterPropertiesSet方法)、BeanPostProcessor、PostConstruct 都是在bean的属性注入完毕之后才执行,都可以用来进行bean的初始化动作 2、初始化执行顺序优先级…

java ssm 校园快递物流平台 校园快递管理系统 物流管理 源码 jsp

一、项目简介 本项目是一套基于SSM的校园快递物流平台,主要针对计算机相关专业的和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具等。 项目都经过严格调试,确保可以运行! 二、技术实现 ​后端技术&#x…

最新整理:Selenium自动化测试面试题

1.selenium中如何判断元素是否存在? find_elements查找到的元素个数为0,find_element报错意味着元素不存在 2.如何判断元素是否出现? 判断元素是否出现,存在两种情况,一种是该元素压根就没有,自然不会出现;另外一种是有这样的…

【The Art of Unit Testing 3_自学笔记06】3.4 + 3.5 单元测试核心技能之:函数式注入与模块化注入的解决方案简介

文章目录 3.4 函数式依赖注入技术 Functional injection techniques3.5 模块化依赖注入技术 Modular injection techniques 写在前面 上一篇的最后部分对第三章后续内容做了一个概括性的梳理,并给出了断开依赖项的最简单的实现方案,函数参数值注入法。本…

用Puppeteer点击与数据爬取:实现动态网页交互

用Puppeteer与代理IP抓取51job招聘信息:动态网页交互与数据分析 引言 在数据采集领域,传统的静态网页爬虫方式难以应对动态加载的网页内容。动态网页通常依赖JavaScript加载数据,用户需要与页面交互才能触发内容显示。因此,我们…

10天进阶webpack---(1)为什么要有webpack

首先就是我们的代码是运行在浏览器上的,但是我们开发大多都是利用node进行开发的,在浏览器中并没有node提供的那些环境。这就造成了运行和开发上的不同步问题。 -----引言 浏览器模块化的问题: 效率问题:精细的模块划分带来了更…

Qt多边形填充/不填充绘制

1 填充多边形绘制形式 void GraphicsPolygonItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) {Q_UNUSED(option);Q_UNUSED(widget);//painter->setPen(pen()); // 设置默认画笔//painter->setBrush(brush()); // 设置默…

华为海思招聘-芯片与器件设计工程师-模拟芯片方向- 机试题-真题套题题目——共8套(每套四十题)

华为海思招聘-芯片与器件设计工程师-模拟芯片方向- 机试题-真题套题题目分享——共九套(每套四十题) 岗位——芯片与器件设计工程师 岗位意向——模拟芯片 真题题目分享,完整题目,无答案(共8套) 实习岗位…

Centos Linux 7 搭建邮件服务器(postfix + dovecot)

准备工作 1. 一台公网服务器(需要不被服务商限制发件收件的,也就是端口25、110、143、465、587、993、995不被限制),如有防火墙或安全组需要把这些端口开放 2. 一个域名,最好是com cn org的一级域名 3. 域名备案&am…

Stable Diffusion Web UI 1.9.4常用插件扩展-WD14-tagger

Stable Diffusion Web UI 1.9.4 运行在 WSL 中的 Docker 容器中 tagger 插件的作用是,上传一张图片,反推这张图片可能的提示词。 使用场景就是,想要得到类似的图片内容时使用。 WD14-tagger 安装 Stable Diffusion WebUI WD14-tagger GitH…

信息安全建设方案,网络安全等保测评方案,等保技术解决方案,等保总体实施方案(Word原件)

1 概述 1.1 项目简介 1.2 测评依据 2 被测信息系统情况 2.1 定级情况 2.2 承载的业务情况 2.3 网络结构 2.4 被测对象资产 2.5 上次测评问题整改情况说明 3 测评范围与方法 3.1 测评指标 3.1.1 安全通用要求指标 3.1.2 安全扩展要求指标 3.1.3 其他安全要求指标 3.1.4 不适用安…

linux dpkg 查看 安装 卸载 .deb

1、安装 sudo dpkg -i google-chrome-stable.deb # 如果您在安装过程中或安装和启动程序后遇到任何依赖项错误, # 您可以使用以下apt 命令使用-f标志解析​​和安装依赖项,该标志告诉程序修复损坏的依赖项。 # -y 表示自动回答“yes”,在安装…

架构零散知识点

1 数据库 1.1 数据库范式 有一个学生表,主键是学号,含有学生号、学生名、班级、班级名,违反了数据库第几范式? --非主属性不依赖于主键,不满足第二范式 有一个订单表,包含以下字段:订单ID&…

电子电气架构 --- Trace 32(劳特巴赫)多核系统的调试

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…

哈希表与unordered_map

1.哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。搜索的效率取决于搜索过程中元素的比较次数,因此顺序结构中查找的时间复杂度O(N),平…

Python | Leetcode Python题解之第540题有序数组中的单一元素

题目&#xff1a; 题解&#xff1a; class Solution:def singleNonDuplicate(self, nums: List[int]) -> int:low, high 0, len(nums) - 1while low < high:mid (low high) // 2mid - mid & 1if nums[mid] nums[mid 1]:low mid 2else:high midreturn nums[l…

MongoDB笔记02-MongoDB基本常用命令

文章目录 一、前言二、数据库操作2.1 选择和创建数据库2.2 数据库的删除 3 集合操作3.1 集合的显式创建3.2 集合的隐式创建3.3 集合的删除 四、文档基本CRUD4.1 文档的插入4.1.1 单个文档插入4.1.2 批量插入 4.2 文档的基本查询4.2.1 查询所有4.2.2 投影查询&#xff08;Projec…

期权懂|股指期权开户门槛不够该怎么办?

期权小懂每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 股指期权开户门槛不够该怎么办&#xff1f; 股指期权开户门槛不够&#xff0c;可以考虑利用资管分仓账户‌&#xff0c;选择已开通期权交易资格的主账户进行分仓&#xff0c;账户…

数据库SQL学习笔记

第 1 章 绪论 1.1 数据库系统概述 1.1.1 四个基本概念 数据库系统(DBS) 定义&#xff1a;是指在计算机系统中引入数据库后的系统构成 构成&#xff1a;数据库&#xff0c;数据库管理系统&#xff08;及其开发工具&#xff09;&#xff0c;应用系统&#xff0c;数据库管理员…

嵌入式常用功能之通讯协议1--串口

嵌入式常用功能之通讯协议1--串口&#xff08;本文&#xff09; 嵌入式常用功能之通讯协议1--IIC 嵌入式常用功能之通讯协议1--SPI&#xff08;待定&#xff09; ...... 一、串口协议简介 1&#xff0c;简介 UART(异步串行通信)&#xff1a;时钟基准不是同一个&#xff08…