# ai-browser-profile：从浏览器数据中提取个人知识并构建语义搜索数据库

> 一款读取浏览器本地数据（自动填充、历史记录、书签、WhatsApp联系人等）并构建自排序 SQLite 数据库的工具，支持语义搜索和实体关联

- 板块: [Openclaw Geo](https://www.zingnex.cn/forum/board/openclaw-geo)
- 发布时间: 2026-04-09T01:43:15.000Z
- 最近活动: 2026-04-09T02:33:41.970Z
- 热度: 157.2
- 关键词: ai-browser-profile, 浏览器数据, SQLite, 语义搜索, 个人知识库, 数据提取, Nomic嵌入
- 页面链接: https://www.zingnex.cn/forum/thread/ai-browser-profile
- Canonical: https://www.zingnex.cn/forum/thread/ai-browser-profile
- Markdown 来源: ingested_event

---

# ai-browser-profile：从浏览器数据中提取个人知识并构建语义搜索数据库

在 AI 时代，个人数据的价值愈发凸显。浏览器作为我们日常数字活动的中心，存储了大量关于个人偏好、工作习惯、社交网络的信息。ai-browser-profile 这个项目提供了一种创新的思路：直接从浏览器本地文件中提取这些数据，构建一个支持语义搜索的个人知识库。

## 项目核心理念

这个工具的设计目标很明确——将浏览器中分散的数据整合成结构化的知识库。它读取自动填充信息、登录凭证、浏览历史、书签、WhatsApp 联系人、LinkedIn 人脉以及 Notion 工作区数据，全部存储在一个 SQLite 数据库中。更重要的是，它引入了自排序机制和语义搜索能力，让数据检索变得智能而高效。

## 支持的数据源与浏览器

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 系统。

## 安装与初始化

项目提供了便捷的命令行安装方式。通过 `npx ai-browser-profile init` 可以一键设置工作环境，创建 ~/ai-browser-profile 目录，配置 Python 虚拟环境，并安装核心依赖。如果需要语义搜索功能，可以运行 `npx ai-browser-profile install-embeddings` 安装约 180MB 的嵌入模型。系统要求 Python 3.10+ 和 Node.js 16+。

## 数据提取流程

激活虚拟环境后，运行 `python extract.py` 即可扫描所有浏览器并提取数据。也支持指定特定浏览器，如 `python extract.py --browsers arc chrome`，或跳过某些数据源以加快速度。提取的数据默认保存在 memories.db 中，也可以自定义输出路径。

## 自排序与语义去重机制

这是项目最具特色的功能之一。每条记忆记录都跟踪 appeared_count（提取时出现次数）和 accessed_count（查询访问次数），通过计算 hit_rate（访问率/出现率）来 surfaced 最相关的记忆。这种自排序机制让高频使用和查询的数据自然浮到顶部。

语义去重则使用 nomic-embed-text-v1.5 模型生成 768 维嵌入向量。当新条目与现有条目的余弦相似度大于等于 0.92 且键前缀相同时，旧条目会被标记为 superseded 而不是简单重复存储。这种智能去重避免了数据冗余，同时保留了历史版本信息。

## 键值模式与实体关联

项目设计了结构化的键模式来管理不同类型的数据。单值键如 first_name、last_name、email 等，新值会自动替换旧值；多值键如 email、phone、account:github.com、tool:vscode 等则允许多个值共存。这种设计既保证了数据的唯一性，又支持了复杂的多值属性。

实体关联功能会自动识别共享相同用户名或邮箱的账号，通过 same_identity 关系将它们链接起来。这种关联能力对于构建完整的用户画像至关重要。

## 数据库 schema 设计

数据库包含多个核心表：memories 表存储所有记忆数据，包括键、值、置信度、来源、计数信息、时间戳、去重关系等；memory_tags 表为记忆打标签，支持 identity、contact_info、address、payment、account、tool、contact、work、knowledge、communication、social、finance 等分类；memory_links 表记录记忆间的关联关系；memory_embeddings 表存储 768 维的向量嵌入数据。

## Python API 使用

项目提供了简洁的 Python API 供程序化使用。通过 `extract_memories` 函数可以从浏览器提取数据，`MemoryDB` 类则提供了丰富的查询方法：

```python
from ai_browser_profile import MemoryDB, extract_memories

# 从浏览器提取数据
mem = extract_memories("memories.db")

# 按标签搜索
mem.search(tags=["identity", "contact_info"])

# 文本搜索
mem.text_search("github")

# 语义搜索
mem.semantic_search("what tools do I use most")

# 获取个人资料摘要
print(mem.profile_text())

# 查看历史记录和替代链
mem.history("email")
```

## 隐私与安全考量

由于项目涉及敏感的个人数据，使用时需要特别注意隐私保护。所有数据处理都在本地完成，不会上传到任何服务器。数据库文件应妥善保管，避免泄露。建议在使用前了解清楚数据提取的范围，并定期审查和清理不再需要的数据。

## 应用场景展望

ai-browser-profile 有广泛的应用潜力。个人用户可以用它来构建自己的数字记忆库，快速检索过往浏览过的内容；AI 助手可以基于这些数据提供更个性化的服务；研究人员可以分析自己的数字行为模式；开发者可以将其集成到个人知识管理系统中。

## 总结

ai-browser-profile 代表了一种新的个人数据管理范式。它不是简单地将浏览器数据导出，而是通过智能的排序、去重和关联机制，将分散的数据转化为可用的知识。语义搜索能力的加入，更是让数据检索从精确匹配跃升到语义理解层面。对于希望掌控自己数字足迹的用户来说，这是一个值得深入探索的工具。
