Higress 重磅更新:AI 能力全面开源,云原生能力再升级

作者:澄潭、钰诚

新版本简介

Higress 最新的 1.4 版本基于为通义千问,以及多家云上 AGI 厂商客户提供 AI 网关的积累沉淀,开源了大量 AI 原生的网关能力。同时也在 Ingress、可观测、流控等云原生能力上做了全方位升级:

  1. AI 能力全面开源: 提供包含安全防护、多模型适配、可观测、缓存、提示词工程等领域在内的多个开箱即用插件,核心能力例如:

    1. AI 代理插件:支持对接多厂商协议,共支持15家 LLM 提供商,基本涵盖国内外主流大模型厂商。
    2. AI 内容审核插件:支持对接阿里云内容安全云服务,可以拦截有害语言、误导信息、歧视性言论、违法违规等内容。
    3. AI 统计插件:支持统计 Token 吞吐,支持实时生成 promethus metrics,以及在访问日志中打印相关信息。
    4. AI 限流插件:支持基于 Token 吞吐进行后端保护式限流,也支持面向调用租户配置精确的调用额度限制。
    5. AI 开发插件集:提供包含 LLM 结果缓存、提示词装饰等相关能力,可以助力AI应用的开发构建。
  2. 云原生能力升级:

    1. 优化超大规模路由配置:10000 个路由规模下,新增一条路由的生效时间从 1.3 版本的 10 秒优化至 3 秒,对比 ingress-nginx controller 等其他网关具备显著优势。
    2. 简化 HTTPS 证书管理:支持全局一份配置统一管理域名证书,解决 ingress-nginx 需要做 secret 拷贝的证书管理痛点,同时支持对接 Let’s Encrypt 做免费证书自动签发和续签,且无需依赖 cert-manager。
    3. 提供集群流控插件:支持对接 Redis 做集群流控,可以实现 Header/URL 参数/IP 粒度的全局统一限流。
    4. 提供日志观测:Higress UI 控制台提供了开箱即用的网关日志查询能力。
    5. 支持极简部署:不依赖 K8s,一个 Docker 容器即可启动,方便个人开发者在本地环境使用。

AI 能力全面开源

从 2020 年开始,阿里云微服务团队通过服务阿里内部,以及云上客户的需求,沉淀了云原生网关 Higress 这个云产品,并在 2022 年云栖大会正式开源。在开源社区分享代码和知识的同时,通过大量开源用户的使用反馈,得以进一步完善自身能力。

今天,Higress 既是通义千问等阿里云核心 AI 业务的 API 网关,又是云上多家 AGI 厂商的的 API 网关, 我们也很乐于分享在接入这些场景过程中积累的心得体会,并将相关 AI 能力全面开源:

上图中所有插件均已开源,在最新版本 Higress 控制台可以直接开箱使用:

基于 AI 的插件开发工具也将在后续 Higress 的开源官网中放出,敬请期待。

承接 AI 流量的天然优势

AI 场景下,经过网关的流量有以下三大特征,是区别于其他业务流量的:

  • 长连接: 由 AI 场景常见的 Websocket 和 SSE 协议决定,长连接的比例很高,要求网关更新配置操作对长连接无影响,不影响业务。
  • 高延时: LLM 推理的响应延时比普通应用要高出很多,使得 AI 应用面向恶意攻击很脆弱,容易被构造慢请求进行并发攻击,攻击者的成本低,但服务端的开销很高。
  • 大带宽: 结合 LLM 上下文来回传输,以及高延时的特性,AI 场景对带宽的消耗远超普通应用,网关如果没有实现较好的流式处理能力和内存回收机制,容易导致内存快速上涨。

Higress 应对这样的流量特征,有着天然优势:

  • 长连接无损的热更新: 不同于 Nginx 变更配置需要 Reload,导致连接断开,Higress 基于 Envoy 实现了连接无损的真正热更新。
  • 安全网关能力: 基于 Higress 的安全网关能力可以提供 IP/Cookie 等多维度的 CC 防护能力,面向 AI 场景,除了QPS,还支持面向 Token 吞吐的限流防护。
  • 高效的流式传输: Higress 支持完全流式转发,并且数据面是基于 C++ 编写的 Envoy,在大带宽场景下,所需的内存占用极低。内存虽然相比 GPU 很廉价,但内存控制不当导致 OOM,导致业务宕机,损失不可估量。

下图来自 Higress 的开源用户 Sealos 将网关从 Ingress-nginx 迁移到 Higress 之后的资源用量对比,内存使用下降到了十分之一:

AI 代理插件

Higress 支持对接多家大模型厂商的 API,并且支持基于统一的协议(基于 OpenAI 的 API 协议)进行调用,可以用统一的协议来屏蔽实现细节,从而为开发者提供便利。

目前支持的大模型 API 有:通义千问,OpenAI/Azure OpenAI,月之暗面,百川智能,零一万物,智谱 AI,阶跃星辰,文心一言,腾讯混元,DeepSeek,Anthropic Claude,Groq,MiniMax,Ollama。

基本上已经涵盖了市面上主流的大模型 API,这部分工作是由多位社区开发者联合完成的,他们的 GitHub ID 分别是:CH3CHO, hanxiantao, lizzy-0323, goooogoooo, cr7258, xychen5, Claire-w, Chi-Kai, Suchun-sv

感谢这些充满热情的社区开发者,帮助 Higress 的 AI 能力可以触达更多的生态。目前还有部分其他模型的协议适配任务可以认领,欢迎有兴趣的开发者到这里认领:https://github.com/alibaba/higress/issues/940

使用 AI 代理插件还可以对接通义千问的 qwen long 模型,上传一份文档来实现 RAG ,如下图是我们将 Higress 文档配置在 AI 代理插件中(需要先通过通义千问提供的 API 上传获取到 fileId),然后使用的一个开源的基于 OpenAI 协议的前端工具 LobeChat 进行对话的效果,可以算是目前最简单的 RAG 应用搭建方式了:

如果你也想搭建类似的 RAG 应用可以参考这里:https://github.com/alibaba/higress/issues/1023#issuecomment-2163176897

AI 内容审核插件

大模型通常是通过学习互联网上广泛可用的数据来训练的,它们有可能在过程中学习到并复现有害内容或不良言论,因此,当大模型未经过适当的过滤和监控就生成回应时,它们可能产生包含有害语言、误导信息、歧视性言论甚至是违反法律法规的内容。正是因为这种潜在的风险,大模型中的内容安全就显得异常重要。

在 Higress 中,通过简单的配置即可对接阿里云内容安全 [ 1] ,为大模型问答的合规性保驾护航,内容安全提供了多种检测范围,用户可以在控制台进行配置:

插件配置示例:

serviceSource: dns
serviceName: safecheck
servicePort: 443
domain: green-cip.cn-shanghai.aliyuncs.com

请求响应示例:

配置后,如果请求/响应中包含了非法内容,被内容安全拦截后,网关会返回内容安全建议的回答:

AI 统计插件

相比于传统微服务,LLM 应用中主要通过 token 来衡量流量大小,针对此特点,我们构建了路由级、服务级、模型级的 token 用量观测能力,包括日志、监控以及告警。

下图是对网关上部署的通义千问服务的监控:

也可以在日志中打印出相关统计数据:

AI 限流插件

对于一款成熟的 API 网关产品,都应该具备两类限流能力,并且 Higress 也可以很好地满足这些需求:

在 AI 场景中,限流的需求不仅限于传统的每秒/每分/每小时/每天请求次数(QPS/QPM/QPH/QPD)的限流能力,还额外扩展到了每分/每小时/每天令牌数(TPM/TPH/TPD)的管理。“T”代表令牌(Token),它是一个用于衡量大型语言模型输入输出量的单位。对于 AI 应用,相比传统的请求数计量,Token 计量更能反应资源或成本占用。

如下图是 OpenAI 对于不同模型在 Tier 2 这个级别的调用方的限制,大部分 AI 产品也都有类似的限制:

AI 场景下,后端保护式限流也很重要,而且往往容易被忽视,尤其是很多 LLM 提供商都有免费的 Web 应用,一些黑灰产可能会爬取页面调用封装成 API 来提供给用户实现牟利。这种情况下就可以使用 Higress 的 IP、Cookie 等维度的保护式限流进行防护。

Higress 支持丰富的限流能力:

rule_name: limit_ip
rule_items:- limit_by_per_ip: from-remote-addrlimit_keys:- key: 1.1.1.1token_per_minute: 10- key: 1.1.1.0/24token_per_minute: 100- key: 0.0.0.0/0token_per_minute: 1000        
redis:service_name: redis.staticservice_port: 6379

AI 检索增强生成插件

基于该插件,可以通过对接阿里云向量检索服务实现 LLM-RAG 应用的开发,流程如图所示:

例如基于 CEC-Corpus [ 2] 数据集包含 332 篇突发事件的新闻报道的语料和标注数据,提取其原始的新闻稿文本,将其向量化后添加到阿里云向量检索服务,再在 Higress 中做相应插件配置,即可快速打造一个私域知识助手。

插件配置示例:

dashscope:apiKey: xxxxxxxxxxxxxxxxxxxxserviceName: dashscopeservicePort: 443domain: dashscope.aliyuncs.com
dashvector:apiKey: xxxxxxxxxxxxxxxxxxxxserviceName: dashvectorservicePort: 443domain: vrs-cn-xxxxxxxxxxxxxxxxxxxx.dashvector.cn-hangzhou.aliyuncs.comcollection: news_embedings

请求响应示例:

AI 缓存插件

该插件实现了将 LLM 响应进行抽取并缓存的功能,对于向 LLM API 高频请求相同问题的场景可以显著降低响应时延并节省成本。我们之前用 Higress + 通义千问进行技术内容翻译,可以看到 LLM 的翻译能力是很强的,Higress 官网的英文文档,也将基于 LLM 进行翻译。因为文档需要持续更新迭代,我们使用 Github Action 实现自动化的 CICD。结合这个 AI 缓存插件 + 文档分片翻译(如下图所示),就可以实现低成本且高效的文档自动化翻译流程。

AI 缓存插件后续还将进一步演进,支持基于问题向量相似度的 LLM 响应缓存召回,可以在 RAG 等封闭知识域场景,大幅降低 LLM API 的调用成本。在成本和效果之间做 trade-off 很有挑战,对此,我们专门举办了 Higress AI 网关挑战赛,欢迎大家参与。

AI 提示词模版插件

提示词模版插件用于快速构建固定格式的 Prompt,对于特定应用需要限制问题格式的场景会比较有帮助,可以在网关上配置 Prompt 模版,并基于大模型的能力来提供对应的 API。

插件配置示例:

templates:- name: developer-chattemplate:model: gpt-3.5-turbomessages:- role: systemcontent: '你是一个{{program}}专家,编程语言为{{language}}'- role: usercontent: '帮我写一个{{program}}程序'

请求示例:

{"template": "developer-chat""properties": {"program": "快速排序算法""language": "python"}
}

以上请求基于模板转化后向LLM发起的真实请求为:

{"model": "gpt-3.5-turbo","messages": [{"role": "system","content": "你是一个快速排序算法专家,编程语言为python"},{"role": "user","content": "帮我写一个快速排序算法程序"}]
}

AI 提示词修饰插件

提示词修饰插件同样用于对 Prompt 进行调整,支持在用户输入的 Prompt 前后添加额外的 Prompt,用户可以使用 Higress AI 网关来统一处理应用逻辑中需要操控 Prompt 的地方,让所有 LLM API 流量都经过 Higress 进行处理,自动完成 Prompt 的统一操控。

插件配置示例:

decorators:- name: data-assistantdecorator:prepend:- role: systemcontent: 如果有人问你关于插件的问题,你应该回答出所有插件的名称、功能、执行阶段以及执行优先级。append:- role: usercontent: 你应该以表格的形式回答,除了表格之外不要有其他内容。

请求响应示例:

AI 请求/响应转换插件

通过配置AI 请求/响应转换插件,用户可以不用写代码,直接使用自然语言的方式对网关的请求/响应进行修改。例如测试人员在测试 API 时,对待测 API 进行插件配置,将原始请求/响应作为 example,来生成进行边界条件测试的请求/响应。大模型很多时候会比人考虑的更全面,更容易测试出一些边界 case。

插件配置示例:

response:enable: trueprompt: "帮我修改以下HTTP应答信息,要求:1. content-type修改为application/json;2. body由xml转化为json;3.移除content-length。"
provider:serviceName: qwendomain: dashscope.aliyuncs.comapiKey: sk-xxxxxxxxxxxxxxxxxxx

请求响应示例:

创建路由通过网关代理到 http://httpbin.org/xml,该接口会返回 xml 格式响应,通过插件处理可以得到 json 格式的响应:

{"slideshow": {"title": "Sample Slide Show","date": "Date of publication","author": "Yours Truly","slides": [{"type": "all","title": "Wake up to WonderWidgets!"},{"type": "all","title": "Overview","items": ["Why <em>WonderWidgets</em> are great","","Who <em>buys</em> WonderWidgets"]}]}
}

云原生能力升级

支持超大规模路由配置

**Sealos 的 Higress 实践吸引了不少同样有大规模 Ingress 管理痛点的大型企业用户采用 Higress,在用户的使用反馈下,我们持续优化这种超大规模的路由配置下,路由的变更速度。对比 1.3 版本,我们将速度提升了超过 3 倍,10000 个 Ingress 配置下,变更单个 Ingress 只需 3 秒即可生效。

下面是和同类网关(均为最新版本)的一组对比测试,在有 10000 个 Ingress 的情况下,新增一个 Ingress 后,请求网关验证创建路由的生效时间(判断 200 状态码);接着再删除该 Ingress, 请求网关验证移除路由的生效时间(判断 404 状态码),Higress 的优势显著:

简化 HTTPS 证书管理

ingress 的证书管理一直是个痛点,因为出于安全考虑, K8s 标准规范 ingress 资源只能使用相同命名空间下的 secret。所以在业务需要按命名空间隔离,但域名又相同的场景下,需要将 secret 复制多个副本到不同命名空间下,不仅让运维负担变重,也带来了安全隐患。

Higress 现在可以通过一份 ConfigMap 来做 Ingress 的全局证书管理:

apiVersion: v1
kind: ConfigMap
metadata:name: higress-httpsnamespace: higress-system
data:cert: |# 开启全局证书自动管理automaticHttps: true# 使用自动签发时,证书提前多久续签renewBeforeDays: 30# 证书自动签发配置,暂只支持 Let's EncryptacmeIssuer:- name: letsencryptemail: test@example.comcredentialConfig:# 对 foo.com 使用 Let's Encrypt 签发证书- domains:- foo.comtlsIssuer: letsencrypttlsSecret: foo-com-secret# 对匹配的域名使用特定的 secret- domains:  - statica.example.org- staticb.example.orgtlsSecret: static-example-org-certificate# 兜底证书,对于不匹配上面规则的域名开启- domains:  - "*"tlsSecret: default-certificate

这样所有 secret 都只需要放在 higress-system 命名空间下统一管理,但又可以生效到所有命名空间的 ingress 下(对应 ingress 无需再配置 secret 字段)。既减轻了运维负担,又提高了证书管理的安全性。

从上面这份配置也可以看到 Higress 还支持对接 Let‘s Encrypt 进行 HTTPS 免费证书的自动签发和续签,无需依赖 cert-manager。因此,Higress 不论是 K8s 场景下部署,还是 Standalone 模式部署(通过本地文件配置 ConfigMap),都可以用上这个能力。

提供集群流控插件

Higress 在 1.4 版本支持了在 Wasm 插件中去访问 Redis 服务,基于此能力,来自社区的贡献者韩贤涛(GitHub ID:hanxiantao)基于原本的 key-rate-limit 插件实现了 cluster-key-rate-limit 插件。从而能够实现基于 Redis 的全局精确限流。并且在原本插件只支持对可枚举值进行限流的能力上进行了扩展,支持不可枚举值的限流,例如对于每个 IP,每个 Cookie 分别独立计算限流。AI 限流插件也是在此基础上扩展实现的。

提供日志观测

Higress 开箱即用的 o11y (Observability) 套件增加了日志采集和分析的能力,通过以下 Helm 安装/升级命令即可使用:

helm repo add higress https://higress.cn/helm-charts
# 安装
helm install higress higress/higress --set global.o11y.enabled=true -n higress-system --create-namespace
# 升级
helm upgrade higress higress/higress --set global.o11y.enabled=true --reuse-values -n higress-system --create-namespace

开启后即可在 Higress 控制台上看到访问日志,并可以使用 Loki 进行日志分析:

支持极简部署

Higress 现在可以通过一个 Docker 容器完成启动,方便个人开发者在本地搭建学习,或者用于搭建个人站点。启动方式如下:

# 创建一个工作目录
mkdir higress; cd higress
# 启动 higress,配置文件会写到工作目录下
docker run -d --rm --name higress-ai -v ${PWD}:/data \-p 8001:8001 -p 8080:8080 -p 8443:8443  \higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:1.4.1

监听端口说明如下:

  • 8001 端口:Higress UI 控制台入口
  • 8080 端口:网关 HTTP 协议入口
  • 8443 端口:网关 HTTPS 协议入口

Higress 所有 Docker 镜像都一直使用自己独享的仓库,不受 Docker Hub 国内不可访问的影响,欢迎大家使用~


参与 Higress 社区

欢迎更多小伙伴一起参与到 Higress 社区的建设中,近期的社区活动有:

  • 22.5万奖金池|Higress AI 网关编程挑战赛启动
  • GLCC 开源夏令营的 Higress 三大课题,均有6000元奖励:https://www.gitlink.org.cn/glcc/2024/projects

了解更多社区动态,可以加入 Higress 微信/钉钉群(群号:30735012403 ):

相关链接:

[1] 阿里云内容安全

https://help.aliyun.com/document_detail/28417.html?spm=a2c4g.28415.0.0.1dab1f55pipQr9

[2] CEC-Corpus

https://github.com/shijiebei2009/CEC-Corpus

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/56776.shtml

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

相关文章

VS code部署Vue项目Demo

在之前已经在IDEA中部署过vue项目demo。本次在上次基础上进行。 IDEA中Vue的安装和使用【window10】_idea安装vue-CSDN博客 步骤一、安装VSCode 双击安装即可 步骤二&#xff1a;检查npm是否安装 步骤三&#xff1a;检查vue是否安装 &#xff08;vue create 项目名 只要在v…

Leetcode 单词规律

即判断给定的模式字符串&#xff08;pattern&#xff09;和单词字符串&#xff08;s&#xff09;是否遵循相同的对应规则。具体来说&#xff0c;就是要判断 pattern 中的字符与 s 中的单词是否存在一一对应的关系&#xff0c;即双射&#xff08;bijection&#xff09;。 算法思…

【解决办法】git clone报错unable to access ‘xxx‘: SSL certificate problem

git clone 是 Git 版本控制系统中的一个基本命令&#xff0c;用于从远程仓库复制一个完整的版本库到本地。这个命令不仅复制远程仓库中的所有文件&#xff0c;还复制仓库的历史记录&#xff0c;使得你可以在本地进行版本控制操作&#xff0c;如提交&#xff08;commit&#xff…

Electron+Vue实现两种方式的截屏功能

本次介绍的截屏功能一共有两种分别是在electron环境中与非electron环境中 非electron环境 这个环境下会有一些限制&#xff1a; 1.只能截浏览器中的画面 2.如果里面有iframe或者base64的图片会加载不出来&#xff08;这个会有解决办法&#xff09; yarn add -D js-web-scree…

Java爬虫:获取商品评论数据的高效工具

在电子商务的激烈竞争中&#xff0c;商品评论作为消费者购买决策的重要参考&#xff0c;对于商家来说具有极高的价值。它不仅能够帮助商家了解消费者的需求和反馈&#xff0c;还能作为改进产品和服务的依据。Java爬虫技术&#xff0c;以其稳健性和高效性&#xff0c;成为了获取…

基于Spring Cloud的电商系统设计与实现——用户与商品模块的研究(上)

操作系统&#xff1a;Windows Java开发包&#xff1a;JDK1.8 项目管理工具&#xff1a;Maven3.6.0 项目开发工具&#xff1a;IntelliJIDEA 数据库&#xff1a;MySQL Spring Cloud版本&#xff1a;Finchley.SR2 Spring Boot版本&#xff1a;2.0.6.RELEASE 目录 用户模块—user-…

YOLO系列入门:1、YOLO V11环境搭建

YOLO了解 yolo检测原理 yolo是目标检测模型&#xff0c;目标检测包含物体分类、位置预测两个内容。目前yolo的开发公司官网为&#xff1a;https://docs.ultralytics.com/zh截止到目前2024年10月&#xff0c;最新的是yolo11。关于YOLO的介绍可以参考这篇文章&#xff1a;https…

[Javase]封装、继承、多态与异常处理

文章目录 一、前言二、封装1、封装的思想2、封装代码层面的体现 三、继承1、继承的概念和好处2、继承代码层面的体现 四、多态1、多态的概念2、多态的好处和三要素2、多态代码层面的体现 五、异常处理1、try-catch-finally结构详解2、throw\throws 一、前言 本文章适合有一定面…

10.15.2024刷华为OD C题型(二)

10.15.2024刷华为OD C题型&#xff08;二&#xff09; 密码输入检测智能成绩表 如果是目标院校150分能过&#xff0c;而且这道题是两百分的话我就阿弥陀佛了。 这类简单类型的字符串处理题目一看就有思路&#xff0c;起码能做&#xff0c;遇到那种稍微加点数学的&#xff0c;感…

【从零开始的LeetCode-算法】3099. 哈沙德数

如果一个整数能够被其各个数位上的数字之和整除&#xff0c;则称之为 哈沙德数&#xff08;Harshad number&#xff09;。给你一个整数 x 。如果 x 是 哈沙德数 &#xff0c;则返回 x 各个数位上的数字之和&#xff0c;否则&#xff0c;返回 -1 。 示例 1&#xff1a; 输入&am…

MySQL增删改进阶

目录 1.数据库约束 1.1约束类型 1.2 not null约束 1.3 unique&#xff1a;唯一约束 1.4 default&#xff1a;默认约束 1.5 primary key&#xff1a;主键约束 1.6 foreign key:外键约束 1.7 check约束&#xff08;了解&#xff09; 2.表的设计 3.新增&#xff08;进阶&…

刷题训练之多源 BFS

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练掌握多源 BFS算法。 > 毒鸡汤&#xff1a;学习&#xff0c;学习&#xff0c;再学习 ! 学&#xff0c;然后知不足。 > 专栏选自&#xff1a;刷…

C++(stack和queue)

1. stack的介绍、使用和实现 1.1 stack的介绍 stl里的stack其实和数据结构内的stack和前面数据结构的栈不能说百分百一样&#xff0c;但也有百分之90是一样的&#xff0c;他们的特性都是LIFO&#xff08;last in first out&#xff09;先进后出的原则&#xff0c;前面有类似的…

VideoCLIP-XL:推进视频CLIP模型对长描述的理解

摘要 对比语言-图像预训练&#xff08;CLIP&#xff09;已被广泛研究并应用于众多领域。然而&#xff0c;预训练过程中对简短摘要文本的重视阻碍了CLIP理解长描述的能力。在视频方面&#xff0c;这个问题尤为严重&#xff0c;因为视频通常包含大量详细内容。在本文中&#xff…

如何看一个flutter项目的具体flutter版本

查看pubspec.lock文件 这个项目实际运行的就是 flutter 3.16.6 版本的

Leetcode 1489. 找到最小生成树里的关键边和伪关键边

1.题目基本信息 1.1.题目描述 给你一个 n 个点的带权无向连通图&#xff0c;节点编号为 0 到 n-1 &#xff0c;同时还有一个数组 edges &#xff0c;其中 edges[i] [fromi, toi, weighti] 表示在 fromi 和 toi 节点之间有一条带权无向边。最小生成树 (MST) 是给定图中边的一…

MFC扩展库BCGControlBar Pro v35.1新版亮点:改进网格控件性能

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版 v35.1已全新发布了&#xff0c;这个版本改进网格控件的性能、增强工具栏编辑器功能等。 …

【puppeteer】wvp-puppeteer制作 过程

目录 最后的结论 制作windows&ubuntu的docker 重启桌面上的docker 命令重启 通过 Docker Desktop 图形界面重启 制作centos docker 测试 参考文档 最后的结论 ubuntu && windows 使用 dualvenregistry:5000/wvp-puppeteer:1.0 centos7 使用&#xff1a;…

通过OpenCV实现 Lucas-Kanade 算法

目录 简介 Lucas-Kanade 光流算法 实现步骤 1. 导入所需库 2. 视频捕捉与初始化 3. 设置特征点参数 4. 创建掩模 5. 光流估计循环 6. 释放资源 结论 简介 在计算机视觉领域&#xff0c;光流估计是一种追踪物体运动的技术。它通过比较连续帧之间的像素强度变化来估计图…

第6篇:无线与移动网络

目录 引言 6.1 无线网络的基础概念 6.2 无线局域网&#xff08;WLAN&#xff09;与IEEE 802.11 6.3 蓝牙与无线个域网&#xff08;WPAN&#xff09; 6.4 无线城域网&#xff08;WMAN&#xff09;与WiMax 6.5 ZigBee与智能家居 6.6 移动蜂窝网络&#xff08;3G/4G/5G&…