用 Cloudflare Workers(也可用于 Pages Functions)实现: - KV 作为数据库:以文章相对 URL 存摘要内容 - Workers AI 负责生成摘要 - 纯静态页面(HTML + JS):抽取指定元素(例如 `.post`)的正文,调用 API 生成/读取摘要并展示 - 内置 4 种摘要风格:`tldr` / `bullets` / `outline` / `keywords` ## 目录结构 - `src/worker.ts`:Workers API(KV 缓存 + Workers AI 生成) - `public/index.html`:演示页面(静态) - `public/summary.js`:前端抽取正文 + 请求摘要 + 渲染 - `public/summary.css`:几种风格的 UI 设计 ## 本地开发(Pages) 1) 安装依赖 ```bash npm i ``` 2) 本地启动(带本地 KV/AI 绑定) ```bash npm run dev ``` 打开 Wrangler 输出的本地地址,访问 `/` 即可看到 demo。 > 说明:`npm run dev` 默认使用 `wrangler pages dev public --kv KV --ai AI ...`,KV 会持久化到 `.wrangler/state`。 ## 部署(Pages) ```bash npm run deploy ``` 在 Cloudflare Pages 项目设置里添加绑定: - KV Namespace:变量名 `KV` - AI:变量名 `AI` - 环境变量:`MODEL`(可选,默认 `@cf/meta/llama-3.1-8b-instruct`) > 注意:Pages Functions 也是跑在 Workers Runtime 上,调用 `/api/*` 仍会产生函数调用次数;本项目已用 KV 做缓存,只有首次/内容变化才会触发 AI 生成。 部署后: - 静态页面:`/` - API: - `GET /api/styles`:返回可用风格 - `GET /api/summary?url=/post/xxx&style=tldr`:读取 KV 缓存(不存在返回 404) - `POST /api/summary`:生成并写入 KV `POST /api/summary` 请求体示例: ```json { "url": "/post/hello", "style": "bullets", "text": "这里是文章正文纯文本…" } ``` ## 接入你的静态文章页 你的文章页只需要: 1) 正文容器(可换选择器): ```html