包含关键字 typecho 的文章

TLDR:

  • openclaw 新增 --uninstall 命令,彻底卸载不留残留
  • 新增 hotkey 模块,支持 Ctrl+X AI 命令补全和 fzf 系列快捷键
  • 新增 neo 模块,类 neofetch 系统信息展示工具
  • 新增 x ssh setup 命令,内网服务器一键部署 x-cmd

🚀 x-cmd v0.8.8 更新详情

openclaw 🧹

新增 --uninstall 命令 —— 彻底卸载不留残留。

之前不少朋友反馈,openclaw 自带的 uninstall 命令不会帮你删除二进制文件。
所以加了 --uninstall,帮你清理得干干净净。

# 卸载 OpenClaw,包括二进制文件、网关服务、配置文件和工作区
x openclaw --uninstall

hotkey ⌨️

新增 hotkey 模块 —— 两年前就写好了,然后我们就忘了。

那是 2023 年,ChatGPT 刚火起来。我们在 co 模块里做了 Ctrl+X 的 AI 命令补全,跑了一下账单,倒吸一口凉气。
然后... 就没有然后了。代码躺在那儿,谁也没再提起。

现在不一样了。我们把 Ctrl+X 改成了 AI agent 切换,同时还加上了 fzf 系列快捷键:

  • Ctrl+R 历史搜索
  • Ctrl+T 文件选择
  • Alt+C / Esc+C 目录跳转

先用 x hotkey try 试试,喜欢再用 x hotkey use 永久启用。

示例:

# 试用 co 部件(Ctrl+X 触发)
x hotkey try co

# 永久启用 fzf 系列快捷键
x hotkey use fzf-history fzf-file fzf-cd

neo 🖥️

新增 neo 模块 —— neofetch 的功能我们有了,但 "Neo" 不只是 "new" 的意思。

说实话,市面上类似的系统信息展示工具不少。但我们想的是:《黑客帝国》里的 Neo 是干什么的?
他是来觉醒的,来帮你看清系统的真实面貌。

所以现在的 x neo 先做了基础版——系统信息、内核、运行时间、CPU/GPU/内存,配上各种发行版的 ASCII 艺术 Logo。
支持多种显示模式(mini/std/all/llm/ui),Logo 也有标准和大尺寸可选。

但这只是开始。下一步 x neo chat 会让它变成真正的 AI 智能体,根据你的系统信息主动帮你管理和理解操作系统。

示例:

# 默认显示系统信息(带 Logo)
x neo

# 查看所有支持的发行版 Logo
x neo logo ls

# 显示大尺寸 Arch Logo
x neo logo large arch

# LLM 模式,纯文本输出适合喂给 AI
x neo fetch --llm

ssh 🌐

新增 x ssh setup 命令 —— 终于能给内网服务器一键部署 x-cmd 了。

之前内网环境装 x-cmd 挺头疼的,得下安装包、传进去、解压、改配置,步骤多还容易踩坑。现在只要你的机器能 SSH 连上,一条命令搞定:

x ssh setup user@hostname

装完之后,内网机器上这些功能都能直接用:

  • 主题和交互:theme 换肤、智能 Tab 补全、语法高亮、历史记录增强
  • 文件系统工具:增强版 ls、path 路径操作、ps 进程查看、df 磁盘分析
  • 开发辅助:git 增强、gitconfig 配置管理、githook 钩子管理、docker 快捷操作
  • 本地 AI:llmf 模块调用本地部署的开源大模型

详细的内网安装方案参考:https://cn.x-cmd.com/start/airgap

需要实时联网的功能目前在内网还不好使。env 装软件包这块我们也在研究方案,如果你有需求欢迎加群或提 issue 讨论。

⬆️ 如何升级

现有用户可以通过以下命令快速切换至最新版本进行体验:

x upgrade

如果你没有安装 x-cmd, 只需要打开你的终端:

eval "$(curl https://get.x-cmd.com)"

x-cmd 是一个一站式的命令行工具集,其强大的功能可以为人类用户和AI共同使用。它还简化了很多工具的安装方法。
马上安装,让 x-cmd 协同 AI 成为你的最强助手,实现生产力翻倍!

🤝 开发者反馈

如果您在自定义配置或代理设置中遇到任何疑问,欢迎前往 GitHub Issues 提交反馈,共同完善 X-CMD 生态。

很多企业在谈“企业资产”时,往往首先想到的是服务器、办公设备、电脑或者办公场地。这些确实属于企业资产,但如果只停留在这个层面,对软件企业来说显然是不够的。

在为软件企业客户提供服务的过程中,经常会发现一个问题:

企业内部每天都会产生大量数据、技术文档、项目资料、沟通记录以及系统数据,但这些信息往往分散在不同系统、不同员工电脑,甚至只存在于聊天记录中。

时间久了,也就会出现一些典型问题:

  • 项目经验无法沉淀
  • 技术资料难以复用
  • 信息分散导致沟通成本上升
  • 企业关键数据缺乏统一管理
  • 员工离职后经验流失

而这些问题本质上都指向一个核心问题:企业并没有真正理解软件企业的资产结构,也没有建立系统化的资产管理体系。

一个成熟的软件企业,通常至少拥有五类核心资产:数据资产、知识资产、软件系统资产、协作资产、技术资产

这五类资产共同构成了软件企业的核心竞争力。接下来我们结合实际企业情况,逐一分析。

第一类资产:数据资产

其实,数据资产是软件企业最基础、同时也是最容易被忽视的一类资产。很多企业每天都会产生大量数据,但真正能够被沉淀和利用的数据却非常有限。

从企业实际业务来看,软件企业的数据通常包括以下几类:

1、客户数据

例如:客户基本信息、客户需求记录、客户沟通记录、客户项目进度。

这些数据直接影响企业的销售策略和客户服务能力。如果这些数据分散在销售人员的聊天记录、邮件或个人电脑中,一旦人员变动,企业就会失去大量重要信息。

2、项目数据

软件企业的核心业务通常是项目或产品研发,因此会产生大量项目数据。

例如:项目需求文档、任务分配记录、项目进度数据、Bug 记录、版本迭代记录。

这些数据不仅是项目管理的依据,同时也是企业未来复盘和优化流程的重要依据。但现实情况是,很多团队的项目数据分散在 Excel、微信聊天记录、文档工具、个人电脑中——这种分散的数据结构会直接影响企业管理效率

3、产品数据

对于软件企业来说,产品本身也会不断产生数据。

例如:用户行为数据、使用日志、系统运行数据、功能使用统计。

这些数据对于产品迭代非常重要。如果企业缺乏统一的数据管理体系,产品团队就很难进行有效分析。

4、沟通数据

很多企业没有意识到一点:团队沟通记录本身也是重要的数据资产

例如:需求讨论、技术讨论、方案评审、项目决策。

这些信息如果只是存在于临时聊天工具中,就很难长期保存。而企业级即时通讯系统可以对这些沟通信息进行统一管理,从而形成可追溯的沟通记录。企业协同聊天软件 喧喧 就支持聊天数据存储,并且可以对消息进行加密管理,提高企业数据安全性。

第二类资产:知识资产

如果说数据资产是企业的信息基础,那么知识资产就是企业经验的沉淀

在软件企业中,大量经验其实存在于团队成员的头脑中。例如:

  • 技术解决方案
  • 项目实施经验
  • 客户需求处理方法
  • 运维经验

如果这些经验没有被记录下来,就很难形成企业的长期资产。我在实际项目中经常看到这样的情况:某个技术问题只有一位工程师能够解决,当这位工程师离职后,团队就必须重新摸索解决方法。这其实就是典型的知识资产流失

知识资产通常包括以下几类:技术文档、项目实施经验、解决方案库、技术规范、培训资料

企业如果希望长期发展,就必须建立系统化的知识管理机制。例如:技术文档库、经验总结机制、项目复盘机制、技术分享制度。

这样做的目的,是让知识从个人经验变成企业资产

第三类资产:软件系统资产

很多企业在资产管理时,往往忽视了一类非常重要的资产:企业内部的软件系统

在软件企业中,几乎所有业务流程都依赖系统运行。例如:

  • 项目管理系统
  • 代码管理系统
  • DevOps 系统
  • 持续集成系统
  • 企业即时通讯系统
  • OA 系统
  • ERP 系统

这些系统不仅是工具,同时也是企业的重要资产。因为企业的业务流程、管理方法和数据结构都沉淀在这些系统中。

一个成熟的软件研发团队通常会使用:项目管理系统管理需求与任务、代码仓库管理源码、CI/CD 系统管理构建流程、企业通讯系统进行团队协作。

这些系统之间如果能够形成统一平台,企业管理效率会明显提升。而喧喧便支持系统集成能力,可以将企业内部多个系统接入统一平台,从而减少系统切换带来的效率损失

在很多企业中,员工每天要在多个系统之间频繁切换,如果信息无法集中,就会出现信息遗漏的问题。通过统一协同平台,可以让企业的信息更加集中。

第四类资产:协作资产

这一类资产在传统管理理论中很少被提及,但在软件企业中却非常重要,可称为企业协作资产

所谓协作资产,其实指的是企业组织内部的信息流动效率。软件企业通常具有以下特点:

  • 项目协作密集
  • 技术沟通频繁
  • 跨部门合作多
  • 需求变更频繁

在这种环境下,如果企业协作效率低,就会直接影响研发效率。

常见协作问题包括:

1、信息传递慢

2、沟通渠道混乱

3、重要信息无法追溯

4、多系统沟通导致信息丢失

很多团队在早期使用普通聊天工具进行沟通,但随着团队规模扩大,这种方式往往难以满足企业需求。企业级协同工具的价值就在于此。

例如企业即时通讯系统可以提供:组织架构通讯录、团队群组、项目讨论、文件共享、音视频会议

喧喧 支持一对一聊天、群组沟通以及音视频会议,可以满足企业内部实时沟通需求。在大型团队中,高效协作能力本身就是企业的重要资产

第五类资产:技术资产

对于软件企业来说,技术能力本身就是核心竞争力。技术资产通常包括:

  • 源代码
  • 系统架构
  • 技术框架
  • 算法模型
  • 技术平台

这些资产决定了企业产品的技术能力。

例如,一个成熟的软件企业通常会拥有:自研技术框架、产品代码库、自动化测试体系、DevOps 平台。

这些技术资产会随着企业发展不断积累。如果企业缺乏系统化管理,这些资产同样会流失。例如:代码缺乏版本管理、技术文档不完整、技术架构缺乏维护。

这些问题都会影响企业长期发展。

为什么软件企业越来越重视资产管理

随着企业规模扩大,软件企业的资产结构会越来越复杂。很多企业在早期阶段依赖个人经验运作,但随着团队人数增加,就必须建立系统化管理体系。否则会出现以下问题:

  • 信息碎片化
  • 管理效率下降
  • 数据安全风险增加
  • 项目经验无法沉淀

因此越来越多的软件企业开始建设统一的信息平台。例如通过:

  • 项目管理系统
  • DevOps 平台
  • 企业协同系统
  • 即时通讯平台

将企业数据、知识和协作统一管理。

为什么很多企业选择私有化协同系统

在实际企业环境中,还有一个重要问题:信息安全

很多软件企业、政府机构和金融机构,对数据安全要求非常高。例如:

  • 不允许数据存储在公网
  • 不允许敏感信息外泄
  • 需要内部数据审计

在这种情况下,私有化部署的企业协同系统就非常重要。

喧喧作为企业即时通讯系统支持完全私有化部署,企业可以将系统部署在内部服务器,从而实现数据自主控制。同时系统还支持:

  • 数据加密
  • IP 登录限制
  • 国产信创适配

这些能力可以帮助企业进一步提升信息安全水平。

总结:软件企业真正的核心资产是什么

通过长期观察软件行业,我们进一步验证了:软件企业的资产不仅仅是硬件设备,更重要的是以下五类资产:

1、数据资产

2、知识资产

3、软件系统资产

4、协作资产

5、技术资产

这些资产共同构成企业的核心能力。如果企业能够通过统一的信息平台管理这些资产,就可以不断提升组织效率,并形成长期竞争优势。

未来的软件企业竞争,本质上也是企业资产管理能力的竞争。 谁能够更好地沉淀数据、知识和技术,谁就更有可能建立长期优势。

asdfdas

楼主 3 个碰 1 个杠

然后手里没牌 加 不让摸牌

每轮自动跳过 全程看戏

直到别人胡 或者 平局

谁来说说为什么会这样

我的理解, 杠了之后应该补一牌

然后单听这个摸的一牌啊

原先是用了 5 年的 12mini ,3 个月前买的 iPhone 17 到货后前一两天明显感觉很耐用(客观观察),随着安装软件完成后,很快就感觉出,耗电明显的快,同样一上午使用情况差不多,估计有翻倍的耗电量。特别的情况是,一旦手机剩余 20%切换到省电模式下,手机会持续明显的轻微卡帧。夜间耗电量来看,基本正常。

电池方面,我开了每次冲 80%,但感觉不太是这个原因造成的,耗电快的感觉和用了 5 年的 12mini 差不多的体验。苹果 ai 是关闭的,后台刷新、实时活动基本都是关闭的。


安装的主要软件和服务:Quantumult X (规则模式),GG 的 eSIM 卡(处于开启状态),中国联通的信号基本只有 2 格。

请大家帮忙看看会是什么原因造成的?大家在使用时的情况和体验如何呢?

华住会、招商银行、HashPhotos 、HelloTalk 、Highlights 、Insta360 、坚果云、京东、九江银行、夸克、Kelivo 、KyBook 3 、LDOCE 、List 背单词、List 生词本、买火车票、摩羯星 GPS 、nPlayer 、QQ 、Quantumult X 、Quora 、Raycast 、Reader 、Readwise 、山姆会员商店、少数派、生日提醒、Scanner Pro 、Shazam 、Spark 、Speak 、Spokenly 、Spotify 、淘宝、铁路 12306 、同程旅行、图片标记助手、Tandem 、Telegram 、Termius 、Things 、UC 浏览器、Unsplash 、Voice 、VoiceTube 、网易爆米花、微信、WeightDrop 、WhatsApp 、Wyze 、闲鱼、小红书、小宇宙、携程旅行、熊猫吃短信、X 、英汉、预览、YouTube 、掌上生活、支付宝、知几计算、中国联通、中国移动、中国银行、Zeta 长截图、6mins 、阿里云盘、Ai Note Taker 、Anki 、Annotable 、白描、百度网盘、哔哩哔哩、彩云天气 Pro 、词根词缀字典、Cake 、Chrome 、Craft 、大众点评、滴滴出行、电子税务局、DAMA 、Diary 、Discord 、Documents 、Drafts 、Dropbox 、Due 、ELSA Speak 、Ever Play 、Fan·繁、flomo 、高德地图、Garmin Jr.、Gboard 、giffgaff 、Google 相册、Google Maps


大家好,我是 Java陈序员

在快节奏的生活里,我们常常被焦虑、失眠、注意力不集中困扰。想睡个安稳觉,想安安静静专注一会儿,想给自己一段不被打扰的放松时光,却总被各种杂音打断。

今天,给大家介绍一款开源免费的安卓应用,专注于白噪音播放!

关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。

项目介绍

XMSLEEP —— 一个专注于白噪音播放的 Android 应用,提供多种自然声音帮助您放松、专注和入眠。应用采用 Material Design 3 设计规范,界面简洁美观,操作流畅。

功能特色

  • 内置多种白噪音:提供雨声、篝火、雷声、森林鸟鸣、猫咪呼噜、键盘等多种自然/场景音效,分类清晰(自然/雨声/城市/河流等),无需联网直接播放
  • 音频拓展无上限:音效库随心扩展,不仅支持从 GitHub 动态加载网络音频资源,也可播放手机本地音频文件
  • 沉浸式无缝循环:音频支持无缝循环播放,提供沉浸式体验
  • 实用功能:支持设置自动停止播放的时间,支持预设、收藏、最近播放等功能
  • 精美界面:采用最新的 Material Design 3 设计规范,内置声音配有 webp 动画,支持多种颜色主题,支持浅色/深色模式切换

技术栈Kotlin + Jetpack Compose + Material Design 3 + ExoPlayer/Media3

快速上手

项目已经提供构建好的安装包,只需下载安装即可使用。

1、打开下载地址,下载安装包

https://github.com/Tosencen/XMSLEEP/releases

2、在安卓手机中运行安装包进行安装

功能体验

  • 内置白噪音

  • 预设

  • 设置倒计时

  • 远程白噪音

  • 设置

本地开发

1、环境要求:

  • Android Studio
  • JDK:17+
  • Android SDK: API33+
  • Gradle:8+

2、克隆或下载项目源码

git clone https://github.com/Tosencen/XMSLEEP.git
cd XMSLEEP

3、配置 Gradle:复制 gradle.properties.examplegradle.properties

4、使用 Android Studio 打开项目并同步 Gradle 依赖

5、连接设备或启动模拟器,运行项目

可以说,XMSLEEP 作为一款简单的白噪音播放工具,没有广告,不用联网,无需付费,能在你失眠、疲惫、需要专注的时候,提供最治愈的声音陪伴。快去下载安装体验吧~

项目地址:https://github.com/Tosencen/XMSLEEP

最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star

https://github.com/chenyl8848/great-open-source-project

或者访问网站,进行在线浏览:

https://chencoding.top:8090/#/

我创建了一个开源项目交流群,方便大家在群里交流、讨论开源项目

但是任何人在群里打任何广告,都会被 T 掉

如果你对这个交流群感兴趣或者在使用开源项目中遇到问题,可以通过如下方式进群

关注微信公众号:【Java陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!

我们每个人,都会死去,都会离开,会被遗忘,所有的一切,最后都会归零。

但人生,其实也在不断地重启、格式化、重装系统、恢复出厂设置。 📲📲📲

人生也能重装系统


人生也能重装系统

早上开车上班,随机播放到某一首歌。歌本身一般般,不作为特别推荐,可以当成 BGM 随便听听,但里面几句歌词,确实一下子戳到我了。

  • 周深深《把每天当作最后一天》

歌词很直白,说的很简单,甚至有点残酷:我们每个人,终究都会死去,都会离开,都会被遗忘,所有的一切,最后都会归零。

就这么一首歌,我在路上循环听了好几遍,越想越对。突然就觉得,人生这事,跟我们平时 给电脑重装系统、给手机恢复出厂设置,简直一模一样。

640

经常折腾电脑、手机的兄弟,应该一下就能听懂我在说什么。

每次准备重装系统前,我们都会先做一件事:备份重要文件,整理资料,做好启动 U 盘,把该保留的都留好。

但我还有个习惯:在一切准备就绪、马上就要格式化之前,我会放开手脚,随便折腾。

平时不敢装的软件,怕它乱要权限、乱改系统,这会儿直接装上试试;平时一直用 A 方案,觉得 B 是替代品懒得换,这会儿也装上体验对比一下,说不定更好用;甚至那些担心带病毒、有风险的黑客工具,也敢拿出来玩一玩。

反正系统马上就要清空了,坏了也无所谓,乱了也不心疼。

等折腾够了,点一下格式化,一切清零,重新装一个干净、清爽、流畅的新系统。

手机恢复出厂设置也是一样的逻辑:先把通讯录、照片、聊天记录备份好,剩下的就随便造。

下几个平时不玩的手游,装几个好奇但不敢用的 APP,卡一点、慢一点都没关系。体验完,一键恢复出厂,又是一台干干净净的新手机。

640 (1)

那一刻我突然觉得:人生,其实也一直在不断地重启、格式化、重装系统。

往大了说:考上大学、换一份新工作、搬到一座新城市、结婚、成为父母。。。每一次人生的重大节点,我们心里都会冒出一个念头 —— 「人生翻篇,重新开始」。这就是人生的 重装系统。把过去的美好留在备份里,把不开心、内耗、遗憾,全部当成垃圾文件删掉,轻装上阵。

往小了说:每年元旦、春节,我们都会说 —— 「新的一年,从头开始」;哪怕只是一天之内,心情不好、烦躁、沮丧,吃顿好的,再睡一觉,第二天醒来,心里那股阴霾散了,人又精神了。这就是最小单位的 恢复出厂设置

640 (2)

今天开车那一路,我脑子里全是这个比喻。越想越觉得轻松,越想越觉得没什么大不了。

人生没有那么多过不去的坎,也没有那么多盯着你看的观众。你做过的尴尬事、搞砸的瞬间、放不下的包袱、内耗的情绪。。。其实都可以像系统垃圾一样,一键清理。

真正想通 「一切终将归零」 这件事,反而不是消极,而是解脱。

既然最后都要重启,那现在何必那么紧绷?何必那么在意别人的眼光?何必揪着过去不放?

人生可以随时按一下 Reset 键。 每一天,都可以是一个全新安装、干干净净、没有冗余、没有卡顿的新系统。

放下包袱,轻装上阵。往后的日子,我们都好好重启,好好做自己。

  • 周深深《把每天当作最后一天》

人生不过三万天 出去看看这世界
请勇敢一点 我们只活这一遍
和过去告别 拥抱更好的明天
人生的意义 该由自己来挑选


全文链接 发布新帖子 - 分享你的想法 - 2Libra

架构师的核心思维方式是其进行系统架构设计和决策的关键,除了上文提到的设计思维特点外,还包括以下几种核心思维方式。

问题定义思维

架构师设计系统时,应善于发现问题、定义问题。

  • 精准识别问题:架构师要能够从复杂的业务场景和技术环境中,精准地识别出真正的问题所在。不能仅仅停留在问题的表面现象,而是要深入挖掘问题的本质。例如,当用户反馈系统响应速度慢时,不能简单地认为是服务器性能问题,而要通过深入分析,可能发现是数据库查询语句不合理、网络延迟、系统架构设计导致的资源竞争等深层次问题。
  • 清晰界定问题边界:明确问题的范围和边界,确定哪些因素与问题相关,哪些是无关的干扰因素。这有助于将问题聚焦,避免在解决问题的过程中陷入无关的细节和复杂性中。比如,在设计一个物流配送系统时,需要明确问题是关于配送路线规划的优化,还是库存管理与配送的协同,抑或是配送人员的调度管理,不同的问题边界决定了不同的架构设计方向。

数据驱动思维

架构师设计系统时,应善于利用数据。

  • 重视数据收集:意识到数据在架构设计中的重要性,主动收集与系统相关的各种数据,包括业务数据、用户行为数据、系统性能数据等。这些数据是架构师了解系统运行状况、用户需求和业务流程的重要依据。例如,在设计一个在线教育平台时,会收集学生的学习进度数据、课程播放时长数据、用户互动数据等,以便更好地了解用户行为和需求,为架构设计提供支持。
  • 基于数据决策:在进行架构设计和优化时,依靠数据进行分析和判断,而不是仅凭经验或直觉。通过对数据的分析,评估不同架构方案的可行性和优缺点,选择最优的方案。比如,通过对系统性能数据的分析,确定是否需要增加缓存机制、调整数据库架构或优化网络拓扑结构等。

复用思维

架构师设计系统时,要有复用思维,减少“重复造轮子”。

  • 识别可复用元素:在进行架构设计时,能够敏锐地识别出系统中具有复用潜力的功能、模块、组件或代码。这些可复用元素可以是已经存在的成熟技术框架、开源组件,也可以是企业内部以往项目中积累的经验和资产。例如,在多个不同的业务系统中,可能都需要用户认证和授权功能,架构师可以将这部分功能提取出来,设计成一个可复用的身份认证模块。
  • 设计可复用架构:不仅仅是对现有元素的复用,还会在架构层面进行设计,使系统具有良好的可复用性和扩展性。通过采用模块化、分层架构、接口化等设计原则,将系统设计成由多个可独立复用的模块组成,每个模块具有明确的职责和功能,模块之间通过清晰的接口进行交互。这样,在未来的项目中,可以方便地复用这些模块,提高开发效率,降低成本。

创新思维

创新思维可以让架构始终保持生命力。

  • 突破传统局限:不局限于传统的架构设计模式和方法,敢于尝试新的技术和理念,突破现有的思维定式和技术瓶颈。例如,在面对大规模数据处理问题时,不局限于传统的关系型数据库架构,而是尝试采用分布式数据库、大数据处理框架等新技术,以实现更高效的数据处理和分析。
  • 创造独特价值:通过创新的架构设计,为系统带来独特的价值和竞争优势。可以是提高系统的性能、降低成本、提升用户体验,也可以是实现一些独特的功能,满足市场上尚未被满足的需求。比如,在设计一个社交媒体平台时,通过创新的架构设计,实现了更高效的内容推荐算法,为用户提供了更个性化的内容推荐,从而吸引了更多的用户,提升了平台的竞争力。

风险管理思维

风险管理可以让架构能够抵御不确定因素带来的影响,有时这些影响甚至是致命的。

  • 风险识别:在架构设计的各个阶段,能够全面地识别出可能存在的风险,包括技术风险、业务风险、市场风险等。技术风险可能包括新技术的不成熟、技术选型的不匹配等;业务风险可能包括业务需求的频繁变更、业务流程的不合理等;市场风险可能包括竞争对手的压力、市场趋势的变化等。例如,在采用一种新的区块链技术进行金融系统架构设计时,要识别出该技术可能存在的性能瓶颈、安全漏洞以及监管政策的不确定性等风险。
  • 风险应对:针对识别出的风险,制定相应的风险应对策略。对于可以接受的风险,制定监控和应急措施;对于可能对系统产生重大影响的风险,要采取措施进行规避或降低风险的发生概率和影响程度。比如,为了应对业务需求变更的风险,可以采用敏捷开发方法,在架构设计中增加灵活性和可扩展性,以便能够快速响应需求的变化;为了应对技术风险,可以进行技术预研和原型验证,选择更成熟、稳定的技术方案。

参考引用

加入鸿蒙生态,共建万物互联。以下是鸿蒙应用开发常用教程。

点赞 + 关注 + 收藏 = 学会了

html2canvas 简介

html2canvas 是一个纯前端的 JavaScript 库,能直接在浏览器里把 HTML 元素 “拍” 成 Canvas 图片。不用麻烦后端接口,就能实现网页截图、生成分享海报、保存页面快照等需求。

安装方法

html2canvas 支持两种常见的安装方式,根据你的项目环境选就行:

1. npm /yarn 安装(推荐)

如果你的项目用了 Webpack、Vite 等构建工具,直接用包管理器安装:

# npm 安装
npm install html2canvas

# yarn 安装
yarn add html2canvas

本文使用 Vite 创建 Vue3 项目,通过 Vue3 的语法来讲解。在其他框架使用 html2canvas 用法也是差不多的。

2. CDN 引入

如果是简单的 HTML 项目,直接在页面里引入 CDN 链接:

<script src="https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"></script>

基础用法

先看一个最简单的例子:点击按钮,把指定的 div 转成 Canvas 并显示在页面上。

<template>
  <div>
    <!-- 要截图的区域 -->
    <div ref="captureRef" style="padding: 20px; background: #f0f0f0;">
      <p style="font-size: 16px; margin: 0;">随便写点什么,html2canvas 会把它变成图片~</p>
    </div>

    <!-- 截图按钮 -->
    <button @click="handleCapture">点击截图</button>
  </div>
</template>

<script setup>
import { ref } from 'vue'
import html2canvas from 'html2canvas'

// 获取要截图的 DOM 元素
const captureRef = ref(null)

// 截图函数
const handleCapture = async () => {
  // 调用 html2canvas,等待生成 Canvas
  const canvas = await html2canvas(captureRef.value)
  // 把 Canvas 加到页面上看看效果
  document.body.appendChild(canvas)
}
</script>

这段代码看似简单,但第一个坑也出现了。

此时如果在“截图区”加多一个 h2,结果可能会出乎你所料。

<!-- 要截图的区域 -->
<div ref="captureRef" style="padding: 20px; background: #f0f0f0;">
    <h2>雷猴</h2>
    <p style="font-size: 16px; margin: 0;">随便写点什么,html2canvas 会把它变成图片~</p>
</div>

<h2> 标题的样式没跟着生成出来啊。。。

解决方法很简单,不使用浏览器默认样式,给所有标签都加上指定样式。

<template>
  <div>
    <!-- 要截图的区域 -->
    <div 
      ref="captureRef" 
      class="capture-area" 
      style="padding: 20px; background: #f0f0f0;"
    >
      <!-- 关键样式建议写在行内,或者确保非 scoped -->
      <h2 class="title">这是要截图的内容</h2>
      <p style="font-size: 16px; margin: 0;">随便写点什么,html2canvas 会把它变成图片~</p>
    </div>

    <!-- 截图按钮 -->
    <button @click="handleCapture">点击截图</button>
  </div>
</template>

<script setup>
import { ref } from 'vue'
import html2canvas from 'html2canvas'

// 获取要截图的 DOM 元素
const captureRef = ref(null)

// 截图函数
const handleCapture = async () => {
  // 调用 html2canvas,等待生成 Canvas
  const canvas = await html2canvas(captureRef.value)
  // 把 Canvas 加到页面上看看效果
  document.body.appendChild(canvas)
}
</script>

<style scoped>
.capture-area {
  width: 400px;
  box-sizing: border-box;
  border: 1px solid #ccc;
}
.title {
  font-size: 24px;
  font-weight: bold;
  margin: 0 0 10px 0;
}
</style>

常用配置选项

html2canvas 提供了很多配置项,能帮你解决各种场景问题,这里列几个最常用的:

配置项类型默认值说明
scalenumberwindow.devicePixelRatio缩放比例,默认用设备像素比,提高截图清晰度(设为 1 会模糊)。
useCORSbooleanfalse是否允许加载跨域图片,设为 true 才能正确显示跨域图片。
backgroundColorstring#ffffffCanvas 背景色,设为 null 可以得到透明背景。
loggingbooleanfalse是否在控制台打印日志,调试时可以设为 true 看问题。
scrollXnumber0截图时的水平滚动偏移,解决页面滚动导致的内容错位。
scrollYnumber0截图时的垂直滚动偏移,同上。

如果你要截的元素包含图片,而且这张图片和你的网站存在跨域情况,大概率会出现图片出空白的情况。

<template>
  <div>
    <!-- 要截图的区域 -->
    <div 
      ref="captureRef" 
      class="capture-area" 
      style="padding: 20px; background: #f0f0f0;"
    >
      <!-- 关键样式建议写在行内,或者确保非 scoped -->
      <h2 class="title">这是要截图的内容</h2>
      <img src="https://iili.io/fcR7gSe.md.png" alt="" style="width: 140px;">
      <p style="font-size: 16px; margin: 0;">随便写点什么,html2canvas 会把它变成图片~</p>
    </div>

    <!-- 截图按钮 -->
    <button @click="handleCapture">点击截图</button>
  </div>
</template>

<script setup>
import { ref } from 'vue'
import html2canvas from 'html2canvas'

// 获取要截图的 DOM 元素
const captureRef = ref(null)

// 截图函数
const handleCapture = async () => {
  // 调用 html2canvas,等待生成 Canvas
  const canvas = await html2canvas(captureRef.value)
  // 把 Canvas 加到页面上看看效果
  document.body.appendChild(canvas)
}
</script>

<style scoped>
.capture-area {
  width: 400px;
  box-sizing: border-box;
  border: 1px solid #ccc;
}
.title {
  font-size: 24px;
  font-weight: bold;
  margin: 0 0 10px 0;
}
</style>

要解决这个问题需要2步操作。

  1. 图片服务器配置 Access-Control-Allow-Origin: *(允许跨域)
  2. html2canvas 配置 useCORS: true

如果想更稳妥一点,还可以给图片标签加 crossorigin="anonymous" 属性。

https://iili.io 这个图床是允许跨域的,所以我们直接在 html2canvas 里配置 useCORS: true 即可。

// 省略部分代码

const canvas = await html2canvas(captureRef.value, {
  useCORS: true
})

高级用法:导出并下载图片

生成 Canvas 后,通常需要把它转成图片文件让用户下载,这里用 toDataURL 实现

<template>
  <div>
    <!-- 要截图的区域 -->
    <div 
      ref="captureRef" 
      class="capture-area" 
      style="padding: 20px; background: #f0f0f0;"
    >
      <!-- 关键样式建议写在行内,或者确保非 scoped -->
      <h2 class="title">这是要截图的内容</h2>
      <img src="https://iili.io/fcR7gSe.md.png" alt="" style="width: 140px;">
      <p style="font-size: 16px; margin: 0;">随便写点什么,html2canvas 会把它变成图片~</p>
    </div>

    <!-- 截图按钮 -->
    <button @click="handleCapture">点击截图</button>
  </div>
</template>

<script setup>
import { ref } from 'vue'
import html2canvas from 'html2canvas'

// 获取要截图的 DOM 元素
const captureRef = ref(null)

// 截图函数
const handleCapture = async () => {
  // 调用 html2canvas,等待生成 Canvas
  const canvas = await html2canvas(captureRef.value, { useCORS: true });
  
  // 1. 把 Canvas 转成 PNG 格式的 base64 数据
  const imgData = canvas.toDataURL('image/png');
  
  // 2. 创建下载链接
  const link = document.createElement('a');
  link.download = '我的截图.png'; // 下载的文件名
  link.href = imgData;
  
  // 3. 触发点击下载
  link.click();
}
</script>

<style scoped>
.capture-area {
  width: 400px;
  box-sizing: border-box;
  border: 1px solid #ccc;
}
.title {
  font-size: 24px;
  font-weight: bold;
  margin: 0 0 10px 0;
}
</style>

常见坑点及避坑指南

html2canvas 虽然好用,但坑也不少。

跨域图片不显示或报错

前面已经提到了,如果截图里有跨域图片(比如图床的图),默认会显示空白。原因是浏览器的同源策略限制,html2canvas 无法直接读取跨域图片的像素。

解决方法

  • 图片服务器配置 Access-Control-Allow-Origin: *(允许跨域)
  • 给图片标签加 crossorigin="anonymous" 属性
  • html2canvas 配置 useCORS: true
<!-- 图片标签加 crossorigin -->
<img src="https://example.com/image.jpg" crossorigin="anonymous">

CSS 样式显示异常

部分 CSS 属性(如 transformbox-shadow、复杂渐变、伪元素 ::before/::after)可能渲染不对,甚至完全不显示。

html2canvas 是通过解析 DOM 和 CSS 手动绘制 Canvas 的,不是所有 CSS 都支持。

解决方法

  • 尽量用简单的 CSS 布局,避免太复杂的特效
  • 把复杂样式(如渐变、阴影)转成图片代替
  • 查看官方文档的 CSS 支持列表,避开不支持的属性

自定义字体渲染失败

用了自定义字体(如 @font-face),截图里却变成了默认字体。

html2canvas 截图时,字体可能还没加载完,就用了默认字体渲染。

解决方法

  • 等待字体加载完成后再截图,用 document.fonts.ready 即可
document.getElementById('btn').addEventListener('click', async () => {
  // 等待所有字体加载完成
  await document.fonts.ready;
  
  const element = document.getElementById('capture');
  const canvas = await html2canvas(element);
  document.body.appendChild(canvas);
});

滚动条导致截图不全或有滚动条

如果要截图的元素有滚动条,截图会包含滚动条,或者内容被截断。

解决方法

  • 截图前先隐藏滚动条,截图后恢复
const element = document.getElementById('capture');
// 保存原来的 overflow 样式
const originalOverflow = element.style.overflow;
// 隐藏滚动条
element.style.overflow = 'hidden';

const canvas = await html2canvas(element, {
  scrollX: 0,
  scrollY: 0 // 重置滚动偏移
});

// 恢复原来的样式
element.style.overflow = originalOverflow;

iframe 内容无法捕获

如果页面里有 iframe,html2canvas 无法截图 iframe 里的内容。

同源策略限制,无法直接访问 iframe 内部的 DOM。

解决方法

  • 如果 iframe 和主页面同域,可以手动获取 iframe 里的元素再截图
  • 如果跨域,基本无解,建议换其他方案(比如后端截图)

页面元素太多导致性能差

截图区域元素多、图片大时,生成 Canvas 会很慢,甚至浏览器卡顿。

解决方法

  • 适当降低 scale(比如设为 1.5 而不是 2)
  • 截图前隐藏不必要的元素(比如 display: none
  • 只截图需要的部分,不要截整个页面

SVG 元素显示异常

直接截图 SVG 可能会变形、错位,甚至不显示。

解决方法

  • 先把 SVG 转成图片,再插入 DOM 截图。可以用 canvg 库辅助转换,或者手动把 SVG 转成 base64 图片
// 简单的 SVG 转图片示例
const svgElement = document.querySelector('svg');
const svgData = new XMLSerializer().serializeToString(svgElement);
const img = new Image();
img.src = 'data:image/svg+xml;base64,' + btoa(unescape(encodeURIComponent(svgData)));

// 等图片加载完后,替换原来的 SVG,再截图
img.onload = async () => {
  svgElement.parentNode.replaceChild(img, svgElement);
  const canvas = await html2canvas(element);
  document.body.appendChild(canvas);
};

z-index 层级错乱

截图里的元素层级和实际页面不一样,该在上面的元素跑到下面了。

html2canvas 对 z-index 的解析有时会出问题,尤其是元素没有显式设置 position 时。

解决方法

  • 给需要层级的元素显式设置 position(如 relativeabsolute
  • 调整 DOM 顺序(后面的元素会覆盖前面的),代替 z-index

点赞 + 关注 + 收藏 = 学会了

每周一个小惊喜,mx anywhere 3s 已经送出 2 个,本周回帖抽 JBL GO4 ,踏春挂在背包上很拉风。。。


免五低佣低两融开户,找老倔驴,靠谱! 开户选择多还靠谱,聚合几十家券商优惠,连接 100+家营业部,已帮助 2000 人+。

开户点这里: https://jue.lv/kh/V2/202603b (10+券商可选,开户有礼!)

  • 只玩 ETF 的聪明钱 银河 ETF 万 0.5 ,1 毛起收非常合适。适合大多数散户,宽指 ETF+逆回购+打新。
  • 量化选手 miniqmt 申万国金可选。
  • 50W 以上的大佬 多个国泰营业部可选,还有长江。
  • 两融 西南广发银河平安等 50w-3.5%,100w-3.3%,200w-3.1%,800w-2.88%
  • VIP 通道 东莞万 0.76 ,20 万获得上限 50 人的 VIP 通道(不限制人数的都是假的,一般需要 100 门槛的),长江高门槛上限 200 人尊享通到,打板领先一步;

另外,渣打远程开港卡(存刀年化 3.7%,还能远程开港卡),港美 FX 可选;

(低门槛最近有点拉跨,需要 2 万低门槛又股票免五只能所以说有机会能开赶紧开)

友情提醒:不因奖品而参与股市,得不偿失!

为什么你的龙虾 openclaw 搜索网络资讯的技能不好用

前言

最近小伙伴在使用龙虾 openclaw 执行一些搜索网络资讯的服务时,发现被限制了频率。

图片

这个问题一方面可能是你对接的大模型的套餐的问题,就是超出套餐的频率了,比如最近比较多的一些 coding plan 套餐,一般都是 5 个小时 1200 次,超过了就会限速。

图片

另外一方面是因为 openclaw 内置的 web 工具有两个

  • 一个是 web\_search:默认使用 Brave Search API,它会根据搜索内容帮你整理并且返回,比较智能和高效,目前是需要付费使用的。

图片

  • 另一个是 web\_fetch:使用 http 协议,相当于直接打开网页,但是网页内容还需要龙虾进一步提炼和分析。

所以到这里你就知道为什么你的龙虾搜索网络资讯时,为什么不好用了吧?

解决方案

可以使用 Tavily Web 替代方案,它针对登录用户每月提供了 1000 Credits ,基本可以够普通用户体验使用。

图片

获取 key

注册和登录

然后获取你的专属的key

tvly-dxxxxxxxx

图片

使用和配置

然后回到你的小龙虾上,这样告诉它

帮我安装 Tavily Web 这个技能,并且设置它为你默认的搜索技能,并且配置 Tavily Web 的 key: xxxxxxxxx

上面的 xxx 需要转换成你的 key

image-20260311191914124

image-20260311191914124

图片

根据提示做回应即可,还是比较智能的。

完工

现在你可以继续使用联网的搜索服务了。

图片

总结

万少建立了一个专门讨论小龙虾OpenClaw的群,大家可以互相交流和分享关于小龙虾生态的资讯消息。

关注我,持续分享鸿蒙开发 + AI 提效的实战技巧。

点赞 + 关注 + 收藏 = 学会了

💡整理了一个 NAS 专属玩法专栏,感兴趣的工友可以戳这里关注 👉 《NAS邪修》

CoPaw 是阿里云通义团队于2026年2月14日推出的个人智能助理,支持本地与云端双模式部署,并于2026年2月28日开源。它不仅支持多种主流大模型(LLM),最核心的卖点在于其强大的扩展性,支持 MCP(Model Context Protocol)、自定义工具、技能,并能通过“频道”功能无缝对接钉钉、飞书、QQ 等平台,是打造私有 AI 自动化的利器。

本次教程以 飞牛 NAS 为例进行演示,其他品牌 NAS(如群晖、绿联等)操作逻辑基本一致。

打开 NAS 的「文件管理」,找到 docker 文件夹,在其内部新建一个名为 copaw 的文件夹。

再在 copaw 里创建一个 data 文件夹。

打开 NAS 的「Docker」应用,切换到 「Compose」 面板,点击“新增项目”。

  • 项目名称:copaw
  • 路径:选择刚刚创建的 docker/copaw 这个文件夹
  • 来源:创建docker-compose.yml

在新建的 docker-compose.yml 中,复制粘贴以下代码,保存即可:

services:
  copaw:
    image: agentscope/copaw:latest
    container_name: copaw
    ports:
      - 6688:8088 # 6688 可根据本地端口占用情况自定义
    volumes:
      - ./data:/app/working
    restart: unless-stopped

点击保存并等待容器构建完成。在浏览器访问 NAS_IP:6688 即可进入 CoPaw 界面。

打开 CoPaw 第一件事当然是把界面设置成中文啦。

点开右上角菜单可以切换成「简体中文」

CoPaw 作为一款个人助理工具,肯定得给它配个大模型。

我以月之暗面(Kimi)为例,你可以自行选择。

点击左侧菜单栏的 「模型」 -> 「添加提供商」,填入相关配置信息。kimi 的 Base URL 是 `https://api.moonshot.cn/v1。请根据你使用的提供商来填。

新增完“提供商”后,在「模型」页面往下滑动就可以看到刚刚新增的 kimi 了。

点击 kimi 卡片的「设置」按钮,配置一个 API 密钥(API Key,请到你使用的模型提供商那里申请),配置完后点击一下「测试连接」按钮,如果页面顶部出现 Connection successful 提示证明连通了~

连通之后点击「保存」。

连通之后,点击 kimi 卡片的「模型」按钮,配置一个模型。我用的是 kimi-k2.5

同样,添加模型后点击一下「测试连接」按钮,页面顶部出现 Connection successful 证明可以使用该模型了。

此时回到「模型」页面的顶部,配置一下LLM。

模型提供商选择刚刚创建的 kimi,模型选择刚刚配置的 kimi-k2.5,然后点击一下右侧的「保存」按钮。

回到首页的「聊天」页面就可以开始聊天了。

但只能聊天就不是AI助理了。

在左侧菜单栏可以看到 CoPaw 可以配置技能、工具、MCP,在「频道」面板还能接入钉钉、飞书、QQ 等工具。也就是类似小龙虾的玩法了。

至于 CoPaw 能做什么,请参考 CoPaw 官方文档(https://copaw.agentscope.io/docs/intro)或者现在网上讨论得热火朝天的小龙虾(OpenClaw)。

既然聊到 OpenClaw 了,那 CoPaw 和 OpenClaw 又有什么区别呢?

详情请看 CoPaw 官方文档的介绍:https://copaw.agentscope.io/docs/comparison


以上就是本文的全部内容啦,你有好玩的镜像推荐吗?欢迎在评论区留言讨论!

想了解更多NAS玩法记得关注《NAS邪修》👏

往期推荐:

点赞 + 关注 + 收藏 = 学会了

128 平方,4 个房间+客餐厅,原打算用 AC+5AP 的方案,后来查了下好像 1 个吸顶 AP (图片标红处)即可全覆盖,麻烦各位帮忙看下什么方案比较合适?

1440X1080/IMG_20260311_224312.png

社区的朋友们大家好!这是我们首次借用 vibe coding 的方式生成一篇完整的活动图文回顾,欢迎评论留言反馈!

有条件的朋友还可以查看网页版:

https\://physical-ai-meetup-beijing-0309.vercel.app/

2026 开年,开源项目 OpenClaw 的热度证明了个人化 AI 的潜力。从纯文本对话演进而来,Voice Agent 正在 Go Visual、Go Physical,并在往横跨桌面端、移动端与智能硬件的 Go Everywhere。跨平台、多模态的落地实战已经展开。

上周六(3 月 7 日),Physical AI Camp 北京站\&RTE Meetup 落地北京望京留创园。我们邀请了来自声网、矽递科技、Intent Company 和盒智科技的技术与产品专家。大家将围绕模型、通讯、硬件解决方案和终端落地场景的跨平台协同,交流真实的经验。

活动现场的精彩,不止于流程的顺利和思维的碰撞,更在于大家的热情参与。无须多言,一组现场图带大家回顾活动当天现场的热烈氛围!

关于 Physical AI Camp·超音速计划 2026

本次 RTE Meetup 也是 RTE 开发者社区即将推出的 「Physical AI Camp·超音速计划 2026」 的预热前哨站。

我们即将开启一个为期 3 个月的创业营,招募正在 Voice Agent、Physical AI 和实时多模态 AI 领域探索的创业团队。营期内,我们将为入营项目提供技术资源支持、投融资对接,以及行业头部展会的展位资源。

如果你正在这个领域创业,欢迎联系我们!

💡 我们也新开了一个「Physical AI+多模态」微信群,欢迎关注 AI 硬件、跨平台开发、语音交互、视觉理解等方向的伙伴申请加入!

加微信 Creators2022,备注身份和来意(公司/项目+职位/技术栈+加 Physical AI 群),备注完整者优先。

阅读更多 Voice Agent 学习笔记:了解最懂 AI 语音的头脑都在思考什么


目录:

  1. 前文回顾
  2. 背景引入:为什么同样的AI,不同人用差距这么大?
  3. 核心概念一:什么是提示词工程
  4. 核心概念二:为什么提示词这么重要
  5. 核心概念三:好提示词的六个原则
  6. 核心概念四:实用技巧和模板
  7. 核心概念五:提示词的迭代优化
  8. 常见场景的提示词示例
  9. 本文小结
  10. 今日思考题

一、前文回顾

在前面的文章中,咱们聊了:

  • 大模型的"思考"是<font style="color:rgb(118, 146, 60);">预测下一个词</font>
  • 大模型通过 <font style="color:118, 146, 60;">Token</font> 理解文字
  • 大模型会产生<font style="color:rgb(118, 146, 60);">幻觉</font>

但是!有一个很现实的问题:

<font style="color:rgb(118, 146, 60);">同样的 ChatGPT,为什么有的人用得特别溜,有的人却觉得不好用?</font>

答案就在今天要讲的主题——<font style="color:rgb(118, 146, 60);">提示词工程(Prompt Engineering)</font>。


二、背景引入:为什么同样的AI,不同人用差距这么大?

先来看一个真实的对比。

场景:让 AI 写周报

用户 A 的提示词:

"写周报"

AI 的回复:

本周工作总结:
1. 完成了日常任务
2. 参与了团队会议
3. 学习了新知识

下周计划:
1. 继续完成日常工作
2. 提升专业技能

(非常笼统,没什么用)


用户 B 的提示词:

"你是一名软件工程师,请帮我写一份本周工作周报。
本周完成了以下工作:
1. 完成了用户登录功能的前端开发
2. 修复了3个线上bug
3. 参与了需求评审会议

请用专业的格式,包含:工作内容、完成情况、遇到的问题、下周计划。
语气要正式,适合发给领导看。"

AI 的回复:

【本周工作周报】

一、工作内容与完成情况
1. 用户登录功能开发(已完成)
   - 实现了手机号登录、微信登录两种方式
   - 完成了表单验证和错误提示
   - 联调通过,准备提测

2. 线上问题修复(3项,均已完成)
   - 修复了首页加载慢的问题(优化了接口)
   - 修复了订单状态同步异常的问题
   - 修复了Android端闪退问题

3. 需求评审(已完成)
   - 参与了V2.0版本需求评审
   - 提出了3个技术可行性建议

二、遇到的问题与解决方案
- 登录接口响应慢:通过加缓存优化到200ms以内
- 微信SDK兼容问题:查阅文档后找到解决方案

三、下周计划
1. 用户登录功能提测并修复bug
2. 开始V2.0版本开发
3. 继续跟进线上问题

四、风险与建议
- 建议提前安排登录功能的安全测试

非常专业,直接可用。

这就是<font style="color:rgb(118, 146, 60);">提示词工程</font>的价值。


三、核心概念一:什么是提示词工程

3.1 什么是提示词(Prompt)?

<font style="color:rgb(118, 146, 60);">提示词就是你发给 AI 的指令、问题或要求</font>。

提示词示例:
- "写一首诗"
- "解释什么是量子力学"
- "帮我把这段话翻译成英文"
- "你是专业的Python工程师,请帮我写代码..."

3.2 什么是提示词工程?

<font style="color:rgb(118, 146, 60);">提示词工程(Prompt Engineering)</font>就是:

设计和优化提示词,让 AI 产出更好结果的<font style="color:rgb(118, 146, 60);">技术和艺术</font>。

3.3 提示词工程的本质

<font style="color:rgb(118, 146, 60);">提示词工程 = 和 AI "沟通"的艺术</font>。

就像和人沟通一样:

  • 你说清楚了,对方才能理解
  • 你说的方式不对,对方就会误解
  • 你表达得好,对方回应就更好

<font style="color:rgb(118, 146, 60);">大模型是很"听话"的,但前提是你得"说清楚"</font>。


四、核心概念二:为什么提示词这么重要

4.1 提示词是连接你和 AI 的桥梁

你的想法 → 提示词 → AI 理解 → AI 输出
            ↑
           关键!

<font style="color:rgb(118, 146, 60);">提示词写得不好,AI 就无法理解你的真实意图</font>。

4.2 好的提示词能带来什么?

对比项糟糕的提示词好的提示词
输出质量泛泛而谈、不精准针对性强、高质量
输出格式随机、不可用符合要求、可直接用
沟通效率来回多次纠正一次到位
用户体验觉得 AI 不好用觉得 AI 很强大

4.3 真实案例对比

任务:让 AI 解释一个技术概念

提示词 A:

"解释什么是微服务"

输出 A:

微服务是一种软件架构风格,它将应用程序
拆分成多个小的服务,每个服务独立部署...

(还行,但太笼统)


提示词 B:

"你是一名资深架构师,请向一个刚入行的程序员
解释什么是微服务架构。

要求:
1. 用通俗易懂的语言,避免太多专业术语
2. 举一个生活中的类比帮助理解
3. 对比单体架构,说明微服务的优缺点
4. 给出微服务适用场景的建议"

输出 B:

【微服务架构详解】

一、什么是微服务?

想象一下你开了一家餐厅:

单体架构就像一个"全能厨师":
- 一个人负责切菜、炒菜、煮饭、洗碗
- 如果这个厨师生病了,整个餐厅就停业了
- 想增加人手也很困难,因为一个人掌握所有技能

微服务架构就像"专业团队":
- 有专门的切菜工、炒菜师、煮饭师、洗碗工
- 每个人只负责自己的工作
- 一个人请假,其他人可以继续工作
- 想扩大规模,只需要多招几个对应岗位的人

微服务就是把一个大的应用程序,拆成多个小的、
独立的服务,每个服务专注于一个功能。

二、对比单体架构

单体架构:
✅ 开发简单,部署方便
❌ 一个bug可能导致整个系统崩溃
❌ 难以扩展,升级需要整体部署
❌ 技术栈统一,难以使用新技术

微服务架构:
✅ 服务独立,一个服务出问题不影响其他服务
✅ 可以针对每个服务单独扩展
✅ 可以使用不同技术栈
✅ 团队可以并行开发
❌ 运维复杂,需要管理多个服务
❌ 服务间调用有性能损耗
❌ 分布式事务处理困难

三、适用场景建议

适合用微服务的情况:
- 团队规模大(超过10人)
- 业务复杂度高
- 需要快速迭代和独立部署
- 不同模块有不同性能要求

不适合用微服务的情况:
- 项目刚开始,业务不明确
- 团队规模小(3-5人)
- 业务简单,不需要拆分

(非常详细、专业、易懂!)

<font style="color:rgb(118, 146, 60);">看到了吗?提示词越好,输出质量越高</font>。


五、核心概念三:好提示词的六个原则

这是本文的核心!记住这六个原则,你的提示词水平会大幅提升。

原则一:明确角色

告诉 AI 它 <font style="color:rgb(118, 146, 60);">扮演什么角色</font>。

❌ "帮我写一篇文章"
✅ "你是一名有10年经验的科技记者,请帮我写一篇关于AI的文章"

<font style="color:rgb(118, 146, 60);">为什么要明确角色?</font>

  • 不同角色的知识储备不同
  • 不同角色的表达风格不同
  • 角色让 AI 的输出更有针对性

常见角色示例:

领域角色设定
编程资深软件工程师、架构师、代码审查专家
写作科技记者、小说作家、文案策划
教育有经验的老师、一对一辅导员
商业咨询顾问、产品经理、数据分析师

原则二:明确任务

清楚地告诉 AI 你 <font style="color:rgb(118, 146, 60);">要它做什么</font>。

❌ "Python"
✅ "用Python写一个快速排序算法,包含详细注释"

<font style="color:rgb(118, 146, 60);">任务描述要具体:</font>

  • 做什么(写代码/写文章/分析问题...)
  • 关于什么(什么主题/什么领域...)
  • 要达到什么效果(解决什么问题/实现什么功能...)

原则三:明确要求

告诉 AI 你 <font style="color:rgb(118, 146, 60);">有什么具体要求</font>。

❌ "写一篇关于环保的文章"

✅ "写一篇关于环保的文章,要求:
1. 字数800-1000字
2. 适合初中生阅读
3. 包含3个实用的环保建议
4. 语气积极向上
5. 用讲故事的方式开头"

<font style="color:rgb(118, 146, 60);">要求越具体,输出越符合预期</font>。

原则四:提供上下文

给 AI 提供 <font style="color:rgb(118, 146, 60);">背景信息</font> 。

❌ "帮我优化这段代码"


✅ "我是一名Java初学者,这段代码功能是正确的,
但是运行速度很慢,处理100万条数据需要10分钟。
请帮我分析性能瓶颈,并给出优化建议。
如果有多个优化点,请按重要性排序。
"

<font style="color:rgb(118, 146, 60);">上下文包括:</font>

  • 你的背景(经验水平、专业领域)
  • 使用场景(要解决什么问题)
  • 当前情况(已经尝试过什么、遇到什么困难)
  • 期望目标(希望达到什么效果)

原则五:指定格式

告诉 AI 你 <font style="color:rgb(118, 146, 60);">希望什么格式的输出</font>。

❌ "分析一下这个产品"

✅ "请从以下维度分析这款产品:
1. 产品定位(用一句话概括)
2. 目标用户(年龄段、特征)
3. 核心功能(列出3-5个)
4. 竞争优势(对比竞品)
5. 潜在问题(列举2-3个)

请用表格形式呈现,每个维度不超过50字"

<font style="color:rgb(118, 146, 60);">常用格式:</font>

格式类型适用场景
表格对比分析、特征列举
列表步骤说明、要点总结
Markdown技术文档、结构化内容
JSON/代码程序化处理、API调用
分段长文写作、报告生成

原则六:给出示例

如果可以,<font style="color:rgb(118, 146, 60);">给 AI 一个参考示例</font>。

❌ "帮我写几条产品文案"

✅ "请帮我为一款智能手表写产品文案。
风格要简洁有力,突出卖点。

示例参考:
'24小时健康监测,你的私人医生'

请按照这个风格,写出5条不同侧重点的文案"

<font style="color:rgb(118, 146, 60);">示例的作用:</font>

  • 让 AI 理解你想要的风格
  • 让 AI 知道输出的"味道"
  • 提高输出的一致性

六、核心概念四:实用技巧和模板

咱们来学习一些实用的提示词技巧。

技巧一:思维链(Chain of Thought)

让 AI <font style="color:rgb(118, 146, 60);">展示思考过程</font>。

❌ "小明有5个苹果,吃了2个,又买了3个,现在有几个?"

✅ "小明有5个苹果,吃了2个,又买了3个,现在有几个?
请一步步思考:
1. 先计算吃掉后还剩多少
2. 再计算买后又变成多少
3. 给出最终答案"

输出效果:

一步步思考:
1. 小明有5个苹果,吃了2个,还剩 5-2=3个
2. 又买了3个,现在有 3+3=6个
3. 最终答案:6个苹果

<font style="color:rgb(118, 146, 60);">思维链可以显著提高复杂问题的准确率</font>。

技巧二:少样本学习(Few-Shot)

给 AI <font style="color:rgb(118, 146, 60);">几个示例</font>,让它照着做。

❌ "把下面的句子改成更正式的表达"

✅ "请把下面的句子改成更正式的表达。

示例1:
原文:这个项目搞砸了
改写:该项目未能达到预期目标

示例2:
原文:咱们明天开个会
改写:建议明日召开会议讨论

现在请改写:
原文:这个东西太好用了
改写:"

技巧三:角色+场景+任务+格式

这是一个<font style="color:rgb(118, 146, 60);">万能模板</font>:

【角色】你是一名...
【场景】我遇到的问题是...,我的背景是...
【任务】请帮我...,具体要求是...
【格式】请以...格式输出

实际应用:

【角色】你是一名有5年经验的Python后端工程师
【场景】我在做一个电商项目,需要实现订单状态流转功能
【任务】请帮我设计订单状态机,包括状态定义和流转条件
【格式】请用代码+注释的形式,并给出状态转换图

技巧四:分步提问

复杂问题<font style="color:rgb(118, 146, 60);">拆成多个小问题</font>。

❌ "帮我设计一个电商网站"

✅:
Step 1: "电商网站有哪些核心功能模块?请列举并说明优先级"

Step 2: "用户模块需要包含哪些功能?请详细列出"

Step 3: "请帮我设计用户注册登录的数据库表结构"

Step 4: "请用Python实现用户注册的API接口"

<font style="color:rgb(118, 146, 60);">分步提问 = 更精准的结果</font>。

技巧五:约束条件

明确告诉 AI <font style="color:rgb(118, 146, 60);">不应该做什么</font>。

✅ "请解释量子计算,要求:
- 不要使用太多数学公式
- 不要超过500字
- 不要使用专业术语
- 不要编造事实
- 面向普通读者"

七、核心概念五:提示词的迭代优化

好提示词是<font style="color:rgb(118, 146, 60);">迭代出来的</font>,不是一次写成的。

7.1 迭代流程

7.2 实战案例:迭代优化提示词

任务:让 AI 推荐一本学习 Python 的书

第一版提示词:

"推荐一本Python书"

输出:

我推荐《Python编程:从入门到实践》,
这本书适合初学者...

(有点太简单了)

第二版提示词:

"我是编程零基础,想学Python做数据分析。
请推荐一本适合我的书,并说明推荐理由。"

输出:

针对你的情况,我推荐《利用Python进行数据分析》。

推荐理由:
1. 专注于数据分析方向
2. 有丰富的实例
3. 涵盖pandas、numpy等核心库
...

(好多了,但还是有点笼统)

第三版提示词:

"我是编程零基础,想学Python做数据分析。
请按以下格式推荐书籍:

【推荐书籍】书名+作者

【适合人群】什么样的读者适合这本书

【核心内容】这本书主要讲什么(3-5点)

【推荐理由】为什么推荐(结合我的情况)

【学习建议】如何使用这本书学习

【备选方案】如果这本书不适合,还有什么替代选择"

输出:

【推荐书籍】
《Python编程:从入门到实践》
作者:Eric Matthes

【适合人群】
- 编程零基础的小白
- 想快速上手实践的读者
- 希望循序渐进学习的初学者

【核心内容】
1. Python基础语法和数据类型
2. if语句、列表、字典等基础概念
3. 类和面向对象编程入门
4. 实战项目:外星人入侵游戏、数据可视化、Web应用

【推荐理由】
针对你零基础想学数据分析的情况:
1. 前半部分打好Python基础,后半章节包含数据可视化,
   正好衔接你的目标
2. 强调实践,每个知识点都有代码示例
3. 项目驱动,学完能做出实际东西

【学习建议】
1. 前10章打基础,每天1-2章
2. 重点练习第6-9章(列表、字典、类)
3. 学完后继续学习《利用Python进行数据分析》
4. 边学边敲代码,不要只看不练

【备选方案】
如果你想直接学数据分析:
- 《利用Python进行数据分析》- Wes McKinney
  (适合有一定编程基础的读者)

如果更喜欢视频学习:
- B站上的"Python零基础教程"系列

<font style="color:rgb(118, 146, 60);">完美!</font>

<font style="color:rgb(118, 146, 60);">迭代优化的关键:</font>

  • 第一次能跑通就好
  • 看输出,找出问题
  • 补充要求,再次测试
  • 循环往复,直到满意

八、常见场景的提示词示例

场景一:写代码

你是一名资深[语言]工程师,请帮我[具体任务]。

背景:
- 我要实现的功能是:[描述]
- 当前遇到的问题是:[描述]
- 我的经验水平:[初学者/中级/高级]

要求:
1. 代码要有详细注释
2. 遵循最佳实践
3. 包含错误处理
4. 给出使用示例

场景二:写文章

你是一名资深的[领域]撰稿人,请帮我写一篇关于[主题]的文章。

文章要求:
1. 目标读者:[描述读者群体]
2. 文章风格:[专业/通俗/幽默/正式]
3. 字数要求:[具体字数]
4. 核心观点:[要传达的主要观点]
5. 文章结构:[大纲或要求]

请用:
- 吸引人的标题
- 开头要有吸引力
- 中间内容要有干货
- 结尾要有总结或号召

场景三:分析问题

我遇到了一个[领域]的问题,请帮我分析。

问题描述:
[详细描述问题]

背景信息:
- 我的目标是:[描述]
- 当前情况是:[描述]
- 我已经尝试过:[描述]
- 限制条件是:[描述]

请从以下角度分析:
1. 问题根源是什么
2. 有哪些可能的解决方案
3. 每个方案的优缺点
4. 你推荐哪个方案,为什么

请用表格形式呈现方案对比。

场景四:学习辅导

你是一名有经验的[学科]老师,请帮我学习[主题]。

我的情况:
- 当前水平:[零基础/初学/有基础]
- 学习目标:[具体目标]
- 学习时间:[每天/每周多少时间]
- 遇到的困难:[描述]

请提供:
1. 学习路线图(分阶段)
2. 每个阶段的学习内容和时间安排
3. 推荐的学习资源(书/视频/网站)
4. 学习方法和注意事项
5. 如何检验学习效果

请用循序渐进的方式,适合我当前水平。

场景五:邮件/消息

请帮我写一封[类型]的邮件/消息。

场景:
- 收件人是:[职位/关系]
- 发送目的:[具体目的]
- 核心内容:[要传达的信息]
- 期望结果:[希望对方做什么]

邮件要求:
1. 语气:[正式/友好/紧急/委婉]
2. 长度:[简洁/详细]
3. 重点:[需要突出的内容]

请包含:
- 合适的标题
- 清晰的开场
- 结构化的正文
- 明确的结尾/行动号召

九、本文小结

咱们今天主要讲了以下几点:

1. 什么是提示词工程

  • 提示词 = 你发给 AI 的指令
  • 提示词工程 = 设计和优化提示词的技术和艺术
  • 本质是和 AI "沟通"的艺术

2. 为什么提示词很重要

  • 提示词是连接你和 AI 的桥梁
  • 好的提示词 = 好的输出
  • 同样的 AI,不同提示词效果天差地别

3. 好提示词的六个原则

原则要点
明确角色告诉 AI 扮演什么角色
明确任务清楚说明要做什么
明确要求具体的要求清单
提供上下文给出背景信息
指定格式规定输出格式
给出示例提供参考样例

4. 实用技巧

  • 思维链:让 AI 展示思考过程
  • 少样本学习:给示例让 AI 照着做
  • 万能模板:角色+场景+任务+格式
  • 分步提问:复杂问题拆成小问题
  • 约束条件:明确不应该做什么

5. 迭代优化

  • 好提示词是迭代出来的
  • 流程:写初版 → 测试 → 分析 → 优化 → 再测试
  • 不要指望一次写出完美提示词

6. 关键公式

好的提示词 = 明确角色 + 清晰任务 + 具体要求 + 足够上下文 + 合适格式

十、今日思考题

今天留一个实践题:

选择一个你经常使用的场景(比如写代码、写文章、学知识),按照今天讲的原则和技巧,写一个"终极版"提示词。

提示:先用目前的水平写一版,然后根据今天学的内容不断优化,看看最后能优化成什么样。

欢迎在评论区分享你的提示词,咱们一起交流进步!


<font style="color:rgb(118, 146, 60);">往期推荐:</font>


如果这篇文章对你有帮助,欢迎点赞关注,我会持续用大白话讲解复杂的技术概念!

<font style="color:rgb(118, 146, 60);">系列文章进度:</font>

  • ✅ 微调
  • ✅ Transformer
  • ✅ 思考原理
  • ✅ 训练流程
  • ✅ Token
  • ✅ 幻觉
  • ✅ 提示词工程(本文)

<font style="color:rgb(118, 146, 60);">下一期预告:</font> RAG 是什么?如何让大模型联网学习?

本文由mdnice多平台发布

一、 一次 PR 审查 25 美元,“按量计费”的屠刀挥向工程团队

3 月 9 日,Anthropic 正式推出了一款名为 Code Review 的代码审查产品。与传统运行在开发者本地 IDE 中的辅助插件不同,该服务直接卡位 GitHub 和 CI/CD 流程,在代码提交后、人工审查前进行自动拦截与检查。

然而,真正引发开发者圈子震动的是其高昂的定价。Claude Code 创始人 Boris 证实,该服务按 token 消耗量计费,平均每次 Pull Request(PR)的审查费用在 15 到 25 美元之间。

Claude Code 创始人证实价格

开发者 Sinai Gross 实测了 3 个 PR(两个约 750 行,一个约 100 行),平均单次花费达 18.39 美元。

开发者实测单次费用达18.39美元

如果将这个成本放入中大型工程团队中,数字将变得极为夸张。以一个 50 人的开发团队为例,假设每人每天提交 1-2 个 PR,按单次 20 美元计算,每天的审查费用高达 2000 美元,全年成本轻松突破 70 万美元。随着企业规模扩大,这笔费用极易飙升至数百万美元。

网友指出大公司成本将迈入百万美元级别

作为对比,市面上同样主打 AI 代码审查的 CodeRabbit,其包月费用仅为 24 美元(且对开源项目免费)。这意味着 Claude 多跑两三次 PR,花费就已经超过了竞品一个月的价格。

对比更便宜的替代方案 CodeRabbit

【笔者观点】 软件行业的计费逻辑正在发生极其残忍的重构。过去,SaaS 模式的本质是“一次买断时间,无限次使用”;而 Claude 的定价策略,正在将代码审查变成一种类似水电煤的“基础设施税”。这背后折射出一个反常识的现实:在 AI 时代,代码生成的边际成本趋近于零,但“验证正确性”的成本却在呈指数级上升。大厂们可能刚刚因为 AI 裁掉了一批程序员省下薪水,转头就得把这笔钱以“API 调用费”的形式如数奉还给大模型公司。

二、 放弃“秒回”,用 20 分钟换取“逻辑级”的排雷

在追求极致效率的 AI 工具赛道里,Claude 的 Code Review 显得异常“慢”。Anthropic 官方表示,平均一次审查需要耗时约 20 分钟。

这种延迟来源于其底层设计的刻意选择:并行 Agent 机制与全代码库扫描。系统并非只盯着 PR 改动的寥寥几行代码,而是将整个代码库作为上下文进行遍历,以排查不同模块间可能引发的连锁 Bug。

此外,Anthropic 产品负责人 Cat Wu 明确表示,这组并行的 AI Agent 仅专注于“逻辑错误(logic errors)”,而完全忽略代码风格问题。数据显示,在超过 1000 行变更的大型 PR 中,84% 的自动审查能发现平均 7.5 个有效问题;而在人类工程师的反馈中,被 AI 标记的问题否决率不到 1%。

Code Review 并行 Agent 工作演示

【笔者观点】 毫无波澜的“秒级代码规范检查(Lint)”已经毫无商业价值。Claude 敢于让开发者等 20 分钟,本质上是在用“高昂的算力+时间”去兑换“极低的误报率”。在复杂的工业级项目中,宁可花 20 刀和 20 分钟去排雷,也不愿让一个隐蔽的逻辑 Bug 炸毁生产环境。这也给所有做 AI 研发效能的团队敲响了警钟:开发者对“正确的废话(比如挑剔缩进和命名)”极其厌恶,谁能精准刺穿逻辑层的错误,谁才具备收过路费的资格。

三、 既当裁判又当运动员:AI 闭环下的终极阳谋

Anthropic 在发布时透露了一个略显讽刺的行业现状:过去一年,自家工程师的代码产量暴增了 200%,导致“代码审查”成了开发流程中最大的瓶颈。写代码的速度远超审代码的速度,PR 堆积如山,人类工程师根本看不完。

于是,Anthropic 给出的解决方案是:用 AI 来审 AI 写的代码。

这一逻辑迅速引发了社区的强烈质疑。有开发者尖锐地指出,这违背了“裁判不能同时当运动员”的基本原则。既然 Claude 具备查出 Bug 的能力,为什么不能在生成代码的阶段就直接写对?甚至有阴谋论吐槽:这会不会演变成 Claude 先故意(或受限于能力)写出一堆包含隐患的代码,然后再通过“修复自己制造的 Bug”来持续按量收费?

网友犀利吐槽既当运动员又当裁判

【笔者观点】 这才是整盘棋中最令人脊背发凉的商业阳谋。AI 巨头们先是用极高的代码生成产能,撑爆了人类工程团队的审查极限,人为制造出巨大的“技术债务焦虑”和“系统失控恐慌”。当所有人都发现代码合并不进去时,巨头再反手卖给你一个天价的“解药”。看似是给模型的不稳定打补丁,实则是完成了商业变现的完美闭环。未来,不交这笔“代码审查税”的企业,可能连自己系统的底层逻辑是如何崩塌的都无从知晓。

👇 欢迎关注我的公众号

在 AI 爆发的深水区,我们一起探索真正能穿越周期的技术价值。
微信搜索 【睿见新世界】 或扫描下方二维码,获取每周硬核技术推文:

微信图片_20260301232734_225_35.jpg

欢迎关注【睿见新世界】

开发者朋友们大家好:

这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术 」、「有亮点的产品 」、「有思考的文章 」、「有态度的观点 」、「有看点的活动」,但内容仅代表编辑的个人观点,欢迎大家留言、跟帖、讨论。

本期编辑:@koki、@鲍勃

01 有话题的技术

1、腾讯上线旗下三款龙虾 AI
  • QClaw

它具备一个现在所有 OpenClaw 产品都没有的「杀手级」功能------直接在微信和龙虾对话,让它帮你干活。但比较遗憾的是,目前 QClaw 还没正式上线。

根据官网信息,它支持 Mac 和 Windows 双端,内置了 Kimi-2.5 模型,内测用户展示的界面显示可默认关联到 Kimi、Minimax、GLM、DeepSeek 等内置模型,还可让用户自定义大模型。

值得关注的是,QClaw 背靠着一个庞大的 Skills 生态,链接了 ClawHub 和 GitHub,拥有超过 5000 种 Skills 储备。另外 QClaw 还拥有「持续记忆」的能力和本地数据保存。

  • 企业微信接入 openclaw

也是同一时间,企业微信官方宣布支持通过 OpenClaw 快速接入并写入数据至智能表格,让 AI 真正成为办公利器。同时,「长连接方式」 不仅支持被动回复,还支持 AI 主动向用户发送消息。

  • 腾讯版龙虾 WorkBuddy

腾讯版龙虾 WorkBuddy 也在昨日正式上线,完全兼容 OpenClaw 的技能,它能接入 QQ、飞书、钉钉等工具。还支持多窗口多 Agent 智能体并行工作、与 CodeBuddy 统一管理后台、账号与计费体系等亮点。

(@APPSO)

2、SpacetimeDB 2.0:融合数据库与服务器架构的 Rust 实时数据同步引擎

*

SpacetimeDB 2.0 核心逻辑非常暴力:它直接砍掉了传统的 API 中间层,让客户端直连数据库。这款基于 Rust 编写的引擎试图打破「数据库+后端服务器」的传统架构,将两者融合为一个统一体。

这种架构最直观的改变是,所有的逻辑处理和状态变更都会由数据库实时推送到所有关联客户端。开发者在演示中甚至直接用它跑通了视频通话,证明了其在极低延迟下的同步能力。

尽管社区对其「1000 倍加速」的跑分公平性(尤其是协议对比方面)仍有争论,但其在工程上的尝试非常明确:针对多人竞技游戏、协作办公工具以及 AI Agent 之间的高频对话,提供一种无需反复构建后端 CRUD 接口的开发新范式。

GitHub 链接:

https://github.com/clockworklabs/SpacetimeDB

( @sitinme@X)

*

02 有亮点的产品

1、ElevenLabs 将在 SXSW 首映 AI 语音纪录片《11 Voices》,聚焦于用科技帮助失声者重获新声

ElevenLabs在 2026 年 SXSW 期间发布了纪录片集《11 Voices》,这是首部由失语症患者利用 AI 重建原声进行旁白叙述的系列短片。

该项目展示了 11 位因渐冻症(ALS)、事故或其他疾病导致永久丧失说话能力的人士,如何通过 ElevenLabs AI 语音克隆技术重新获得属于自己的沟通声音,并应用于教学、表演及家庭生活等真实场景。

该项目技术侧重点在于对语调细节、呼吸感及情感共鸣的参数化模拟,使失语者能够通过文本输入实时驱动 AI 生成具备其原始音色的语音流。

作为 ElevenLabs Impact Program 的核心部分,该计划旨在通过向医疗、教育及文化领域的非营利机构以及有视力或言语障碍的个人免费开放 AI 工具,帮助全球 100 万人重拾声音。

目前,由影星迈克尔·凯恩爵士配音的项目预告片已上线,展示了 AI 技术在身份认同与情感连接中的实际应用案例。

(@elevenlabsio@X)

2、Runway 推出 Characters:可定制的实时智能数字人

Runway 正式推出 Runway Characters ,这是一套基于其 GWM-1(General World Model)底座的实时视频智能体 API。该工具允许开发者通过单一参考图像,零微调(Zero Fine-tuning)生成具备完整对话表现力的数字分身,旨在将传统的文本交互升级为高保真、低延迟的实时视频流交互。

核心技术规格与集成能力

*

  • 模型架构 :由 GWM-1 驱动。核心特性在于单图驱动(Single-image Generation),无需针对特定角色进行数据集扩充或模型微调,即可实现从写实人像到 3D 动画、品牌吉祥物的全风格覆盖。
  • 交互表现力:支持全闭环的对话表达,包括面部细微表情、眼球运动、实时口型同步(Lip-sync)以及在说话与倾听状态下的肢体手势。
  • API 控制参数

    • 形象定义:通过 reference image直接定义视觉特征。
    • 语音与个性:通过 API 注入自定义语音、性格设定及行为逻辑指令。
    • 知识库挂载 :支持嵌入企业级知识库(Knowledge Base)及配置对话动作(Conversational Actions)
  • 实时性能:支持长时对话下的性能稳定性,确保视频流质量不会随交互时长增加而退化(No degradation)。

开发者可利用该 API 将视频智能体无缝集成至产品、网页或 App 中。除了视觉输出,系统支持触发特定的业务逻辑。例如,智能体可根据实时库存引导用户下单、自动创建客户支持工单,或调用企业私有数据回答专业咨询。目前,BBC 及 Silverside 已接入该套件用于内容制作与交互开发。

( @runwayml@X)

3、钉钉发布 DingTalk A1 医生版

昨日,钉钉发布旗下 AI 硬件 DingTalk A1 在医疗行业的垂直化版本。

官方表示,DingTalk A1 医生版也是 AI 硬件在医疗临床问诊及决策领域的重要落地。

据悉,DingTalk A1 医生版与壹生检康豆蔻妇科大模型深度融合,能够为医生提供从语音记录、信息整理到医学知识检索与临床决策支持的全流程 AI 辅助,助力医生群体进入 AI 时代的工作方式。

DingTalk A1 是钉钉在 2025 年推出的首款 AI 硬件。这款仅 3.8mm 厚度的「AI 录音卡片」,搭载 6 麦克风阵列,具备远场拾音能力,支持最长 45 小时连续录音,可以实现 AI 语音转写、会议纪要生成,同声传译及 AI 助理等功能。

另外,豆蔻医疗大模型目前已经在全国近千家医疗机构中落地应用,为众多妇产科医生提供 AI 文献分析报告并提示鉴别诊断方向。

( @APPSO)

*

03 有态度的观点

1、董明珠:我都不怕被 AI 替代,年轻人怕什么?

全国人大代表、格力电器董事长董明珠在接受采访时,回答了自己对于年轻一代的看法。

董明珠说,「不同的时代都有不同时代的年轻,有不同的快乐和烦恼。我觉得我们年轻人要有一种更好的心态去面对自己的现状,积极向上的心态去解决问题。现在的年轻人都很努力,根本不需要我们讲,他们自己就会知道自己应该做什么。」

对于「有年轻人担心被 AI 替代」这一话题,董明珠则表示,「我那么大年纪都不怕被 AI 替代,你们年轻人怕什么?只能通过学习,做到比 AI 聪明!」

*

据她透露,自己已熟练使用 AI 正常处理工作。在 2025 年中国品牌节上,董明珠还曾提及传统产业与 AI 技术的共生关系。其认为,数字化时代的 AI 技术需要嫁接在传统产业中,两者需要完美结合;而对于传统制造业来说,更要不断地创新和提高自身的水平。

(@APPSO)

*

04 社区黑板报

招聘、项目分享、求助......任何你想和社区分享的信息,请联系我们投稿。(加微信 creators2022,备注「社区黑板报」)

1、Physical AI 系列活动硅谷站!探讨和上手全模态与硬件智能丨 Meetup+Workshop,3 月 19 日

湾区硅谷的开发者和创业者们,3 月 19 日见!

GTC 期间,来一场动脑又动手的 Physical AI 全天候嘉年华!同一场地,两场硬核活动无缝衔接:

🌅 上午 09:30|Meetup:对话真实世界

Agora | RiseLink | MiniMax | HumanTouch | EverMind | Resonance Ventures 等大咖齐聚,拆解全模态与端侧智能的机会与未来。

🛠 下午 13:30|Workshop:手搓语音 AI 硬件

基于 TEN 框架,实操接通语音 AI Agent。重点来了👉现场备有 40 套 Agora R1 开发板,代码跑通直接把硬件带回家!

上下午活动需分开独立报名,名额有限,拼手速:

上午 Meetup 报名:

https://luma.com/8we6qyma

下午 Workshop 报名:

https://luma.com/onc0xr9y

地点:Sunnyvale (审核后发具体定位)

2、3.14 北京丨养虾社 国内虾人浓度最高的OpenClaw Weekly Meetup预告来了!

*

阅读更多 Voice Agent 学习笔记:了解最懂 AI 语音的头脑都在思考什么

写在最后:

我们欢迎更多的小伙伴参与**「RTE 开发者日报」**内容的共创,感兴趣的朋友请通过开发者社区或公众号留言联系,记得报暗号「共创」。

对于任何反馈(包括但不限于内容上、形式上)我们不胜感激、并有小惊喜回馈,例如你希望从日报中看到哪些内容;自己推荐的信源、项目、话题、活动等;或者列举几个你喜欢看、平时常看的内容渠道;内容排版或呈现形式上有哪些可以改进的地方等。

作者提示:个人观点,仅供参考

传统统计方法在时间序列分析中既简洁又有力,但面对大规模时间序列集合时,扩展性往往不尽如人意。现实中的趋势变化往往微弱、带有噪声、数量也不止一个,靠肉眼判断既不可靠也不现实。一旦需要处理数十乃至数百条时间序列,人工识别就更不可行了。

Figure 1: Identify the optimal number of knots and their positions using grid search

解决思路是用程序来定位变化点。估计趋势变化点的手段有很多,本文聚焦于网格搜索策略与分段回归的结合,自动确定变化点的数量和位置。

完整代码有 R 和 Python 两个版本,Streamlit 应用也可在线体验。

使用网格搜索寻找变化点

网格搜索是一种系统化的优化技术,原理并不复杂:在预定义的离散候选参数集上逐一评估模型,按照指定准则挑出表现最好的那组配置。

在分段回归中,待搜索的参数就是节点(knot)的数量和位置,每个节点对应一个候选变化点。整体流程如下:

  • 定义参数
  • 定义代价函数
  • 对每组网格组合拟合分段回归
  • 对结果评分
  • 选择达到最优结果的网格组合

为减少过拟合、增强稳定性,还需要设置节点之间的最小距离约束,避免变化点在时间轴上挤得太近。

定义代价函数

比较不同变化点数量的模型之前,需要有一套统一的评价标准。代价函数(也叫损失函数或目标函数)就是干这个的:它接收一组模型参数,输出一个标量,反映模型误差或拟合质量。机器学习和统计建模中的训练与模型选择,本质上都是在寻找令代价函数取极值的参数组合。

回归问题中,代价函数度量的是预测值与观测值之间的偏差。常见选择包括:均方误差(MSE)度量平方残差的均值;平均绝对误差(MAE)度量绝对残差的均值;负对数似然(NLL)度量观测数据在给定模型下出现的概率。

这些指标只关注拟合优度,不考虑模型复杂度。变化点越多的分段回归模型几乎总能把误差压得更低,哪怕它只是在拟合噪声。

应对方法是引入惩罚代价函数,在拟合质量和模型复杂度之间取得平衡。AIC(赤池信息准则)和 BIC(贝叶斯信息准则)是两个典型代表,均以负对数似然为基础,再加上一个与估计参数数量相关的惩罚项。

AIC:

AIC=-2log(L) +2k

BIC:

BIC=-2log(L)+klog(n)*

其中:

  • L = 最大化似然值
  • k = 估计参数的数量
  • n = 观测值的数量

    Figure 2: Example for finding the optimal number of knots using the BIC score

惩罚项的存在抑制了不必要的复杂度,有助于在网格搜索中筛选出真正有意义的变化点数目。BIC 的惩罚力度比 AIC 更重,选出的变化点数量往往更少——也就更保守。

网格搜索工作流程

基础概念铺设完毕,下面定义网格搜索的具体流程。一个典型的变化点检测网格搜索包含四个环节:

  • 准备数据并定义搜索空间
  • 为给定的节点配置拟合分段回归模型
  • 使用惩罚代价函数评估每个配置
  • 选择最优的节点数量及其位置

函数输入是时间序列与搜索空间参数,输出是最优节点集合。

Figure 3: A general grid search function workflow

网格搜索胜在直白、易于实现,但计算开销会随候选变化点数量的增长而快速膨胀。引入搜索空间约束可以缓解这个问题:减少待评估的配置数,同时也起到防止过拟合的作用。

具体的约束手段有三条:一是排除序列头尾一定比例的观测值,保证每个分段都有足够数据支撑趋势估计;二是强制每个分段包含不少于某个阈值的观测值,稳定斜率估计,避免模型在短而嘈杂的片段上过拟合;三是限定节点数量的上限,控制搜索范围。

设置这些参数时需要综合考虑观测值数量、序列频率以及业务逻辑。

注意,这里用不含节点的简单趋势模型作为网格搜索结果的基准。

网格搜索实现

回到前一篇教程的示例——加利福尼亚州天然气消费者数量,看一下网格搜索函数在 R 中的实现。Python 版本可在对应 notebook 中获取。

加载所需的库:

 library(dplyr)  
 library(tsibble)  
 library(plotly)

引入一组辅助函数,其中包括网格搜索函数 piecewise_regression:

 fun_path <- "https://raw.githubusercontent.com/RamiKrispin/the-forecaster/refs/heads/main/functions.R"  
   
 source(fun_path)

加载序列并整理格式:

 path <- "https://raw.githubusercontent.com/RamiKrispin/the-forecaster/refs/heads/main/data/ca_natural_gas_consumers.csv"  

ts <- read.csv(path) |>  
    arrange(index) |>  
    filter(index > 1986) |>  
    as_tsibble(index = "index")  

 ts |> head()

序列为年度数据,index 列是时间戳,y 列是数值:

 # A tsibble: 6 x 2 [1Y]  
  index       y  
  <int>   <int>  
1  1987 7904858  
2  1988 8113034  
3  1989 8313776  
4  1990 8497848  
5  1991 8634774  
 6  1992 8680613

绘制序列:

 p <- plot_ly(data = ts) |>  
  add_lines(x = ~ index,  
            y = ~ y, name = "Actual") |>  
            layout(  
        title = "Number of Natural Gas Consumers in California",  
        yaxis = list(title = "Number of Consumers"),  
        xaxis = list(title = "Source: US energy information administration"),  
        legend = list(x = legend_x, y = legend_y)  
    )  

 p


Figure 4: Yearly number of natural gas consumers in California. The series is trending up without seasonality patterns

用 piecewise_regression 函数识别最优节点数量及位置:

 grid <- piecewise_regression(  
    data = ts,  
    time_col = "index",  
    value_col = "y",  
    max_knots = 4,  
    min_segment_length = 8,  
    edge_buffer = 0.05,  
    grid_resolution = 20  
 )

搜索空间由以下参数定义:

  • max_knots - 最大节点数量
  • min_segment_length - 两个节点之间的最小观测值数量
  • edge_buffer - 从序列头尾排除的观测值比例
  • grid_resolution - 每个节点数量对应的最大搜索组合数

这里把 max_knots 设为 4,搜索空间中节点数量的范围就是 0–4。函数会根据约束条件生成候选配置,并裁剪掉不满足条件的组合。

运行结果如下:

 Testing 0 knot(s)...  
  Best BIC: 919.28 | RSS: 1.006639e+12 | Tested 1 configurations  
Testing 1 knot(s)...  
  Best BIC: 858.05 | RSS: 182625404855 | Tested 18 configurations  
Testing 2 knot(s)...  
  Best BIC: 844.26 | RSS: 115452860424 | Tested 25 configurations  
Testing 3 knot(s)...  
  Best BIC: 852.94 | RSS: 131838198802 | Tested 5 configurations  
Testing 4 knot(s)...  

Optimal model:  2 knot(s) with BIC = 844.26   
Warning message:  
In generate_candidates(k, min_idx, max_idx, min_segment_length) :  
   Cannot fit 4 knots with min segment length 8

输出按节点数量分组列出了测试过的模型数,最终确定最优节点数为 2。函数还抛出了一条警告:受搜索空间约束限制,观测值不足以容纳 4 个节点,因此跳过了对应的拟合。这一行为符合预期——说明约束条件正在起作用。

下面的动画展示了搜索空间中所有配置的拟合过程:

Figure 5: Animation of the grid search process

函数输出中包含搜索过程和最优结果的详细信息。最优节点数:

 grid$optimal_knots  
 [1] 2

节点位置:

 grid$knot_dates  
 [1] 1999 2007

最后,用

plot_knots

函数加上注释,把最优节点叠加到原始序列上进行可视化:

Figure 6: The optimal number of knots and their positions based on the grid search results

局限性

网格搜索配合分段回归,对于识别趋势变化点的数量和位置是一种切实可行的方案。它最适合的场景是相对"干净"的时间序列,主导信号就是底层趋势——本文的示例正是如此。

现实中的时间序列往往不这么纯粹。季节性、突发水平偏移、异常值都可能干扰甚至扭曲趋势成分。在这些效应存在的情况下,网格搜索可能定位到虚假的变化点,也可能遗漏真正有意义的趋势断裂。

一种可行的预处理策略是先做分解(如 STL),将趋势成分分离出来,再在提取到的趋势上执行网格搜索,而非直接在原始序列上操作。

对于结构复杂或噪声较大的序列,能够联合建模趋势与季节性的变化点检测方法可能更为适用。

总结

本文展示了如何将变化点检测转化为一个优化问题:通过网格搜索遍历候选节点配置,用惩罚似然准则(BIC)选出最优模型,配合分段回归完成趋势变化点的自动检测。

分段回归是建模趋势变化的可解释框架;网格搜索虽然朴素,但在估计变化点位置上行之有效;BIC 等惩罚准则在拟合优度与模型复杂度之间做出了取舍,抑制了过拟合倾向;搜索空间约束——边缘缓冲区、最小分段长度、最大节点数——进一步稳定了模型并降低了计算开销。

网格搜索在计算效率上确实算不上最优解,但它的透明度是一大优势,作为基线方法和实际工程中的可用方案都没有问题。面对更复杂的场景,可以在此框架基础上引入高级优化策略或贝叶斯变化点检测方法。下一篇教程将讨论如何把这套方法应用到更复杂的实际场景中。

本文代码:

https://avoid.overfit.cn/post/17546aec522448f3a843c394d804fe48

by Rami Krispin

2026 年,智能体将在企业级应用中取得哪些实质性突破?点击下载《2026 年 AI 与数据发展预测》白皮书,获悉专家一手前瞻,抢先拥抱新的工作方式!

Snowflake 是一个完全托管的 Data & AI 平台,以易用性、广泛的连接能力,以及对企业数据资产的无缝集成而备受全球成千上万客户的信赖。该平台与 Amazon Web Services 深度集成,旨在加速企业级数据与人工智能(AI)技术的落地应用。本快速入门指南将重点介绍 Snowflake 与 Amazon Quick 的集成方案,帮助用户构建由 AI 驱动的商业智能(BI)能力,实现对企业全域数据源的统一智能分析,并打通从洞察获取到行动执行的“最后一公里”关键环节。

本次集成的核心亮点在于 Snowflake 引入的全新架构对象——语义视图。语义视图赋予原始企业数据以业务含义与上下文,通过定义“指标”(例如总观看量、用户评分)与“维度”(如电影、类型),在人机交互的自然语言与复杂数据结构之间建立起一座可靠的桥梁。语义视图将组织的业务上下文与数据定义直接嵌入数据层,从而确保 AI 与 BI 系统能够以统一方式解读数据,提供可信的分析结果,并显著降低 AI 模型产生幻觉的风险。

用户可在 Cortex Analyst 中直接使用语义视图,并在 SELECT 查询中对其进行调用。此外,语义视图支持通过私有列表、Snowflake 市场上的公共列表以及组织内部列表进行共享。通过在物理数据之上附加明确的业务语义,语义视图有效提升了数据驱动决策的精准度,并确保不同企业应用之间的业务定义保持一致。

作为 Snowflake 的原生架构对象,语义视图还提供对象级别的访问控制能力:用户可像对待普通表和视图一样,授予或限制对语义视图的使用与查询权限,从而确保在 SQL 查询、BI 分析以及 AI 应用等多个访问端点上,数据的访问均经过严格授权与合规管控。

Semantic View diagram

使用案例

在本教程中,您将学习如何通过 Snowflake Cortex Analyst 对某传媒公司的客户评论数据进行处理与分析,并利用亚马逊云科技 QuickSuite 套件中的 Amazon Quick Sight 构建可视化仪表板。本案例将以包含电影传媒公司客户评论的电影数据集为操作对象,帮助您将原始数据转化为可执行的业务洞察。

该集成方案充分利用了 Snowflake 的原生能力,能够将从 Amazon S3 获取的结构化影评数据直接导入数据库模式中。通过 SQL 定义包含表关系、维度和指标的 Snowflake 语义视图,可以显著增强人工智能分析的效果。将语义模型从传统的 BI 工具层迁移至核心数据平台,可确保所有分析工具使用统一的语义概念,提升数据的一致性和可复用性。

关键步骤与优势

数据摄入与语义视图创建:使用 Snowflake 原生数据摄入工具,从 Amazon S3 加载数据,并通过 SQL 构建语义视图,为业务用户简化底层数据库结构,提升数据可理解性。

基于 Cortex Analyst 的自助式分析:业务团队和非技术用户可通过 Snowflake Cortex Analyst,利用自然语言进行自助式数据分析,从 Snowflake 中的结构化数据快速获取业务洞察。

Amazon Quick Sight 集成:遵循 Jupyter Notebook 中的 QuickSight 数据集生成器指南,通过 Snowflake DDL 创建 QuickSight 数据集,涵盖从配置凭证到数据集共享的完整流程,并可使用 AWS Cloudshell 以编程方式调用 Amazon Quick Sight API,实现自动化部署与管理。

增强的人工智能商业智能:该集成方案助力商业智能团队通过自然语言交互,便捷地创建交互式图表与仪表板、构建计算字段、开发数据故事、开展假设情景分析,同时有效降低人工智能幻觉的风险。此外,商业智能团队可将基于 Snowflake 的仪表板集成至(Amazon Quick) Movies 空间,将其他文件、仪表板、主题、知识库与应用操作整合为一个统一且可定制的企业知识中心,进一步提升数据驱动决策的效率和准确性。

architecture diagram

学习目标

• 掌握 Snowflake 中仓库、数据库及模式的配置方法;

• 学习如何将 Amazon S3 数据导入 Snowflake 平台;

• 了解并实践 Snowflake 语义视图的完整构建流程,涵盖表结构、关联关系、维度与指标的定义;

• 初步掌握 Snowflake Notebook 的使用方法;

• 理解语义视图如何助力 AI 驱动的分析(通过 Cortex Analyst 智能体),并在跨 BI 工具(如 Amazon QuickSight)使用中确保数据一致性。

构建内容

您将搭建一个基础且实用的 Snowflake Cortex Analyst 智能体环境。通过构建完整的数据视图及语义模型,实现基于 Amazon QuickSight 的统一数据查询能力,为 AI 和 BI 应用提供一致的数据基础。

准备工作

• 具备 Snowflake 平台使用经验。如无账户,可点击此处注册试用版;

• 选择 AWS 云环境中的企业版服务

• 拥有具备 ACCOUNTADMIN 角色权限的账户,以便创建语义视图

• 熟悉 AWS 服务。如无账户,请先注册 AWS 并开通 QuickSight 服务;

• 请确保在上述两个平台均选择支持的区域进行注册。当前 QuickSight 服务已在以下四个区域开放:美国东部(弗吉尼亚)、美国西部(俄勒冈)、亚太地区(悉尼)及欧洲(爱尔兰)。更多信息可参阅 Amazon QuickSight 官方文档

• 掌握 SQL 与 Python 基础知识;

• 理解数据分析基本概念与方法。

环境设置

概述

您将使用 Snowflake 的网页界面 Snowsight 导入并运行笔记本,以创建所需环境。

• 下载笔记本文件:从资产文件夹中下载 SF_Quick_Quickstart.ipynb 笔记本文件。

Snowflake 笔记本预装了用于数据科学和机器学习的常见 Python 库,例如 numpy、pandas、matplotlib 等。如果您需要使用其他软件包,可以点击右上角的 "Packages"(软件包)下拉菜单,将额外的软件包添加到您的笔记本中。

• 点击 "+ 创建" 按钮 -> 选择 "Notebook"(笔记本)-> 点击 "Import"(导入)以下载的笔记本文件。

import notebook

接受默认设置,并确保选择 Run on Warehouse(在虚拟仓库上运行)。

默认情况下,笔记本使用的虚拟仓库设置为 SYSTEM$STREAMLIT_NOTEBOOK_WH。不过,您也可以在创建笔记本时,从下拉列表中选择一个不同的虚拟仓库。

notebook creation

我们将通过此笔记本创建一个名为 WORKSHOPWH 的新虚拟仓库和一个名为 movies 的数据库,用于组织我们的数据。

笔记本创建完成后,您可以通过笔记本设置选择其他虚拟仓库。

notebook wh

我们将运行笔记本中的单元格,将数据加载到数据库 MOVIES 中,然后继续运行 第 1 部分 和 第 2 部分 以及笔记本的其余部分。

run notebook

重要步骤!! 在运行包含以下 SQL 语句的 Get_SV_DDL 单元格后:

SELECT TO_VARCHAR( GET_DDL(  'SEMANTIC_VIEW',  'MOVIES.PUBLIC.MOVIE_ANALYTICS_SV'));
复制代码

请务必点击 "Download as CSV"(下载为 CSV),并将此文件重命名为 SF_DDL.csv。

export-sv-ddl

至此,Snowflake 端的设置已完成。

此时,您可以在 Snowsight 中查看语义视图 MOVIES_ANALYST_SV,并通过 Cortex Analyst 使用自然语言提问。

如需在 UI 中查看已创建的语义视图:

  • 在 Snowsight 中,选择 AI 与机器学习 -> Cortex Analyst;

  • 确保已选中之前创建的 SEMANTIC_QUICK_START_ROLE 角色和 WORKSHOPSH 仓库;

  • 选择 Movies 数据库和 Public 模式;

  • 查看语义视图 MOVIES_ANALYST_SV 的详细信息。

如需使用 SQL 查看语义视图,请参考此处的示例

movie SV ready

  • 欢迎在操作台中自由探索并解释数据集;

  • 退出前请务必保存。

SV in snowsight

欢迎添加更多已验证的查询。

已验证查询是带有正确答案的示例黄金问题,它为大语言模型(LLM)提供了准确答案的范例。这有助于提高准确性、降低延迟,并为您的语义视图生成更好的建议。

例如:验证“2023 年所有电影的平均评分是多少?”这个问题,可以确保 Cortex Analyst 能为所有类似表述的问题生成正确的 SQL。

Cortex Analyst 仅会在用户提问与已验证查询相似时使用它们。

请尝试以下示例问题:

• 按电影名称展示总的评分值;

• 列出有史以来最受欢迎的 10 部电影。

verify sql in cortext

使用 AWS CloudShell 调用 Quicksight API 的 QuickSight 数据集生成器

按照笔记本中的指南完成以下流程:基于 Snowflake DDL 创建 QuickSight 数据集、设置凭证以及将数据集共享给用户。请从 assets 文件夹下载 QuickSight 数据集生成器_Solution_Package.zip。

完整工作流程

打开 AWS 控制台 --> cloudshell --> 上传 Solution_Package.zip

cloudshell upload

创建 AWS Secret(存储 Snowflake 凭证)

创建 QuickSight 数据源(使用该 secret)

生成 QuickSight 架构(基于之前保存为 SF_DDL.csv 的 Snowflake DDL)

**Expected Output**Parsing Snowflake DDL from: SF_DDL.csvFound 3 tablesFound 2 relationshipsFound 17 dimensionsFound 1 factsFound 7 metricsGenerating complete QuickSight dataset schema...Complete schema saved to: quicksight_schema_complete.jsonThis schema includes:All 3 physical tables (MOVIES, USERS, RATINGS)  ✓ Logical tables with joins  ✓ Column renames based on DDL aliasesType casts (IDs to STRING)  ✓ Calculated fields (USER_FULL_NAME, DISTINCT_MOVIES)Column descriptions from DDL comments
复制代码

创建数据集(基于生成的架构)

**Expected Output**✓ Dataset created: movie-analytics-dataset✓ Status: 201✓ Ingestion started: ingestion-1769081615
复制代码

启动 SPICE:超快速并行内存计算引擎 数据摄取(加载数据)

"IngestionId": "ingestion-1769082493",        "IngestionStatus": "COMPLETED",        "ErrorInfo": {},        "RowInfo": {            "RowsIngested": 378436,            "RowsDropped": 0,            "TotalRowsInDataset": 378436
复制代码

共享数据集(给其他用户)- 可选步骤

数据集创建完成且数据摄取结束后,您可以进入 Amazon QuickSight 控制台查看数据集、创建 Q 主题、仪表板,甚至为您的团队生成 Movies 空间。

我们可以使用相同的已验证查询来生成仪表板

例如:显示评分最高的电影

popular movies

附录

附录 1:适用于希望在导入 Notebook 前,使用 SQL 工作表创建仓库和数据库的用户

• 或者,你也可以在工作表中复制并运行以下 SQL 语句,以创建 Snowflake 对象(仓库、数据库)。

一旦仓库和数据库创建完成,你就可以上传 Notebook 并执行引导式单元格,开始后续操作。

-- =============================================-- PART 1: Snowflake Setup for semantic view quick start-- =============================================USE ROLE ACCOUNTADMIN;-- Create role for semantic view quick startCREATE ROLE IF NOT EXISTS semantic_quick_start_roleCOMMENT = 'Role for semantic view quick start demo';-- Set variablesSET my_user = CURRENT_USER();    --Grant role to your userGRANT ROLE semantic_quick_start_role TO USER IDENTIFIER($my_user);    -- create database, schema and warehouseCREATE WAREHOUSE IF NOT EXISTS WORKSHOPWH WITH WAREHOUSE_SIZE = 'XSMALL' AUTO_SUSPEND = 1800 AUTO_RESUME = TRUE COMMENT = 'Warehouse for semantic view quick start demo';CREATE DATABASE IF NOT EXISTS movies;GRANT OWNERSHIP ON DATABASE movies TO ROLE semantic_quick_start_role COPY CURRENT GRANTS;GRANT OWNERSHIP ON SCHEMA movies.PUBLIC TO ROLE semantic_quick_start_role COPY CURRENT GRANTS;GRANT OWNERSHIP ON WAREHOUSE workshopwh TO ROLE semantic_quick_start_role COPY CURRENT GRANTS;-- Grant privileges to create semantic viewsGRANT CREATE SEMANTIC VIEW ON SCHEMA movies.PUBLIC TO ROLE semantic_quick_start_role;GRANT CREATE STAGE ON SCHEMA movies.PUBLIC TO ROLE semantic_quick_start_role;
复制代码

总结与资源

恭喜你完成本实验!你已成功利用 Snowflake 生成洞察,并掌握了其与 Amazon Quick Suite 的集成方法。

本课要点
  • 如何使用 Snowflake Cortex Analyst 分析数据;

  • 如何通过语义 SQL 定义包含表、关系、维度和指标的 Snowflake 语义视图;

  • Snowflake 与 Amazon Quick Suite 之间的集成方法。

相关资源

GitHub 代码库链接

语义视图入门指南

Cortex Analyst 快速入门指南

原文地址:https://www.snowflake.com/en/developers/guides/better-together-snowflake-sv-amazon-quicksight/

点击链接立即报名注册:Ascent - Snowflake Platform Training - China更多 Snowflake 精彩活动请关注专区