TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 780 subscribers
Post #1566 5
用AI开发Chrome扩展自动保存Gemini对话

开发者Shin在e-shikumi-labo分享了一个四篇系列文章,讲述如何借助Gemini AI构建个人Chrome扩展,自动把有用的Gemini对话保存到电子表格。核心思路不是让AI凭空猜测网页结构,而是明确要求它"不要猜,缺信息就问"。

开发第一步,作者直接向Gemini抛出提示词:"我想用Chrome扩展把Gemini的回复保存到电子表格,告诉我怎么构建,不要用你的想象力,如果需要具体信息请指出来。"关键约束是两条:不猜测、缺信息要主动索取。因为AI在写网页数据提取工具时,常会自行猜测HTML标签和类名,导致代码与真实页面结构不符而失效。

AI随后要求作者从Gemini页面复制两个HTML元素:用户提示词区域的包裹元素和Gemini回复区域的包裹元素。作者通过F12打开DevTools,复制粘贴这些代码片段给AI。AI据此写出了精准定位元素的JavaScript数据提取逻辑,以及发送数据到电子表格的程序。加载扩展后,屏幕上的对话数据会自动写入表格。

作者感慨,过去手动检查复杂网页HTML元素来写爬虫工具的经历相当痛苦,如今AI分析HTML元素并组装准确代码的能力让他真切感受到时代进步。他得到的启示是:人类不需要记忆Chrome扩展的JavaScript语法,编码可以交给AI,真正的主动权在于理解"输入(屏幕提取)→处理(去重)→输出(发送到GAS)"的整体系统结构,以及如何向AI传递准确的实际信息。


基于原型,作者发布了两个版本的工具。Lite版免费开源,一键将当前Gemini对话导出为Markdown文件,零配置、无需GAS或API密钥,完全在本地浏览器运行,适合快速保存到本地笔记应用。Pro版提供完整自动化管道,通过MutationObserver自动检测新回复并同步到Google Sheets和Google Drive,无重复条目。

需要说明的前提是,由于Gemini界面可能更新,工具存在失效可能,不保证永久运行。技术限制方面:手机应用中的对话无法保存,因为依赖PC Chrome扩展机制;没有历史日志的批量同步功能,但过去线程在PC浏览器打开一次会自动检测并保存最近对话。

作者预告下一篇将介绍同时生成Markdown文件到Google Drive的机制,方便在Obsidian等本地笔记应用中构建知识库。


#开发者 #工具 #Chrome扩展 #Gemini #AI编程 #JavaScript #GAS
@DevToolboxHub
More from @devtoolboxhub
  1. Sep 26, 2026PostgreSQL 复制槽上限参数 max_replication_slots 解析 max_replication_slots 决定共享内存中复制槽数组的长度,仅此而已。它不决…
  2. Sep 26, 2026五仓库架构踩坑:Gitlink 与双 CI Flude 团队复盘了多仓库架构的实践代价。项目从第一分钟起就选择拆分成独立仓库,Pipeline、engine、design-docs…
  3. Sep 26, 2026Xeno Core:TypeScript 后端架构框架 Node.js 复杂系统的架构选型往往决定代码的长期命运。开发者常在两条路之间纠结:要么依赖重度使用实验性装饰器和反射(如…
  4. Sep 25, 2026用 SLO 给 AI Agent 的行为定个预算 Grafana Labs 提出把可靠性工程里的错误预算(error budget)思路用到 AI Agent 上。延迟、token…
  5. Sep 25, 2026Xcode 27.2 改用 JSON 项目格式 Xcode 27.2 用基于 JSON 的 project.xcproj 取代了沿用多年的 project.pbxproj。新建项目…
  6. Sep 25, 2026PostgreSQL 的 max_prepared_transactions 该不该开 prepared transaction 是脱离会话独立存在的两阶段提交事务。执行 PREP…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →