今天整理一下博客主题的 AI 摘要 cf-worker-summary 的部署过程。
项目采用 Cloudflare Workers、Cloudflare D1 作为技术栈,AI 支持 OpenAI、Claude、Cloudflare AI 作为摘要生成服务。
部署
-
Fork 仓库 cf-worker-summary。
-
GitHub 仓库的
Settings > Secrets and variables > Actions,添加以下 Secrets。
| 分类 | Secret 变量名 | 描述 | 示例值 |
|---|---|---|---|
| 基础配置 | CLOUDFLARE_API_TOKEN | 具备 Workers 部署权限的 API 令牌 | xxxx-xxxx-xxxx |
CLOUDFLARE_WORKER_NAME | 你的 Worker 实例名称 | cf-worker-summary | |
SUMMARY_API | 绑定的自定义域名 | https://api.example.com | |
CLOUDFLARE_ZONE_ID | 对应域名的区域 ID | 520... | |
| AI 逻辑 | AI_PROVIDER | AI 提供商(默认 cloudflare) | cloudflare / openai |
AI_MODEL | 使用的 AI 模型 | @cf/meta/llama-3-8b-instruct | |
AI_API_KEY | 第三方 AI 的 API Key | sk-xxxx | |
AI_ENDPOINT | 第三方 AI 端点 | https://api.openai.com/v1 | |
ALLOWED_DOMAINS | 允许缩略内容的域名白名单 | *.example.com, example.net | |
CACHE_TTL | 缓存过期时间(秒) | 604800 | |
MAX_CONTENT_LENGTH | 最大处理字符数 | 10000 | |
SUMMARY_MIN_LENGTH | 摘要最小长度 | 200 | |
| 数据库 | D1_DATABASE_NAME | Cloudflare D1 数据库名称 | summary-db |
D1_DATABASE_ID | Cloudflare D1 数据库 ID | 78a... |
- 执行 Action 完成部署
主题配置
在配置文件中 src/config.ts,添加以下配置:
typescript
"AIConfig": {
"enable": true,
"api": "https://api.example.com/summary"
},其中 api 对应部署阶段的 SUMMARY_API,需要增加 /summary 路径。
其他
目前提示词部分会根据用户浏览器请求中传送的 Accept-Language 字段,自动生成对应语言的摘要,所以 D1 数据库中存储的摘要会有多条记录,而且模型本身的能力存在语言混乱的情况。