章节 01
导读 / 主楼:ai-browser-profile:从浏览器数据中提取个人知识并构建语义搜索数据库
一款读取浏览器本地数据(自动填充、历史记录、书签、WhatsApp联系人等)并构建自排序 SQLite 数据库的工具,支持语义搜索和实体关联
正文
一款读取浏览器本地数据(自动填充、历史记录、书签、WhatsApp联系人等)并构建自排序 SQLite 数据库的工具,支持语义搜索和实体关联
章节 01
一款读取浏览器本地数据(自动填充、历史记录、书签、WhatsApp联系人等)并构建自排序 SQLite 数据库的工具,支持语义搜索和实体关联
章节 02
这个工具的设计目标很明确——将浏览器中分散的数据整合成结构化的知识库。它读取自动填充信息、登录凭证、浏览历史、书签、WhatsApp 联系人、LinkedIn 人脉以及 Notion 工作区数据,全部存储在一个 SQLite 数据库中。更重要的是,它引入了自排序机制和语义搜索能力,让数据检索变得智能而高效。
章节 03
ai-browser-profile 支持从多种浏览器文件中提取数据。Web Data SQLite 文件包含自动填充的地址和信用卡信息;Login Data SQLite 存储保存的账号和密码;History SQLite 记录浏览历史,可用于分析工具使用频率;Bookmarks JSON 文件保存书签数据,反映用户的兴趣领域。
对于更复杂的数据源,项目使用 LevelDB 读取 IndexedDB 中的 WhatsApp 联系人和 Local Storage 中的 LinkedIn 人脉信息。此外还支持从 Notion 的 IndexedDB 中提取工作区用户和页面数据。支持的浏览器包括 Arc、Chrome、Brave、Edge、Safari 和 Firefox,目前主要支持 macOS 系统。
章节 04
项目提供了便捷的命令行安装方式。通过 npx ai-browser-profile init 可以一键设置工作环境,创建 ~/ai-browser-profile 目录,配置 Python 虚拟环境,并安装核心依赖。如果需要语义搜索功能,可以运行 npx ai-browser-profile install-embeddings 安装约 180MB 的嵌入模型。系统要求 Python 3.10+ 和 Node.js 16+。
章节 05
激活虚拟环境后,运行 python extract.py 即可扫描所有浏览器并提取数据。也支持指定特定浏览器,如 python extract.py --browsers arc chrome,或跳过某些数据源以加快速度。提取的数据默认保存在 memories.db 中,也可以自定义输出路径。
章节 06
这是项目最具特色的功能之一。每条记忆记录都跟踪 appeared_count(提取时出现次数)和 accessed_count(查询访问次数),通过计算 hit_rate(访问率/出现率)来 surfaced 最相关的记忆。这种自排序机制让高频使用和查询的数据自然浮到顶部。
语义去重则使用 nomic-embed-text-v1.5 模型生成 768 维嵌入向量。当新条目与现有条目的余弦相似度大于等于 0.92 且键前缀相同时,旧条目会被标记为 superseded 而不是简单重复存储。这种智能去重避免了数据冗余,同时保留了历史版本信息。
章节 07
项目设计了结构化的键模式来管理不同类型的数据。单值键如 first_name、last_name、email 等,新值会自动替换旧值;多值键如 email、phone、account:github.com、tool:vscode 等则允许多个值共存。这种设计既保证了数据的唯一性,又支持了复杂的多值属性。
实体关联功能会自动识别共享相同用户名或邮箱的账号,通过 same_identity 关系将它们链接起来。这种关联能力对于构建完整的用户画像至关重要。
章节 08
数据库包含多个核心表:memories 表存储所有记忆数据,包括键、值、置信度、来源、计数信息、时间戳、去重关系等;memory_tags 表为记忆打标签,支持 identity、contact_info、address、payment、account、tool、contact、work、knowledge、communication、social、finance 等分类;memory_links 表记录记忆间的关联关系;memory_embeddings 表存储 768 维的向量嵌入数据。