Skip to content
向野而深的博客
Go back

Osmos书签收藏与摘要库部署指南

目录

文章来源:LLM x 书签收藏:摘要 & 全文索引 - Nekonull’s Garden

概览

  • 目标:用 Osmos 浏览器插件收集书签,并通过 GitHub Actions + LLM 自动生成摘要与一句话索引,集中存放于独立摘要仓库。
  • 结果:新增书签自动触发工作流,生成中文摘要与一句话精炼,按时间归档,支持后续全文搜索与知识库复用。
  • 组成:Osmos 插件、书签仓库(bookmark-osmos)、摘要仓库(bookmark-summary)、GitHub Actions 工作流、LLM API(OpenAI/DeepSeek 等)。

架构与数据流

  • 流程:浏览器插件保存书签到书签仓库 README.md → Push 触发工作流 → Python 脚本读取增量变更并调用 LLM 生成摘要 → 提交到摘要仓库 → 可被站点或工具索引。
  • 优点:完全基于 GitHub,权限清晰;摘要提示可定制;仓库分离,易于维护与迁移。

先决条件

步骤 1:初始化书签存储库(bookmark-osmos)

  • 新建仓库(可取名 bookmark-osmos),推荐使用 README.md 作为书签存储文件(便于在仓库首页直接浏览)。
  • 在 Osmos 插件中配置 GitHub 用户名与仓库名,点击 connect 连接,并测试一次保存书签。 仓库令牌
  • 使用 README.md 作为存储文件名。其他文件名也可以,但 GitHub 不会自动将其呈现为您的代码库的主页。
  • 点击“connect”,确保连接成功 连接成功

可见性设为公开或私有均可,插件都支持。

步骤 2:初始化摘要库(bookmark-summary)

  • 新建摘要仓库(如 bookmark-summary),添加一个空的 README.md。
  • 将模板仓库中的 process_changes.py 复制到摘要仓库,并按实际仓库名修改:
# 摘要脚本中的核心配置示例(放在 process_changes.py 顶部)
BOOKMARK_COLLECTION_REPO_NAME = "bookmark-osmos"
BOOKMARK_SUMMARY_REPO_NAME = "bookmark-summary"
MODEL_NAME = os.getenv("OPENAI_API_MODEL", "gpt-4o-mini")
API_KEY = os.getenv("OPENAI_API_KEY")
API_ENDPOINT = os.getenv("OPENAI_API_ENDPOINT")  # 留空默认 OpenAI 官方
  • 如需个性化摘要效果,可调整 summarize_text 与 one_sentence_summary 的提示词。

步骤 4:在书签仓库添加工作流

  • 在书签仓库创建 .github/workflows/bookmark_summary.yml,并填入:
name: Bookmark Summary
on:
  push:
    paths:
      - README.md

jobs:
  summarize:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install dependencies
        run: pip install requests pyyaml

      - name: Run summarizer
        env:
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
          OPENAI_API_ENDPOINT: ${{ secrets.OPENAI_API_ENDPOINT }}
          OPENAI_API_MODEL: ${{ secrets.OPENAI_API_MODEL }}
          PAT: ${{ secrets.PAT }}
          BOOKMARK_COLLECTION_REPO_NAME: bookmark-osmos
          BOOKMARK_SUMMARY_REPO_NAME: bookmark-summary
        run: python process_changes.py

注意 paths 过滤的是 README.md,当书签文件改动时才触发;如使用其他文件名,请同步修改。

步骤 5:添加 Secrets(书签仓库)

  • 入口:Settings → Secrets and variables → Actions → New repository secret
  • 需要的密钥:
    • PAT:第 3 步创建的 Fine-grained Token(摘要仓库 Contents: Read and write)
    • OPENAI_API_MODEL:如 gpt-4o-mini 或 deepseek-chat
    • OPENAI_API_KEY:通常以 sk- 开头
    • OPENAI_API_ENDPOINT:留空默认 OpenAI 官方;DeepSeek 填 https://api.deepseek.com/chat/completions

步骤 6:验证与排查

  • 在 Osmos 中添加一个书签,提交到书签仓库后应自动触发工作流。
  • 在 Actions 日志查看是否成功调用 LLM 并向摘要仓库推送新条目。
  • 常见问题:
    • 工作流不触发:确认默认分支与 paths 过滤匹配;README.md 是否改动。
    • 推送失败 403:PAT 权限不足或未选中摘要仓库;确认 Contents 权限为 Read & Write。
    • LLM 401/429:检查 KEY 是否有效、模型名与 Endpoint 是否对应。
    • 私有仓库可见性:插件可用,但需确保 PAT 与密钥正确配置。

进阶优化

  • 调整 summarize_text/one_sentence_summary 的提示词,增加“主题标签”“来源域名”等结构化字段,便于检索。
  • 为长文链接生成多段摘要或关键要点,改善搜索质量。
  • 根据个人偏好选择模型:成本优先用 DeepSeek,质量优先用 OpenAI 高端模型。
  • 后续可将摘要仓库接入站点全文索引或知识库工具,实现跨平台检索。

参考与致谢

  • 模板与脚本来源:Nekonull 的 osmosmemo-template(含 process_changes.py 与 bookmark_summary.yml)。
  • 文章原链接见文首引用,感谢原作者的思路与实现。


Previous Post
Pages CMS 部署到 Vercel
Next Post
Outline 自托管部署指南