# Cloudflare Pages 发布说明

这个目录是 Cloudflare Pages Advanced Mode 的源码模板。

## 你会得到什么

- `_worker.js`
  - 代理 `/v1/responses`
  - 兼容前端当前使用的 OpenAI Responses 风格返回
  - 对上游 `chat/completions` 或 `responses` 都能适配
  - 支持合成 SSE 流
- `_headers`
  - 给 HTML、运行时配置和音乐资源设置更合适的缓存策略

## 打包方式

在项目根目录执行：

```bash
bash deploy/build-cloudflare-zip.sh
```

会生成：

- `dist/cloudflare-pages-upload/`
- `dist/holy-chicken-cloudflare-pages.zip`

## Cloudflare 后台上传

1. 打开 Cloudflare Pages
2. 选择 `Create application`
3. 选择 `Pages`
4. 选择 `Upload assets`
5. 上传 `dist/holy-chicken-cloudflare-pages.zip`

这个 zip 的根目录已经是可直接发布结构，不需要再解压重组。

## 必填环境变量

在 Pages 项目设置里添加：

- `UPSTREAM_BASE_URL`
- `UPSTREAM_API_KEY`
- `UPSTREAM_MODEL`
- `UPSTREAM_API_STYLE`

如果你沿用当前较稳的主上游，建议填：

- `UPSTREAM_BASE_URL=http://api.tsbys.com/v1`
- `UPSTREAM_MODEL=qwen3-max`
- `UPSTREAM_API_STYLE=chat`

如果主上游在 Cloudflare 上表现不稳定，再加备用：

- `FALLBACK_UPSTREAM_BASE_URL=https://dash.classicriver.cn/v1`
- `FALLBACK_UPSTREAM_API_KEY=你的备用 key`
- `FALLBACK_UPSTREAM_MODEL=gpt-5.4`
- `FALLBACK_UPSTREAM_API_STYLE=chat`

可选变量：

- `CORS_ORIGIN=*`
- `APP_TOKEN=留空即可，除非你想给跨域调用再加一层 Bearer 校验`
- `UPSTREAM_TIMEOUT_MS=45000`
- `SYNTHETIC_STREAM_DELAY_MS=10`

## 发布后检查

- 首页：`https://你的-pages-域名/`
- 健康检查：`https://你的-pages-域名/health`
- AI 接口：`https://你的-pages-域名/v1/responses`

## 说明

- 前端静态资源与 Worker 一起走 Pages，同域调用，不需要单独服务器。
- 如果上游环境变量没配，站点仍能打开，但 AI 请求会失败，前端会退回本地兜底神谕。
