背景与动机
作为一名经常浏览网页的开发者,我使用 OneTab 插件来管理我的浏览器标签页。OneTab 不仅帮我节省了内存,还让我能够将相关的网页链接组织在一起。然而,随着时间推移,我积累了大量的 OneTab 归档,这些宝贵的资源却难以被有效利用。
主要痛点:
- 历史收藏难以检索
- 相关主题的链接分散在不同归档中
- 无法快速找到特定主题的所有相关资源
- 收藏的网页内容无法被有效利用
解决方案
我决定构建一个基于 AI 的个人知识库系统,将 OneTab 中的网页收藏转化为可查询的知识。整个方案分为以下几个步骤:
1. 数据提取与处理
首先,我开发了一个 Python 脚本来处理 Edge 浏览器的收藏夹数据:
# 从 Edge 收藏夹中提取 OneTab 链接
def get_onetab_urls(json_file):
with open(json_file, 'r', encoding='utf-8') as f:
bookmarks = json.load(f)
onetab_urls = []
for folder in bookmarks.get('收藏夹栏', []):
if folder.get('name') == 'onetab 归档':
for item in folder.get('children', []):
if item.get('type') == 'url':
onetab_urls.append({
'name': item['name'],
'url': item['url'],
'date_added': item['date_added']
})
return onetab_urls
2. 网页内容抓取
使用 requests 和 BeautifulSoup 库来获取和解析 OneTab 页面内容:
def parse_onetab_content(html_content):
soup = BeautifulSoup(html_content, 'html.parser')
groups = []
for group in soup.find_all(class_='tabGroup'):
group_title = group.find(class_='tabGroupLabel')
if not group_title:
continue
title = group_title.get_text(strip=True)
urls = []
for tab in group.find_all(class_='tab'):
link = tab.find(class_='tabLink')
if link:
url = link.get('href', '')
name = link.get_text(strip=True)
if url and name:
urls.append({
'name': name,
'url': url
})
if urls:
groups.append({
'title': title,
'urls': urls
})
return groups
3. 数据格式化
将处理后的数据转换为结构化的 Markdown 格式:
# OneTab - 20220217
添加时间: 2022-02-17 06:22:42
## 文档化方法论
- Documentation Matters: Human-Centered AI System to Assist Data Science Code Documentation in Computational Notebooks | ACM Transactions on Computer-Human Interaction: https://dl.acm.org/doi/abs/10.1145/3489465
- A study of the documentation essential to software maintenance: https://dl.acm.org/doi/abs/10.1145/1085313.1085331
---
4. 知识库构建
使用 Dify 平台构建 AI 知识库:
- 导入处理好的 Markdown 文件
- 配置知识库参数
- 创建 AI Agent 并设置提示词
最终效果
通过这个系统,我现在可以:
- 快速检索历史收藏的网页
- 按主题组织相关资源
- 通过自然语言查询获取相关信息
- 发现不同归档中的相关主题
例如,我可以这样查询:
- "帮我找一下关于文档化方法论的文章"
-
"有哪些关于敏捷开发的资源?"
-
"推荐一些关于 API 设计的最佳实践"
技术亮点
- 自动化处理:整个数据提取和处理过程完全自动化
- 结构化存储:保持原有的主题分类结构
- AI 增强:利用 Dify 的 AI 能力实现智能检索
- 可扩展性:支持持续添加新的 OneTab 归档
总结
这个项目不仅解决了我的个人知识管理问题,还展示了如何将日常工具与 AI 技术结合,创造出更智能的工作方式。通过将散落的网页收藏转化为结构化的知识库,我能够更有效地利用这些资源,提高工作效率。