跳转至

AI 资源数据库更新工具

概述

update-ai-resource.js 是一个 Front Matter CMS 自定义操作脚本,用于快速更新 AI 资源的元数据。

功能

  • 自动识别当前打开的 AI 资源文件
  • 从 front matter 中提取 GitHub 仓库信息
  • 触发 npm run ai:worker:sync:repo 命令同步最新的项目数据
  • 支持中英文双语 AI 资源目录
  • 简洁输出模式:默认只显示关键信息,避免日志过长

使用方法

在 Front Matter 扩展中使用

  1. 在 VS Code 中打开任意 AI 资源文件(位于 content/zh/ai/content/en/ai/ 目录下)
  2. 打开 Front Matter 面板
  3. 点击 "Update AI Resource" 按钮
  4. 脚本将自动执行同步操作

命令行使用

# 基本用法(简洁模式)
node scripts/ai/update-ai-resource.js content/zh/ai/autogen/index.md

# DRY RUN 模式(仅显示将执行的命令)
DRY_RUN=1 node scripts/ai/update-ai-resource.js content/zh/ai/ollama/index.md

# 详细输出模式(显示完整同步日志)
VERBOSE=1 node scripts/ai/update-ai-resource.js content/zh/ai/langchain/index.md

# 调试模式(显示额外的调试信息)
DEBUG_UPDATE_AI=1 node scripts/ai/update-ai-resource.js content/zh/ai/langchain/index.md

Front Matter 要求

AI 资源文件的 front matter 必须包含 github 字段:

---
title: AutoGen
github: https://github.com/microsoft/autogen
# ... 其他字段
---

支持的 GitHub URL 格式:

  • https://github.com/owner/repo
  • github.com/owner/repo
  • owner/repo

注意:仓库名称会自动转换为小写,以匹配 GitHub API 的标准格式。例如:

  • https://github.com/deepseek-ai/3FSdeepseek-ai/3fs
  • https://github.com/Microsoft/AutoGenmicrosoft/autogen

工作原理

  1. 文件解析:读取并解析 AI 资源 Markdown 文件的 front matter
  2. GitHub 提取:从 github 字段提取仓库的 owner/name,并转换为小写
  3. 触发同步:执行 npm run ai:worker:sync:repo owner/name 命令
  4. 数据更新:同步脚本会调用 Cloudflare Worker 更新项目元数据

同步流程

AI 资源文件 → 提取 GitHub 仓库 → npm run ai:worker:sync:repo → Cloudflare Worker → 更新数据库
                                                                          ↓
                                              Cloudflare Pages 部署 ← 返回最新数据

配置说明

frontmatter.json 中的配置:

{
  "frontMatter.custom.scripts": [
    {
      "title": "Update AI Resource",
      "id": "update-ai-resource",
      "script": "scripts/ai/update-ai-resource.js",
      "command": "node"
    }
  ]
}

环境变量

  • DRY_RUN=1:模拟执行,不实际运行同步命令
  • VERBOSE=1:显示完整的同步日志输出(默认为简洁模式)
  • DEBUG_UPDATE_AI=1:显示额外的调试信息
  • WORKER_URL:指定 Cloudflare Worker 的 URL(在 npm run ai:worker:sync:repo 中使用)

输出模式对比

简洁模式(默认)

[update-ai-resource] 目标文件:/path/to/content/zh/ai/autogen/index.md
[update-ai-resource] 📦 仓库:microsoft/autogen
[update-ai-resource] ⏳ 正在同步...
[update-ai-resource] ✅ 同步成功
[update-ai-resource] 💾 仓库已更新:microsoft/autogen

详细模式(VERBOSE=1)

显示完整的同步脚本输出,包括 manifest 检查、Worker 请求详情等。

错误处理

脚本会在以下情况报错并退出:

  1. 文件不存在:无法找到目标 AI 资源文件
  2. 不是 AI 资源:文件不在 content/zh/ai/content/en/ai/ 目录下
  3. 缺少 GitHub 字段:front matter 中没有 github 字段
  4. GitHub URL 无效:无法从 github 字段提取有效的仓库信息
  5. 同步失败:npm 命令执行失败

示例输出

简洁模式(默认)

[update-ai-resource] 目标文件:/path/to/content/zh/ai/autogen/index.md
[update-ai-resource] 📦 仓库:microsoft/autogen
[update-ai-resource] ⏳ 正在同步...
[update-ai-resource] ✅ 同步成功
[update-ai-resource] 💾 仓库已更新:microsoft/autogen

简洁清晰,避免冗长的日志输出。如需查看详细日志,使用 VERBOSE=1

相关资源

注意事项

  1. 同步时间:单个仓库同步通常需要 2-5 秒
  2. 部署延迟:数据更新后需要等待 Cloudflare Pages 部署才能在网站上看到变化
  3. 权限要求:需要配置 GitHub API token 以避免速率限制
  4. 网络连接:确保能够访问 Cloudflare Worker 和 GitHub API

开发者信息

  • 文件位置scripts/ai/update-ai-resource.js
  • 配置文件frontmatter.json
  • 相关脚本scripts/ai/trigger-worker-sync.sh
  • 依赖包js-yaml(用于解析 YAML front matter)