华为云 OBS 私有桶 + CDN 加速:从 SignatureDoesNotMatch 到彻底解决
华为云 OBS 私有桶 CDN 加速从 SignatureDoesNotMatch 到彻底解决一个SignatureDoesNotMatch错误牵出 S3 签名协议三代演进、CDN 回源 Host 陷阱、以及私有桶分发的最佳实践。本文从一次真实的线上故障出发逐层剥开问题最终给出生产级解决方案。目录一、问题现场二、第一反应是不是 AK/SK 错了三、根因定位签名 Host ≠ 验签 Host四、签名协议全景V2 → V4 → V4A五、为什么短 URL能用、长 URL不能用六、三条解决路线七、推荐方案CDN URL 鉴权 OBS 回源鉴权八、完整代码九、控制台配置清单十、踩坑备忘十一、总结一、问题现场业务架构很常见用户浏览器 │ ▼ CDN 加速域名oss.xxx.com │ 回源 ▼ 华为云 OBS 私有桶obs.cn-north-4.myhuaweicloud.com用 boto3 生成预签名 URL把 host 替换成加速域名后给用户下载importboto3frombotocore.configimportConfig clientboto3.client(s3,endpoint_urlhttps://obs.cn-north-4.myhuaweicloud.com,region_namecn-north-4,aws_access_key_idAK,aws_secret_access_keySK,configConfig(signature_versions3v4,s3{addressing_style:path}),)urlclient.generate_presigned_url(get_object,Params{Bucket:PROD-A2E456,Key:20260728/report.png},ExpiresIn3600,)# 聪明地把 host 换成加速域名urlurl.replace(obs.cn-north-4.myhuaweicloud.com,oss.xxx.com)浏览器访问403ErrorCodeSignatureDoesNotMatch/CodeMessageThe request signature does not match./Message/Error奇怪的是同事从 OBS 控制台分享出来的 URL 却能正常访问https://oss.xxx.com/PROD-A2E456/20260728/report.png ?AWSAccessKeyIdC6VJHSSFEPDKXFE72AL5 Expires1785229850 Signature9gfeDm5QQFJZo2pGZ%2F7j7MVR204%3D只有 3 个参数签名才 28 个字符。而我们 Python 生成的 URL 有 6 个参数签名 64 个字符还不能用。为什么二、第一反应是不是 AK/SK 错了先排除最基本的错误。写一个直连 OBS不经 CDN的自证脚本client.head_object(BucketPROD-A2E456,Key20260728/report.png)成功 → AK/SK/桶名/Key/Region 全对问题 100% 出在 CDN 那一跳。失败 → 先修凭证后面的都不用看。我们的结果是成功。那问题就锁定在请求经过 CDN 后OBS 验签失败。三、根因定位签名 Host ≠ 验签 Host3.1 请求链路中 Host 发生了什么① boto3 签名时 endpoint_url obs.cn-north-4.myhuaweicloud.com → 签名输入里 host obs.cn-north-4.myhuaweicloud.com ② 我们 replace 后 URL host oss.xxx.com ③ 浏览器请求 CDN Host 头 oss.xxx.com ④ CDN 回源 OBS 回源 HOST ???取决于 CDN 控制台配置 默认行为回源 HOST 源站地址 obs.cn-north-4.myhuaweicloud.com 或者被我们 replace 后的 oss.xxx.com取决于配置 ⑤ OBS 验签 用收到的 Host 头重建 Canonical Request → 算 SHA256 → 与签名比对只要 ① 和 ⑤ 的 host 不一致签名就废了。3.2 为什么 V4 签名里 host 这么重要V4 的 Canonical Request 长这样GET /PROD-A2E456/20260728/report.png X-Amz-AlgorithmAWS4-HMAC-SHA256X-Amz-Credential...X-Amz-SignedHeadershost host:oss.xxx.com ← 这一行参与了 SHA256 计算 host UNSIGNED-PAYLOADX-Amz-SignedHeadershost明确声明host 是签名的一部分。OBS 收到请求后用实际收到的 Host 头重建这段文本。如果 CDN 回源时把 Host 改成了obs.cn-north-4.myhuaweicloud.com那重建出来的文本就和签名时不同 → SHA256 不同 → 签名对不上 → 403。3.3 一句话根因V4 签名把 host 签进去了。你在客户端用真实地址签名然后把 URL 的 host 文本替换成加速域名或 CDN 回源时改了 Host导致 OBS 验签时重建的 Canonical Request 与签名时不一致。四、签名协议全景V2 → V4 → V4A要理解为什么控制台那条短 URL能用必须搞清楚 S3/OBS 签名的三个版本。4.1 总览V2LegacyV4SigV4V4ASigV4a发布年份~200620112022哈希算法HMAC‑SHA1HMAC‑SHA256ECDSA P‑256 SHA256签名输出20B → Base64 →28 字符32B → Hex →64 字符DER → Base64 →~72 字符签 Host❌不签✅ 签✅ 签签 Region❌✅✅可写*密钥派生直接用 SK4 层 HMAC 派生从 SK 派生 ECDSA 私钥AWS 状态已废弃当前标准仅 MRAP 场景华为云 OBS✅ 仍支持✅ 仍支持❌ 不支持boto3 配置signature_versions3signature_versions3v4signature_versions3v4a4.2 V2 签名详解StringToSignGET\n \n \n 1785229850\n /PROD-A2E456/20260728/report.png没有 host、没有 region、没有 service。签名计算importhmac,hashlib,base64 string_to_signGET\n\n\n1785229850\n/PROD-A2E456/20260728/report.pngsignaturebase64.b64encode(hmac.new(SK.encode(),string_to_sign.encode(),hashlib.sha1).digest()).decode()# → 9gfeDm5QQFJZo2pGZ/7j7MVR204预签名 URL 只有 3 个参数?AWSAccessKeyIdC6VJHSSFEPDKXFE72AL5 Expires1785229850 Signature9gfeDm5QQFJZo2pGZ%2F7j7MVR204%3D4.3 V4 签名详解四步流程① Canonical Request含 host ② StringToSign含 CredentialScope: date/region/service ③ Signing Key HMAC(HMAC(HMAC(HMAC(AWS4SK, date), region), service), aws4_request) ④ Signature HexHMAC(SigningKey, StringToSign)预签名 URL 有 6 个参数?X-Amz-AlgorithmAWS4-HMAC-SHA256 X-Amz-CredentialC6VJ.../20260728/cn-north-4/s3/aws4_request X-Amz-Date20260728T094800Z X-Amz-Expires3600 X-Amz-SignedHeadershost X-Amz-Signature9b4483004584032cc1c9091cb987affd3f84e5d5b4b86f9bc42bf3858950775f4.4 V4A 签名了解即可V4A 用ECDSA 非对称签名解决 Multi-Region Access Point 的跨 region 验签问题。CredentialScope 里 region 写*任何 region 的节点都能用公钥验签。华为云 OBS 不支持 V4A在华为云场景下无需关心。4.5 演进关系2006 V2SHA1不签 host/region │ 缺陷SHA1 弱、不绑 host → 可重定向、不绑 region → 可跨区重放 ▼ 2011 V4SHA256签 host region service date4 层密钥派生 │ 缺陷签名绑定单个 region无法跨区验签 ▼ 2022 V4AECDSA P-256region*非对称多区域通用V4A 的 Canonical Request 格式与 V4完全相同只是算法标识和签名步骤不同。V2 与 V4 之间没有向后兼容。五、为什么短 URL能用、长 URL不能用这是整件事的终极答案V2短 URLV4长 URL签名输入里有 host❌没有✅有CDN 回源改 Host无所谓host 不参与验签致命host 变了 → SHA256 不同 → 403能否安全 replace host✅ 能host 没被签❌ 不能host 被签了URL 参数3 个6 个签名长度28 字符64 字符一句话V2 的短和能用是同一个原因——它不签 host。V4 的长和不能用也是同一个原因——它签了 host而 CDN 改了 host。那条控制台生成的短 URL用的是 V2 签名华为云 OBS 控制台分享功能默认 V2。V2 的 StringToSign 里根本没有 host 这一行所以无论 CDN 回源时把 Host 改成什么OBS 验签时重建的 StringToSign 都和签名时一模一样。签名永远对得上。六、三条解决路线路线 APython 改用 V2 签名最快5 分钟configConfig(signature_versions3,s3{addressing_style:path})# s3 V2clientboto3.client(s3,endpoint_urlhttps://obs.cn-north-4.myhuaweicloud.com,...)urlclient.generate_presigned_url(get_object,Params{...},ExpiresIn3600)urlurl.replace(obs.cn-north-4.myhuaweicloud.com,oss.xxx.com)# V2 下安全✅ 改动最小立刻能用❌ SHA1 安全性弱不绑 host/regionAWS 已废弃华为云未来不保证路线 B坚持 V4对齐 Host需改 CDN 控制台configConfig(signature_versions3v4,s3{addressing_style:path})clientboto3.client(s3,endpoint_urlhttps://oss.xxx.com,...)# 加速域名urlclient.generate_presigned_url(...)# 不要 replace同时在 CDN 控制台把「回源 HOST」显式设为oss.cmrcglobal.com。✅ V4 安全性完整❌ 必须改 CDN 控制台若回源 HOST 被其他业务依赖则冲突路线 CCDN URL 鉴权 OBS 回源鉴权推荐长期正解客户端不做 OBS 签名改由 CDN 边缘节点做 URL 鉴权。✅ 彻底告别 Host 问题OBS 签名根本不存在了✅ URL 最短只有一个auth_key参数✅ 缓存友好忽略auth_key后缓存 key path✅ 安全性不低于 V2有时效 私有密钥⚠️ 需要配置 CDN URL 鉴权 OBS 回源鉴权一次性工作七、推荐方案CDN URL 鉴权 OBS 回源鉴权7.1 架构用户 ──① CDN URL鉴权──► CDN边缘节点 ──② OBS回源鉴权──► OBS私有桶 (auth_key参数) (验证通过才放行) (委托AK/SK) (桶仍私有)层谁验验什么作用① 用户→CDNCDN 边缘节点auth_key时间戳MD5防盗链、防遍历、限时② CDN→OBSOBSCDN 用委托凭证签名桶保持私有OBS 桶仍然是私有的。公网直连obs.cn-north-4.myhuaweicloud.com/桶/key照样 403。用户必须带合法的auth_key才能从 CDN 拿到内容。7.2 CDN URL 鉴权方式 A 原理URL 格式https://oss.xxx.com/key?auth_key{timestamp}-{rand}-{uid}-{md5hash}字段含义timestampUnix 时间戳十六进制rand随机串可为0uid用户标识可为0md5hashMD5({uri}-{timestamp}-{rand}-{uid}-{PrivateKey})CDN 边缘节点收到请求后没有auth_key→ 403timestamp 有效时长 当前时间→ 过期 403用 PrivateKey 重算 MD5对不上 → 403全通过 → 放行有缓存直接吐没缓存才回源关键优势验签在 CDN 边缘完成不涉及 OBS、不涉及 Host 头彻底告别SignatureDoesNotMatch。7.3 安全性“放弃签名后用户只要拼出 URL 就能访问”不是。不知道CDN_AUTH_KEYPrivateKey→ 算不出合法auth_key→ 拼不出有效 URL → 403auth_key有时效过期作废PrivateKey 只存在你的服务器和 CDN 控制台不出现在 URL 里OBS 桶仍私有绕过 CDN 直连 OBS 仍 403安全性对比方案安全等级Host 问题缓存友好V4 预签名 CDN★★★★❌ 改 Host 就崩❌ 6 个参数V2 预签名 CDN★★★✅ 无❌ 3 个参数CDN URL 鉴权★★★★✅ 完全不涉及✅ 忽略后 keypath裸 URL★✅✅八、完整代码# -*- coding: utf-8 -*- 华为云 OBS 私有桶 CDN 加速 CDN URL鉴权(方式A) 完整示例 架构用户 → CDN(auth_key鉴权) → OBS(回源鉴权/委托) → 私有桶 依赖pip install boto3 requests 凭证export HWC_AK... ; export HWC_SK... ; export CDN_AUTH_KEY... importosimportsysimporttimeimporthashlibimportloggingfromurllib.parseimportquoteimportboto3frombotocore.configimportConfig logging.basicConfig(levellogging.INFO,format%(asctime)s %(levelname)s | %(message)s)loglogging.getLogger(obs-cdn)# 配置 AKos.environ.get(HWC_AK,)SKos.environ.get(HWC_SK,)REGIONcn-north-4OBS_ENDPOINThttps://obs.cn-north-4.myhuaweicloud.comBUCKETPROD-A2E456ACCEL_DOMAINoss.xxx.comCDN_AUTH_KEYos.environ.get(CDN_AUTH_KEY,)# CDN控制台「URL鉴权」里的 PrivateKeyCDN_AUTH_TTL3600# 有效时长秒与控制台一致# CDN URL 鉴权方式 Adefcdn_auth_url(key:str,ttl:intCDN_AUTH_TTL)-str: 生成带 CDN URL鉴权(方式A) 的访问链接。 格式: https://domain/key?auth_key{timestamp}-{rand}-{uid}-{md5hash} timestampformat(int(time.time()),x)# 十六进制rand0uid0uri/quote(key,safe/)# MD5({uri}-{timestamp}-{rand}-{uid}-{PrivateKey})sign_strf{uri}-{timestamp}-{rand}-{uid}-{CDN_AUTH_KEY}md5hashhashlib.md5(sign_str.encode()).hexdigest()auth_keyf{timestamp}-{rand}-{uid}-{md5hash}returnfhttps://{ACCEL_DOMAIN}{uri}?auth_key{auth_key}# SDK 管理直连 OBSdefget_mgmt_client():上传/删除/head 用。endpoint 真实地址直连 OBS与 CDN 无关。returnboto3.client(s3,endpoint_urlOBS_ENDPOINT,region_nameREGION,aws_access_key_idAK,aws_secret_access_keySK,configConfig(signature_versions3v4,s3{addressing_style:path}),)defupload(key:str,body:bytes):get_mgmt_client().put_object(BucketBUCKET,Keykey,Bodybody)log.info(上传成功: %s,key)defself_check(key:str):直连 head_object自证凭证正确。get_mgmt_client().head_object(BucketBUCKET,Keykey)log.info(自证通过直连 OBS 正常。)# 验证 defverify(url:str,tag:str):importrequests rrequests.get(url,timeout15)log.info([%s] HTTP %d len%d,tag,r.status_code,len(r.content))ifr.status_code403:log.info([%s] body: %s,tag,r.text[:300])# 主流程 defmain():ifnotAKornotSKornotCDN_AUTH_KEY:log.error(请设置 HWC_AK / HWC_SK / CDN_AUTH_KEY 环境变量)sys.exit(1)key20260728/PROD-A2E456-202607281654-202607281751-utc8.png# 1. 上传 自证可选对象已存在则跳过# upload(key, bfake-png-data)self_check(key)# 2. 生成 CDN 鉴权 URLurlcdn_auth_url(key)log.info(CDN鉴权URL:\n %s,url)verify(url,cdn-auth)# 3. 对比裸 URL无 auth_key→ 应被 CDN 403barefhttps://{ACCEL_DOMAIN}/{quote(key,safe/)}verify(bare,bare-should-403)if__name____main__:main()运行输出示例2026-07-28 17:52:01 INFO | 自证通过直连 OBS 正常。 2026-07-28 17:52:01 INFO | CDN鉴权URL: https://oss.xxx.com/20260728/PROD-A2E456-...png?auth_key6887a3fe-0-0-a1b2c3d4e5f6... 2026-07-28 17:52:02 INFO | [cdn-auth] HTTP 200 len245760 2026-07-28 17:52:02 INFO | [bare-should-403] HTTP 403 len0九、控制台配置清单#位置操作说明1CDN → 域名 → 源站配置源站类型 OBS 桶开启OBS 回源鉴权 委托授权让 CDN 能读私有桶2CDN → 域名 → 访问控制 →URL 鉴权方式 APrivateKey 你的密钥有效时长 3600s与代码里CDN_AUTH_KEY一致3CDN → 域名 → 缓存配置忽略auth_key参数或忽略全部 URL 参数⚠️ 极易遗漏否则缓存命中率归零4OBS 桶 → 权限保持私有不要开公共读5IAM → 委托创建 CDN → OBS 的委托若控制台提示一次性步骤 3 是最容易踩的坑CDN 默认把整个 query string 当缓存 key。auth_key每次都不同 → 每次都是新缓存 → 永远回源 → 流量费爆炸。必须忽略。十、踩坑备忘坑 1对 V4 预签名 URL 做url.replace(host)# ❌ 致命错误V4 下urlurl.replace(obs.cn-north-4.myhuaweicloud.com,oss.cmrcglobal.com)V4 签了 hostreplace 后 host 与签名脱钩 → 必 403。V2 下这个操作是安全的host 没被签但不要养成这个习惯。坑 2往 URL 加随机参数破缓存# ❌ 不要这么干url_tstr(time.time())对 V4 预签名 URL额外 query 参数会被纳入 Canonical Request → 签名 mismatch → 403。对 CDN 鉴权 URL如果没忽略参数每个_t值都是独立缓存 → 命中率归零。正确做法在 CDN 控制台对指定 URL 做「刷新」。坑 3对 4xx 响应配了长缓存CDN 缓存规则里如果403 → 缓存 300s那第一次 403 后5 分钟内所有请求都直接返回缓存的 403你改了配置也看不到效果。排查时对该 URL 做一次「刷新」或用全新 key 的对象测试。坑 4CDN 预热用了 OBS 真实地址# ❌ 预热 URL 的 host 必须是加速域名 https://obs.cn-north-4.myhuaweicloud.com/CMRC-PROD-VT7J15/key.png → CDN.0108 错误 https://oss.xxx.com/PROD-A2E456/key.png → 正确CDN 预热是告诉边缘节点去缓存这个 URLURL 的 host 必须是 CDN 加速域名否则 CDN 不认识这个 URL → 报CDN.0108。坑 5addressing_style用virtual华为云 OBS 用 boto3 时如果用virtual风格桶名会被放到 host 里bucket.obs.cn-north-4...导致 host 解析和签名更复杂。统一用path风格桶名在 path 里host 只参与签名校验逻辑最清晰。十一、总结问题本质V4 签名绑定了 host CDN 回源改了 host SignatureDoesNotMatch解决思路演进阶段方案评价应急V2 签名signature_versions3 replace host能用但 SHA1 弱、不绑 host过渡V4 签名 endpoint 填加速域名 CDN 回源 HOST 对齐正确但脆弱依赖控制台配置终态CDN URL 鉴权 OBS 回源鉴权无 OBS 签名 → 无 Host 问题 → 安全 → 缓存友好核心原则签名时的 host 验签时 OBS 实际收到的 Host 头。任何破坏这条等式的操作replace host、CDN 改回源 HOST、virtual addressing都会导致SignatureDoesNotMatch。最彻底的解法让 OBS 签名从链路中消失——鉴权交给 CDN 边缘回源交给委托凭证客户端只拼一个带auth_key的短 URL。最终架构你的服务器 │ 用 CDN_AUTH_KEY 算 MD5 │ 拼 auth_key 参数 ▼ 用户浏览器 │ GET https://oss.xxx.com/key?auth_key6887a3fe-0-0-a1b2c3... ▼ CDN 边缘节点 │ 验 auth_key时效 MD5 │ 通过 → 有缓存直接吐 / 无缓存回源 ▼ OBS 私有桶 │ 验 CDN 委托凭证 │ 通过 → 返回对象 ▼ 用户拿到文件 ✅没有X-Amz-*没有 64 位 hex没有 host 对齐没有SignatureDoesNotMatch。写于 2026 年 7 月 28 日。从一个 403 错误出发走了三天弯路最终发现答案藏在V2 不签 host这五个字里。

相关新闻

证件照小程序开发实战教程

证件照小程序开发实战教程

证件照制作小程序搭建教程(以“证寸照制作快”为例) 本教程将指导你从零开始,搭建一个类似“证寸照制作快”或 zhimagagou.top 的证件照制作小程序。我们将从前端页面、后端逻辑到云开发服务进行全流程讲解,并提供核心功能代码示…

2026/7/29 6:11:37 阅读更多 →
嵌入式学习8

嵌入式学习8

C语言一维字符数组与二维整型数组全面详解(知识点坑点实操) 前言 今天系统学习了C语言数组中两大核心内容:一维字符型数组(字符串存储载体)、二维整型数组(表格/矩阵存储)。C语言本身没有string…

2026/7/29 6:11:37 阅读更多 →
Linux用户与权限管理看这一篇就够了!从零基础到实战,彻底搞懂用户/组/sudo

Linux用户与权限管理看这一篇就够了!从零基础到实战,彻底搞懂用户/组/sudo

Linux用户与权限管理从入门到实战:零基础也能轻松掌握从“小白懵圈”到“熟练配置”,一文搞定用户、组、权限那些事儿一、为什么我们要管用户和权限? 想象一下,你租了一间合租房,大门钥匙(root密码&#xf…

2026/7/29 6:11:37 阅读更多 →

最新新闻

如何在广州做小程序搭建?本地平台和线上平台差在哪?

如何在广州做小程序搭建?本地平台和线上平台差在哪?

在广州做小程序搭建,容易选错的地方是把“本地公司”和“线上平台”当成两种固定质量等级。本地团队不一定都擅长复杂开发,线上平台也不一定只能提供通用模板,真正差别在服务方式、产品边界和后续协作成本。企业应该先判断小程序是标准经营工…

2026/7/29 6:21:42 阅读更多 →
深入解析多边形填充算法:从扫描线到GPU光栅化的核心原理与实现

深入解析多边形填充算法:从扫描线到GPU光栅化的核心原理与实现

1. 项目概述:从像素到画面的魔法在屏幕上看到一个色彩斑斓的3D游戏角色,或是一幅由矢量图形软件绘制的复杂插画时,你是否想过,这些平滑的曲面和丰富的色彩是如何由计算机“画”出来的?答案的核心之一,就是多…

2026/7/29 6:21:42 阅读更多 →
C/C++动态内存管理:从原理到实战,掌握面试核心与工程实践

C/C++动态内存管理:从原理到实战,掌握面试核心与工程实践

1. 项目概述:为什么动态内存管理是C/C面试的“必答题”?最近在帮团队面试一些C/C方向的候选人,发现一个挺有意思的现象:无论面试官是问基础语法还是项目经验,最后总会绕回到动态内存管理这个话题上。候选人要么对mallo…

2026/7/29 6:21:42 阅读更多 →
Uniapp微信小程序分享功能全链路实践:从API调用到数据追踪

Uniapp微信小程序分享功能全链路实践:从API调用到数据追踪

1. 项目概述:为什么小程序分享功能值得深挖最近在做一个基于uniapp的微信小程序项目,产品经理提了一个看似简单的需求:在商品详情页和活动页增加分享功能。我一开始觉得这还不简单,不就是调用一下微信的API吗?但真正上…

2026/7/29 6:21:42 阅读更多 →
用Scratch编程可视化鸽巢原理:从数学公理到交互式模拟实验

用Scratch编程可视化鸽巢原理:从数学公理到交互式模拟实验

1. 从“鸽巢”到“抽屉”:一个数学原理的趣味化呈现如果你是一位数学老师,或者是一位想给孩子做数学启蒙的家长,你肯定遇到过这样的难题:如何把一个听起来有点抽象、甚至有点枯燥的数学原理,讲得让孩子眼睛发亮&#x…

2026/7/29 6:21:42 阅读更多 →
盘锦啤酒厂团购规则怎么问?亲测沟通流程清楚吗

盘锦啤酒厂团购规则怎么问?亲测沟通流程清楚吗

平时朋友小聚、单位餐桌、家里请客,买啤酒最怕什么?不是单纯怕贵,而是怕“问的时候说不清、拿到手不明白”:到底是不是鲜啤?生产日期是哪天?几箱起算团购?口味能不能混搭?冷藏怎么放…

2026/7/29 6:20:42 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻