一个支持ChatGPT、Gemini和Monica的AI聊天记忆扩展,可以自动保存和管理你的AI对话记录。
- 多平台支持: 支持 ChatGPT、Google Gemini、Monica
- 自动保存: 智能检测新消息并自动保存
- 手动保存: 支持手动触发保存
- 搜索功能: 快速搜索历史对话
- 导出功能: 支持导出选中的对话或全部对话
- 悬浮标签: 在聊天页面显示可拖动的悬浮标签
- 智能增量更新: 只保存新增或变化的消息
- 克隆或下载此项目
- 打开Chrome浏览器,进入
chrome://extensions/ - 开启"开发者模式"
- 点击"加载已解压的扩展程序"
- 选择
chat-memory-extension文件夹
chat-memory-extension/
├── manifest.json # 扩展清单文件
├── js/
│ ├── background.js # 后台脚本
│ ├── popup.js # 侧边栏脚本
│ ├── content_common.js # 通用内容脚本
│ ├── core/ # 核心模块
│ │ ├── base.js # 基础适配器
│ │ ├── storage-manager.js
│ │ └── compatibility.js
│ └── adapters/ # 平台适配器
│ ├── chatgpt.js # ChatGPT适配器
│ ├── gemini.js # Gemini适配器
│ └── monica.js # Monica适配器
├── css/
│ └── content.css # 样式文件
├── html/
│ └── popup.html # 侧边栏页面
├── icons/
│ └── logo.svg # 图标文件
└── README.md
- 适配器模式: 每个平台有独立的适配器,继承自BasePlatformAdapter
- 模块化设计: 核心功能与平台特定代码分离
- 智能更新: 使用增量保存策略,只保存变化的内容
- BasePlatformAdapter: 基础适配器,包含通用逻辑
- StorageManager: 数据存储管理,使用IndexedDB
- Platform Adapters: 各平台特定的消息提取和URL处理
- Background Script: 后台服务,处理数据同步
- Content Scripts: 页面注入脚本,负责消息提取和UI交互
- ChatGPT: 通过
data-message-author-role和data-testid属性识别消息 - Gemini: 通过自定义元素标签和CSS类名识别
- Monica: 智能分析DOM结构,兼容多种消息格式
- 访问支持的AI聊天网站
- 开始正常聊天
- 扩展会自动检测并保存新消息
- 悬浮标签显示"自动记忆"状态
- 在设置中切换到手动保存模式
- 点击悬浮标签中的保存按钮
- 手动触发当前对话的保存
- 点击扩展图标或悬浮标签
- 打开侧边栏查看所有保存的对话
- 使用搜索功能快速查找特定对话
- 选择对话并导出
-
在
js/adapters/目录下创建新的适配器文件 -
继承
BasePlatformAdapter类 -
实现必要的抽象方法:
isValidConversationUrl(url)extractConversationInfo(url)extractMessages()isMessageElement(node)
-
在
manifest.json中添加新的content script配置 -
在后台脚本中添加支持的平台
class NewPlatformAdapter extends BasePlatformAdapter {
constructor() {
super('newplatform');
}
isValidConversationUrl(url) {
// 实现URL验证逻辑
}
extractMessages() {
// 实现消息提取逻辑
}
// 其他必要方法...
}A: 可能的原因:
- 页面DOM结构发生变化,需要更新适配器
- 用户正在编辑消息,系统会跳过提取
- 网络延迟导致消息加载缓慢
A:
- 打开开发者工具查看控制台日志
- 检查适配器是否正确加载
- 验证DOM选择器是否仍然有效
- 使用断点调试消息提取逻辑
A: 数据保存在本地的IndexedDB中,具体是:
- 数据库名:
AIChatMemoryDB - 存储名称:
conversations - 所有数据都保存在本地,不会上传到任何服务器
MIT License - 详见项目根目录的LICENSE文件
欢迎提交Issue和Pull Request来改进这个扩展!
如有问题或建议,请通过以下方式联系:
- 提交GitHub Issue
- 发送邮件到 [your-email@example.com]
注意: 这是一个示例扩展,仅供学习和参考使用。在实际使用前,请根据各平台的最新UI变化进行相应的适配器更新。