ArkTS 进阶之道(15):@BuilderParam 组件参数化边界——为啥 @Builder 能当参数传
ArkTS 进阶之道15BuilderParam 组件参数化边界——为啥 Builder 能当参数传本文是「ArkTS 进阶之道」系列第 15 篇续「ArkUI 组件设计」阶段。上一篇讲 Builder 绑渲染树节点复用篇 63——Builder 绑渲染树节点模板调用点嵌实例复用 UI 不返值。本文讲组件参数化边界BuilderParam 荬饰器收外部传的 Builder 片段——根因在绑渲染树节点参数槽不是普参数收值BuilderParam 荬饰器绑渲染树节点参数槽收外部 Builder 片段普参数不能收 UI 片段。能力系列篇 19 讲过 Builder 怎么用本文讲为哈 BuilderParam 收 Builder 合法普参数收 UI 报错——根因在渲染树节点参数槽绑定不是普参数收值。一、开篇BuilderParam 不是普参数收值是绑渲染树节点参数槽收片段你写 TypeScript/React 时UI 片段当参数传是「魔法」React 用childrenprop / render props 收 JSX// React 用 children prop / render props 收 JSX 片段 function MyCard({ title, content }: { title: string; content: React.ReactNode }) { return ( View Text{title}/Text {content} ← children prop 收 JSX 片段值返值收值魔法 /View ) } function Component() { return ( View MyCard title卡片1 content{Text内容片段/Text} / ← 传 JSX 值 /View ) } // React 用 children prop / render props 收 JSX 值是返值收值魔法你写鸿蒙 ArkTS 时BuilderParam绑渲染树节点参数槽收片段——不用返值收值// ArkTS BuilderParam 绑渲染树节点参数槽收 Builder 片段 Component struct MyCard { Prop title: string BuilderParam contentBuilder: () void ← BuilderParam 绑渲染树节点参数槽 build() { Column() { Text(this.title) this.contentBuilder() ← 嵌外部传的 Builder 片段绑渲染树节点不收值 } } } Entry Component struct Index { Builder MyContent() { Text(内容片段) } build() { Column() { MyCard({ title: 卡片1 }) { this.MyContent() ← 传 Builder 片段绑渲染树节点参数槽不收 JSX 值 } } } } // BuilderParam 绑渲染树节点参数槽收 Builder 片段不是普参数收 JSX 值魔法 vs 荬饰器的区别React 把 UI 片段当参数传用 children prop / render props 收 JSX 值返值收值魔法ArkTS 把 BuilderParam 当「绑渲染树节点参数槽荬饰器」不收值绑渲染树节点参数槽收 Builder 片段。根因不是魔法是渲染树节点参数槽绑定——BuilderParam 不收 UI 值是绑渲染树节点参数槽收外部 Builder 片段的荬饰器。二、根因BuilderParam 的渲染树节点参数槽绑定收片段机制鸿蒙 ArkUI 的 BuilderParam 是渲染树节点参数槽绑定收片段——子组件编译期把 BuilderParam 绑成渲染树节点参数槽父组件传 Builder 片段嵌槽复用 UI不是普参数收值来自三重绑定机制。机制 1BuilderParam 编译期绑渲染树节点参数槽——不是普参数收值BuilderParam 荬饰器编译期绑渲染树节点参数槽——把 BuilderParam 字段编成渲染树的可复用节点参数槽不是收 UI 值的普参数Component struct MyCard { Prop title: string BuilderParam contentBuilder: () void ← BuilderParam 荬饰器编译期绑渲染树节点参数槽 build() { Column() { Text(this.title) this.contentBuilder() ← 调用点嵌渲染树节点参数槽实例绑槽不收值 } } } // 编译期BuilderParam contentBuilder 绑成渲染树可复用节点参数槽 // 调用点this.contentBuilder() 嵌外部传的 Builder 片段绑渲染树节点槽不收 UI 值编译期绑参数槽BuilderParamcontentBuilder荬饰器编译期把字段绑成渲染树的可复用节点参数槽——调用this.contentBuilder()在调用点嵌渲染树节点参数槽实例绑槽不收 UI 值。绑槽不收值不是普参数收值。根因不是收值是渲染树节点参数槽绑定。机制 2父组件传 Builder 片段嵌槽复用——两种传法BuilderParam 爬饰器父组件传 Builder 片段嵌槽复用——trailing lambda 传单槽 / 显式参数传多槽复用子组件结构嵌外部片段// ✅ 传法1trailing lambda单 BuilderParam90% 场景 Component struct MyContentCard { Prop title: string BuilderParam contentBuilder: () void ← 单 BuilderParam 支持 trailing lambda build() { Column() { Text(this.title) this.contentBuilder() ← 嵌外部传的 content 片段 } } } Entry Component struct Index { Builder MyContent() { Text(内容) } build() { Column() { MyContentCard({ title: 卡片1 }) { this.MyContent() ← ✅ trailing lambda 传 Builder content 片段嵌槽 } } } } // ✅ 传法2显式参数多 BuilderParam带默认值覆盖 Component struct MyFullCard { Prop title: string BuilderParam contentBuilder: () void BuilderParam footerBuilder: () void this.DefaultFooter ← 带默认值的 BuilderParam Builder DefaultFooter() { Text(默认页脚) } build() { Column() { Text(this.title) this.contentBuilder() this.footerBuilder() } } } Entry Component struct Index { Builder MyContent() { Text(内容) } Builder MyFooter() { Text(外部页脚) } build() { Column() { MyFullCard({ title: 卡片2, contentBuilder: this.MyContent, footerBuilder: this.MyFooter }) // ✅ 显式参数传多 BuilderParamcontent footer 覆盖默认 MyFullCard({ title: 卡片3, contentBuilder: this.MyContent }) // ✅ 只传 contentfooter 显默认值 } } }父组件传片段嵌槽复用trailing lambda 传单 BuilderParam90% 场景首选——父组件调子组件后跟{ this.MyContent() }块传单片段嵌槽。显式参数传多 BuilderParam带默认值覆盖——父组件调子组件时参数传contentBuilder: this.MyContent, footerBuilder: this.MyFooter多片段嵌多槽footerBuilder 带默认值不传显默认。根因不是普参数传值是渲染树节点参数槽嵌片段复用。机制 3trailing lambda 单槽约束——只支持单 BuilderParamBuilderParam 爬饰器trailing lambda 单槽约束——trailing lambda 传法只支持单 BuilderParam 子组件多 BuilderParam 要显式参数传// ✅ trailing lambda子组件只能有单 BuilderParam约束 Component struct MyContentCard { Prop title: string BuilderParam contentBuilder: () void ← 单 BuilderParam 支持 trailing lambda build() { Column() { Text(this.title); this.contentBuilder() } } } Entry Component struct Index { Builder MyContent() { Text(内容) } build() { Column() { MyContentCard({ title: 卡片1 }) { this.MyContent() ← ✅ trailing lambda 传单 BuilderParam 合法 } } } } // ❌ trailing lambda 多 BuilderParam 报错子组件有多 BuilderParam // Component // struct MyFullCard { // BuilderParam contentBuilder: () void // BuilderParam footerBuilder: () void ← 多 BuilderParam 不支持 trailing lambda // } // MyFullCard({ title: 卡片 }) { this.MyContent() } ← trailing lambda 多 BuilderParam 报错 // 报错In the trailing lambda case, MyFullCard must have one and only one property decorated with BuilderParamtrailing lambda 单槽约束trailing lambda 传法只支持子组件有单 BuilderParam——多 BuilderParam 时 trailing lambda 不知道传哪个槽报错。多 BuilderParam 要用显式参数传法参数名指明传哪个槽。根因不是语法限制是 trailing lambda 单槽映射的约束——trailing lambda 只能绑单槽多槽要显式参数指明。机制 4普参数收 UI 报错边界——收值跟渲染树绑定冲突普参数不能收 UI 片段——BuilderParam 绑渲染树节点参数槽不收值普参数收 UI 片段当值传跟渲染树绑定冲突报错Component struct MyCard { Prop title: string BuilderParam contentBuilder: () void ← ✅ BuilderParam 绑渲染树节点参数槽 // ❌ 普通参数不能收 UI 片段 // content: string ← 普通参数收 string 值合法收 UI 片段报错 build() { Column() { Text(this.title) this.contentBuilder() } } } Entry Component struct Index { Builder MyContent() { Text(内容) } build() { Column() { // ❌ 普通参数收 UI 片段报错收值跟渲染树绑定冲突 // MyCard({ title: 卡片, content: this.MyContent() }) ← 普通参数收 UI 值报错 // ✅ BuilderParam 绑渲染树节点参数槽收 Builder 片段 MyCard({ title: 卡片 }) { this.MyContent() ← BuilderParam 收 Builder 片段绑槽合法 } } } } // 普通参数收 UI 报错根因普参数收值UI 片段是渲染树节点不是值 // BuilderParam 收 Builder 合法根因绑渲染树节点参数槽收片段嵌槽不收值普参数收 UI 报错边界普参数收 UI 片段当值传报错根因是普参数收值string/number 等UI 片段是渲染树节点不是值——普参数收 UI 值跟渲染树节点绑定冲突报错。BuilderParam 收 Builder 合法根因是绑渲染树节点参数槽收片段嵌槽不收值。根因不是语法限制是渲染树节点参数槽绑定 vs 普参数收值的边界冲突。三、真机配图BuilderParam 组件参数化边界——绑渲染树节点参数槽收片段初始态3 卡片均嵌外部传的 content 片段、卡片2/3 footer 分别显外部/默认均组件参数化边界初始值点调按钮后3 卡片 content 均刷到 count1、BuilderParam 传的片段都刷均组件参数化边界对比证据齐对比证据点改 count 按钮后 3 卡片 content 均刷到 count1BuilderParam 传的片段都刷了绑渲染树节点参数槽追踪依赖卡片2 显外部页脚显式参数覆盖默认卡片3 显默认页脚只传 content 不传 footer。BuilderParam 不是普参数收值是绑渲染树节点参数槽收片段——BuilderParam 荬饰器编译期绑渲染树节点参数槽父组件传 Builder 片段嵌槽复用 UI 不收值。普参数收 UI 报错根因是普参数收值跟渲染树节点绑定冲突。四、真解法BuilderParam 组件参数化的三个场景场景 1trailing lambda 传单片段90% 场景首选子组件嵌外部片段Component struct MyContentCard { Prop title: string BuilderParam contentBuilder: () void ← 单 BuilderParam 支持 trailing lambda build() { Column() { Text(this.title) this.contentBuilder() ← 嵌外部传的 content 片段 } } } Entry Component struct Index { Builder MyContent() { Text(内容片段) } build() { Column() { MyContentCard({ title: 卡片1 }) { this.MyContent() ← trailing lambda 传 Builder content 片段 } } } }为哈能跑trailing lambda 传单片段——子组件单 BuilderParam父组件调后跟{ }块传单片段嵌槽。首选这个90% 的场景子组件嵌外部片段用 trailing lambda 就够。要写「子组件结构嵌外部片段」时用这个——不用 children prop/render propsBuilderParam 绑渲染树节点参数槽 trailing lambda 传片段嵌槽。场景 2显式参数传多片段多 BuilderParam带默认值覆盖Component struct MyFullCard { Prop title: string BuilderParam contentBuilder: () void BuilderParam footerBuilder: () void this.DefaultFooter ← 带默认值 Builder DefaultFooter() { Text(默认页脚) } build() { Column() { Text(this.title) this.contentBuilder() ← 嵌 content 片段 this.footerBuilder() ← 嵌 footer 片段默认/外部覆盖 } } } Entry Component struct Index { Builder MyContent() { Text(内容) } Builder MyFooter() { Text(外部页脚) } build() { Column() { MyFullCard({ title: 卡片, contentBuilder: this.MyContent, footerBuilder: this.MyFooter }) // 显式参数传多片段footer 覆盖默认 MyFullCard({ title: 卡片, contentBuilder: this.MyContent }) // 只传 contentfooter 显默认 } } }为哈能跑显式参数传多片段——子组件多 BuilderParam父组件参数名指明传哪个槽带默认值的不传显默认。要写「子组件嵌多外部片段content footer 等」时用这个——显式参数传多 BuilderParam不用 trailing lambda单槽约束。场景 3BuilderParam 带默认值复用子组件自带片段外部不传显默认Component struct MyCard { Prop title: string BuilderParam contentBuilder: () void this.DefaultContent ← 带默认值 Builder DefaultContent() { Text(默认内容外部没传显) } build() { Column() { Text(this.title) this.contentBuilder() ← 嵌片段外部传/默认 } } } Entry Component struct Index { Builder MyContent() { Text(外部内容) } build() { Column() { MyCard({ title: 卡片1 }) ← 不传 content显默认内容 MyCard({ title: 卡片2 }) { this.MyContent() ← 传 content显外部内容覆盖默认 } } } }为哈能跑BuilderParam 带默认值复用——子组件自带片段外部不传显默认 / 外部传覆盖默认。要写「子组件自带片段外部可选覆盖」时用这个——BuilderParam 带默认值不用外部必传外部可选覆盖显默认。五、一句话哲学BuilderParam 不是普参数收值是绑渲染树节点参数槽收 Builder 片段。ArkUI 的 BuilderParam 荬饰器编译期绑渲染树节点参数槽父组件传 Builder 片段嵌槽复用 UI 不收值。根因不是普参数收值是渲染树节点参数槽绑定——BuilderParam 编译期绑参数槽渲染树可复用节点参数槽 父组件传片段嵌槽复用trailing lambda 单槽 / 显式参数多槽 trailing lambda 单槽约束只支持单 BuilderParam 普参数收 UI 报错边界普参数收值跟渲染树节点绑定冲突。对比 React children prop / render props 收 JSX 值ArkTS BuilderParam 绑渲染树节点参数槽不收值。组件设计阶段串讲Builder 绑渲染树节点复用篇 63调用点嵌节点实例复用 UI 不返值→ BuilderParam 绑渲染树节点参数槽收片段篇 64父组件传片段嵌槽复用子组件结构——两篇讲清 ArkUI 组件复用哲学渲染树节点绑定复用Builder 绑节点模板 / BuilderParam 绑参数槽根因都是绑渲染树节点不收值不返值。从「单组件内复用」Builder到「跨组件传片段复用」BuilderParam扩展。系列预告下篇篇 65如续讲 Styles/Extend 样式复用边界或系列就此打住。五阶段哲学体系类型哲学50-52→ 作用域哲学53-55→ 状态哲学56-59→ 渎染哲学60-62→ 组件设计63讲清 ArkTS/ArkUI 进阶哲学。能力系列回链能力系列篇本文进阶点篇 19 Builder 用法BuilderParam 组件参数化边界根因绑渲染树节点参数槽篇 16 组件复用用法上一篇Builder 绑渲染树节点复用根因篇 13 State 基础用法状态哲学State 赋值就刷 UI 依赖追踪真机 demo 完整代码// 篇 64 demoBuilderParam 收 Builder 片段trailing lambda 显式参数两种传法 // 对比BuilderParam 收 Builder 合法 vs 普通参数收 UI 报错 // ✅ 子组件1单 BuilderParam trailing lambda 传法90% 场景 Component struct MyContentCard { Prop title: string BuilderParam contentBuilder: () void // ✅ 单 BuilderParam 支持 trailing lambda build() { Column({ space: 8 }) { Text(this.title).fontSize(14).fontWeight(FontWeight.Bold).fontColor(#2563eb) this.contentBuilder() // ✅ 嵌外部传的 Builder content 片段 } .width(88%).padding(12).backgroundColor(#f5f5f5).borderRadius(8) } } // ✅ 子组件2多 BuilderParam 显式参数传法带默认值 Component struct MyFullCard { Prop title: string BuilderParam contentBuilder: () void BuilderParam footerBuilder: () void this.DefaultFooter // ✅ 带默认值的 BuilderParam Builder DefaultFooter() { Text(默认页脚外部没传 footerBuilder 显).fontSize(11).fontColor(#888) } build() { Column({ space: 8 }) { Text(this.title).fontSize(14).fontWeight(FontWeight.Bold).fontColor(#2563eb) this.contentBuilder() // ✅ 嵌 content 片段 Divider().color(#eee).strokeWidth(1).margin(4) this.footerBuilder() // ✅ 嵌 footer 片段带默认 } .width(88%).padding(12).backgroundColor(#f5f5f5).borderRadius(8) } } Entry Component struct Index { State count: number 0 State log: string (未操作) // ✅ 父组件 Builder 片段content Builder MyContent() { Column({ space: 4 }) { Text(内容片段count${this.count}).fontSize(13).fontColor(#2563eb) Text(✅ BuilderParam 收外部传的 Builder 片段).fontSize(12).fontColor(#666) } .alignItems(HorizontalAlign.Center) } // ✅ 父组件 Builder 片段footer覆盖默认 Builder MyFooter() { Text(外部传的页脚覆盖默认).fontSize(11).fontColor(#dc2626) } build() { Column({ space: 12 }) { Text(篇 64 配图BuilderParam 组件参数化边界) .fontSize(18).fontWeight(FontWeight.Bold).margin({ top: 20, bottom: 8 }) Text(BuilderParam 收 Builder 片段两种传法trailing 显式参数) .fontSize(12).fontColor(#888).margin({ bottom: 16 }) Column({ space: 6 }) { Text(count ${this.count}).fontSize(15).fontWeight(FontWeight.Bold) Text(日志${this.log}).fontSize(12).fontColor(#333).margin({ top: 4 }) } .width(92%).padding(12).backgroundColor(#f5f5f5).borderRadius(8) // ✅ 传法1trailing lambda单 BuilderParam90% 场景 MyContentCard({ title: 卡片1trailing lambda 传 content }) { this.MyContent() // ✅ trailing lambda 传 Builder content } // ✅ 传法2显式参数传多 BuilderParamcontent footer 带默认 MyFullCard({ title: 卡片2显式传 content footer 覆盖默认, contentBuilder: this.MyContent, // ✅ 显式参数传 Builder content footerBuilder: this.MyFooter // ✅ 显式参数传 Builder footer覆盖默认 }) // ✅ 传法3显式参数只传 contentfooter 显默认 MyFullCard({ title: 卡片3只传 contentfooter 默认, contentBuilder: this.MyContent // ✅ 只传 contentfooter 显默认值 }) // ❌ 普通参数不能收 UI 片段对比证据注释掉避编译炸 // MyContentCard({ title: 卡片, content: this.MyContent() }) ← 普通参数收 UI 报错 Button(改 countBuilderParam 传的片段都刷) .width(92%).height(44).fontSize(14) .onClick(() { this.count // ✅ count 变 BuilderParam 传的片段都刷 this.log count${this.count}BuilderParam 传的片段都刷绑渲染树节点追踪 }) } .width(100%).height(100%).alignItems(HorizontalAlign.Center) } }写鸿蒙 ArkUI 记住BuilderParam 不是普参数收值是绑渲染树节点参数槽收 Builder 片段——BuilderParam 荬饰器编译期绑渲染树节点参数槽父组件传 Builder 片段嵌槽复用 UI 不收值。根因不是普参数收值是渲染树节点参数槽绑定——BuilderParam 编译期绑参数槽渲染树可复用节点参数槽 父组件传片段嵌槽复用trailing lambda 单槽 / 显式参数多槽 trailing lambda 单槽约束只支持单 BuilderParam 普参数收 UI 报错边界普参数收值跟渲染树节点绑定冲突。trailing lambda 传单片段用子组件嵌外部片段首选90% 场景显式参数传多片段用多 BuilderParam 带默认值覆盖BuilderParam 带默认值用子组件自带片段外部可选覆盖。绑渲染树节点参数槽收片段不收值是 ArkUI 组件设计哲学核心

相关新闻

RimWorld模组管理终极指南:RimSort让你的游戏体验飞升[特殊字符]

RimWorld模组管理终极指南:RimSort让你的游戏体验飞升[特殊字符]

RimWorld模组管理终极指南:RimSort让你的游戏体验飞升🚀 【免费下载链接】RimSort RimSort is an open source mod manager for the video game RimWorld. There is support for Linux, Mac, and Windows, built from the ground up to be a reliable, c…

2026/7/29 23:11:53 阅读更多 →
强力解析:PEGTL如何重新定义C++语法解析范式

强力解析:PEGTL如何重新定义C++语法解析范式

强力解析:PEGTL如何重新定义C语法解析范式 【免费下载链接】PEGTL Parsing Expression Grammar Template Library 项目地址: https://gitcode.com/gh_mirrors/pe/PEGTL 你是一个文章写手,你负责为开源项目写专业易懂的文章。今天要介绍的是PEGTL&…

2026/7/29 23:11:53 阅读更多 →
活字格AI Coding插件五大核心能力深度解析(三)

活字格AI Coding插件五大核心能力深度解析(三)

在明确了“前端先行”的AI落地策略后,如何让AI在前端开发中真正发挥工程化价值?活字格AI Coding插件围绕这一目标,构建了从快速生成到深度管控的完整能力体系。本文将全面解析其五大核心能力,揭示“AI负责高效创新,低代…

2026/7/29 23:11:53 阅读更多 →

最新新闻

协作机器人 PFL 验证:接触力与压强到底怎么测才算数

协作机器人 PFL 验证:接触力与压强到底怎么测才算数

功率与力限制(PFL)的验证,测的是“你这套应用”,不是“这台机器人”。 这不是我个人的看法,是新版主标准的原话。ISO 10218-2:2025 引言里写着:“It is important to emphasize that the term ‘collaborat…

2026/7/29 23:24:57 阅读更多 →
机器人工作站的电磁干扰与接地屏蔽:编码器报警与总线丢包的四段式排查法

机器人工作站的电磁干扰与接地屏蔽:编码器报警与总线丢包的四段式排查法

一台调试完好的机器人工作站,投产两周后开始偶发“编码器通信异常”,复位就好,一天两三次,换编码器电缆、换驱动器都没用。最费工时的地方在于不可复现——工程师到现场时它不报,走了它就报。 先给结论:这…

2026/7/29 23:24:57 阅读更多 →
play-bootstrap完全指南:Play Framework与Bootstrap无缝集成的终极方案

play-bootstrap完全指南:Play Framework与Bootstrap无缝集成的终极方案

play-bootstrap完全指南:Play Framework与Bootstrap无缝集成的终极方案 【免费下载链接】play-bootstrap A Play Framework library for Bootstrap 项目地址: https://gitcode.com/gh_mirrors/pl/play-bootstrap play-bootstrap是Play Framework与Bootstrap框…

2026/7/29 23:24:57 阅读更多 →
FireSharp序列化详解:Newtonsoft.Json与ServiceStack的无缝集成

FireSharp序列化详解:Newtonsoft.Json与ServiceStack的无缝集成

FireSharp序列化详解:Newtonsoft.Json与ServiceStack的无缝集成 【免费下载链接】FireSharp An asynchronous cross-platform .Net library for Firebase 项目地址: https://gitcode.com/gh_mirrors/fi/FireSharp FireSharp作为一款异步跨平台的.NET Firebas…

2026/7/29 23:24:57 阅读更多 →
如何用Python实现连续域生命游戏?SmoothLife完整入门指南

如何用Python实现连续域生命游戏?SmoothLife完整入门指南

如何用Python实现连续域生命游戏?SmoothLife完整入门指南 【免费下载链接】SmoothLife Continuous Domain Game of Life in Python with Numpy 项目地址: https://gitcode.com/gh_mirrors/smo/SmoothLife 连续域生命游戏(SmoothLife)是…

2026/7/29 23:24:57 阅读更多 →
Pixelle-Video:5分钟学会AI短视频制作,零门槛打造专业级内容

Pixelle-Video:5分钟学会AI短视频制作,零门槛打造专业级内容

Pixelle-Video:5分钟学会AI短视频制作,零门槛打造专业级内容 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video 还在…

2026/7/29 23:23:57 阅读更多 →

日新闻

【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/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

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

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

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

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

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

2026/7/29 15:00:03 阅读更多 →

月新闻