从 OneTab 到 AI 知识库:我的个人网页收藏管理方案

176 阅读3分钟

背景与动机

作为一名经常浏览网页的开发者,我使用 OneTab 插件来管理我的浏览器标签页。OneTab 不仅帮我节省了内存,还让我能够将相关的网页链接组织在一起。然而,随着时间推移,我积累了大量的 OneTab 归档,这些宝贵的资源却难以被有效利用。

主要痛点:

  1. 历史收藏难以检索
  2. 相关主题的链接分散在不同归档中
  3. 无法快速找到特定主题的所有相关资源
  4. 收藏的网页内容无法被有效利用

解决方案

我决定构建一个基于 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 知识库:

  1. 导入处理好的 Markdown 文件
  2. 配置知识库参数
  3. 创建 AI Agent 并设置提示词

最终效果

通过这个系统,我现在可以:

  1. 快速检索历史收藏的网页
  2. 按主题组织相关资源
  3. 通过自然语言查询获取相关信息
  4. 发现不同归档中的相关主题

例如,我可以这样查询:

  • "帮我找一下关于文档化方法论的文章"

image-20250524163231-ty3lk34.png

  • "有哪些关于敏捷开发的资源?"

  • "推荐一些关于 API 设计的最佳实践"

技术亮点

  1. 自动化处理:整个数据提取和处理过程完全自动化
  2. 结构化存储:保持原有的主题分类结构
  3. AI 增强:利用 Dify 的 AI 能力实现智能检索
  4. 可扩展性:支持持续添加新的 OneTab 归档

总结

这个项目不仅解决了我的个人知识管理问题,还展示了如何将日常工具与 AI 技术结合,创造出更智能的工作方式。通过将散落的网页收藏转化为结构化的知识库,我能够更有效地利用这些资源,提高工作效率。

相关资源