做了一个 AI 鸿蒙 App,我发现逻辑变了

做了一个 AI 鸿蒙 App,我发现逻辑变了
在这里插入图片描述

子玥酱(掘金 / 知乎 / ZEEKLOG / 简书 同名)

大家好,我是子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。

我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括前端工程化、小程序、React / RN、Flutter、跨端方案,
在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。

技术方向:前端 / 跨端 / 小程序 / 移动端工程化
内容平台:掘金、知乎、ZEEKLOG、简书
创作特点:实战导向、源码拆解、少空谈多落地
文章状态:长期稳定更新,大量原创输出

我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在“API 怎么用”,而是更关注为什么这么设计、在什么场景下容易踩坑、真实项目中如何取舍,希望能帮你在实际工作中少走弯路。

子玥酱 · 前端成长记录官 ✨
👋 如果你正在做前端,或准备长期走前端这条路
📚 关注我,第一时间获取前端行业趋势与实践总结
🎁 可领取 11 类前端进阶学习资源(工程化 / 框架 / 跨端 / 面试 / 架构)
💡 一起把技术学“明白”,也用“到位”

持续写作,持续进阶。
愿我们都能在代码和生活里,走得更稳一点 🌱

文章目录

引言

一开始,我只是想做一件很简单的事:

在鸿蒙 App 里接入一个 AI 功能。

比如:

  • 做一个智能搜索
  • 加一个 AI 助手
  • 支持自然语言操作

听起来很普通,对吧?

但当我真的把一个 AI 鸿蒙 App 从 0 做到能用之后,我发现一件很不对劲的事:

不是我在给 App 加 AI,而是 AI 在重写整个 App 的逻辑。

而且这种变化,不是 UI 层面的,而是:

架构级别的变化 

一、最开始,我只是加了一个“AI 页面”

最初的实现很典型:

首页 ↓ 新增一个 AI 页面 ↓ 调用大模型接口 ↓ 展示结果 

代码大概是这样:

@Entry@Component struct AIPage {@State input:string=""@State reply:string=""asyncsend(){this.reply =await aiService.chat(this.input)}}

当时我以为:

“这不就完成了吗?”

但很快问题就来了。

二、AI 开始“绕过页面”

用户开始提一些请求:

帮我查一下订单 帮我推荐几个商品 帮我看看今天有什么安排 

这些需求本来应该对应:

订单页 商品页 日程页 

但现在:用户根本没有进入这些页面,AI 直接返回了结果。

这时候我第一次意识到:

页面,不再是唯一入口了。

三、Service 层突然变成核心

以前我的代码结构是:

Page → Service → API 

但现在变成:

AI → Service Page → Service 

也就是说:Service 被两个入口调用:

  • UI
  • AI

问题马上暴露出来:

1 有些 Service 写在页面里

// Page 内部逻辑asyncloadOrders(){returnawait api.get("/orders")}

AI 根本调不了。

2 有些逻辑和 UI 强绑定

this.loading =truethis.orders =await api.get()this.loading =false

AI 也用不了,于是我不得不重构:

把所有业务逻辑从页面里“抽出来”。

四、我开始把能力“服务化”

我做的第一步是:

拆 Service 

例如:

exportclassOrderService{asyncgetOrders(userId:string){returnawait api.get("/orders")}}

然后 UI 和 AI 都调用:

await orderService.getOrders(userId)

这一刻变化很明显:

App 不再是页面集合,而是能力集合。

五、我又加了一层:Tool

很快我发现一个新问题,AI 并不知道该调用哪个 Service。

于是我加了一层:

Tool 

例如:

exportclassOrderTool{asyncexecute(params){returnawait orderService.getOrders(params.userId)}}

AI 只需要:

调用 Tool 

而不用关心底层实现,这时候架构变成:

AI → Tool → Service 

六、我不得不引入“Agent”

再往后,问题又来了。用户输入开始变复杂:

帮我查订单,并推荐相关商品 

这已经不是一个 Service 能完成的任务,我需要:

多个步骤 多个能力 组合执行 

于是我引入了:

Agent 

示例:

exportclassAgent{asyncrun(input:string){const intent =awaitthis.parse(input)if(intent ==="order_and_recommend"){const orders =await orderTool.execute()const goods =await recommendTool.execute()return{ orders, goods }}}}

这时候我才彻底意识到:

AI 不只是调用接口,而是在“编排系统能力”。

七、UI 的地位明显下降了

以前:

UI = 核心 

现在:

AI = 核心 UI = 展示 

很多操作变成:

用户一句话 ↓ AI 完成 ↓ UI 展示结果 

甚至很多时候:UI 根本不参与流程

八、数据流也变了

传统数据流:

UI → Service → Data → UI 

现在变成:

用户输入 ↓ AI ↓ Service ↓ Data ↓ UI(展示) 

变化很关键:

数据流不再由 UI 触发,而是由 AI 触发。

九、最大的变化,其实是“思维方式”

做完这个项目后,我最大的感受不是代码变了,而是:

思维方式彻底变了。

以前我在想:

这个页面怎么设计? 这个按钮放哪? 这个流程怎么走? 

现在我在想:

用户会说什么? 系统怎么理解? 能力怎么组合? 任务怎么完成? 

十、本质总结

如果用一句话总结这次变化:

我不再是在做“页面应用”,而是在做“能力系统”。

对比一下:

维度传统 AppAI App
入口页面意图
核心UIAgent
逻辑固定流程动态任务
结构页面集合能力系统

结语

一开始我只是想:

给鸿蒙 App 加一个 AI 功能

但最后我得到的是:

一个完全不同的应用架构。

如果你现在也在做 AI 鸿蒙 App,我给你一个建议:

不要把 AI 当成功能,而要当成系统入口来设计。

否则你很快就会遇到:

  • 架构混乱
  • 代码失控
  • AI 能力无法扩展

Read more

【AIGC前沿】MiniMax海螺AI视频——图片/文本生成高质量视频

【AIGC前沿】MiniMax海螺AI视频——图片/文本生成高质量视频

目录 1.MiniMax海螺AI视频简介 2.使用教程 1.MiniMax海螺AI视频简介 海螺视频,作为 MiniMax 旗下海螺 AI 平台精心打造的 AI 视频生成工具,致力于助力用户产出高品质视频内容。该工具依托 abab-video-1 模型,具备强大的文生视频功能。用户仅需输入关键词或简短语句,海螺视频就能据此创作出情节丰富的完整视频。此外,海螺视频运用 DiT 架构,能够精准模拟现实世界的物理规律,尤其在生成复杂场景与高动作场景时,展现出卓越的性能。 2.使用教程 点击如下链接,进入蓝耘元生代智算云平台主页 https://cloud.lanyun.net/#/registerPage?promoterCode=11f606c51e 点击主页上方栏的“MaaS平台” 然后点击左侧栏的“视觉模型”  可以看到可以免费体验一次I2V-01图片生成视频  点击如下红框处将图片上传  例如输入如下的图片 例如想让小狗动起来,可以在如下红框处输入相应的指令,然后点击立即生成

昇腾NPU实战:手把手教你免费部署Llama-2-7B大模型(附避坑指南)

昇腾NPU实战:零成本部署Llama-2-7B大模型全攻略 当大模型技术席卷全球时,硬件门槛往往成为个人开发者和中小企业难以跨越的障碍。本文将带你体验如何利用昇腾NPU和GitCode免费资源,以零成本部署Llama-2-7B大模型的全过程。不同于常规教程,我们不仅提供步骤说明,更聚焦于实战中可能遇到的典型问题及其解决方案。 1. 环境准备与资源配置 在开始部署前,选择合适的计算平台至关重要。GitCode提供的免费昇腾NPU Notebook实例是理想的起点,但配置不当可能导致后续流程受阻。 关键配置参数表: 配置项推荐值错误选择后果计算类型NPU选择CPU/GPU将无法调用昇腾算力规格等级NPU basic (1*NPU 800T A2)低配版本可能无法承载7B模型系统镜像euler2.9-py38-torch2.1.0-cann8.0-openmind0.6-notebook其他镜像需手动安装依赖存储空间50GB免费版13GB模型文件+工作空间刚好够用 创建实例后,建议立即验证基础环境: # 验证Python和PyTorch版本 python3 --ver

Stable-Diffusion-v1-5-archive企业合规实践:生成内容水印嵌入+版权元数据自动标注

Stable-Diffusion-v1-5-archive企业合规实践:生成内容水印嵌入+版权元数据自动标注 1. 引言:当AI创意遇上企业合规 想象一下,你的设计团队用Stable Diffusion v1.5 Archive快速生成了上百张营销海报,效率提升了十倍。但法务部门突然找上门,问了一个尖锐的问题:“这些AI生成的图片,版权怎么算?万一被竞争对手盗用了,我们怎么证明是自家生成的?” 这不是危言耸听,而是很多企业引入AI图像生成工具后,面临的真实合规挑战。AI生成的内容,在法律上属于“作品”还是“数据”?如何证明其归属?如何防止内部敏感信息通过AI工具泄露? 今天,我们就来解决这个痛点。我将带你深入Stable Diffusion v1.5 Archive的部署实践,重点分享如何为企业级应用添加生成内容水印嵌入和版权元数据自动标注功能。这不仅能让你的AI创意工作流更高效,还能让它在法律和合规层面坚如磐石。 2. 为什么企业需要AI生成内容的合规方案? 在深入技术实现之前,我们先搞清楚问题的严重性。很多技术团队只关注模型效果和生成速度,却忽略了合规这个“隐形炸弹

基于西门子S7-1200FC PLC与松下机器人Profinet通信实现机器人外部自动控制应用

⒈训练主题 通过西门子S7-1200 PLC与松下机器人Profinet通信实现机器人的外部自动化控制,应用中程序的调配采用二进制方式,同时PLC需要采集机器人安全作业原点(Home点),保证机器人安全作业,通过PLC的编程调试和机器人的配置实现上述功能。 ⒉软硬件配置 ⑴硬件配置 ①机器人控制系统:TM1800G3机器人:YA-1VAR81;机器人连接电缆:TSMWU894LM;电缆单元:TSMWU600;200V/380V变压器:TSMTR010HGG;RT轴焊丝盘架(刚用):TSMYU204;校枪尺:AXU01727T;机器人通信装置(Profinet):TSMYU965,产品实物如下图。 ②西门子PLC:CPU 1214FC DC/DC/RLY,型号:6ES7 214-1HF40-0XB0。 ③按钮:若干。 ④调试电脑1台,注意电脑IP地址在同一个网段(IP:192.168.0.***),子网掩码为:255.255.255.