背景与动机
作为一名经常浏览网页的开发者,我使用 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 技术结合,创造出更智能的工作方式。通过将散落的网页收藏转化为结构化的知识库,我能够更有效地利用这些资源,提高工作效率。