File size: 2,671 Bytes
f4dff88 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | # HF Space 配置说明
## 1. 部署模式
当前 `_hf` 目录采用以下模式:
- Docker 镜像只包含运行环境和 `bootstrap.py`
- 不内嵌业务脚本(`openai.py` / `main.py` / `claude_compat.py`)
- 容器启动时通过环境变量下载 zip 脚本包并运行
如果未配置下载地址,启动会直接失败(这是预期行为)。
## 2. 必填环境变量
- `SCRIPT_ZIP_URL`
- 脚本 zip 下载地址
- 例如对象存储直链、带鉴权的下载地址
- `SCRIPT_ZIP_SHA256`(推荐)
- zip 文件的 SHA256 校验值
- 与 `build_runtime_zip.py` 输出一致
说明:
- 若不使用 `SCRIPT_ZIP_SHA256`,必须设置 `ALLOW_UNVERIFIED_ZIP=1`
- 生产环境强烈建议始终校验 SHA256
## 3. 入口与解压相关变量
- `SCRIPT_EXTRACT_DIR`(默认 `/opt/runtime`)
- zip 解压后的运行根目录
- `SCRIPT_TMP_DIR`(默认 `/opt/runtime/.tmp`)
- 下载与中间临时文件目录
- `SCRIPT_WORKDIR`(默认 `app`)
- 入口脚本所在目录(相对于解压根目录)
- `SCRIPT_ENTRY`(默认 `openai.py`)
- 入口脚本文件名
默认入口等价于:
- `/opt/runtime/current/app/openai.py`
如果你的 zip 结构不同,请调整 `SCRIPT_WORKDIR` 和 `SCRIPT_ENTRY`。
## 4. 鉴权相关变量(按需)
- `SCRIPT_ZIP_TOKEN`
- 下载时自动添加 `Authorization: Bearer <token>`
- `SCRIPT_ZIP_HEADER`
- 自定义单个请求头,格式:`Key: Value`
## 5. 应用运行变量(建议)
- `PORT=7860`
- `POOL_MIN_SIZE=1`
- `POOL_MAX_SIZE=4`
- `ALLOW_UNVERIFIED_ZIP=0`
可选:
- `LOG_LEVEL=INFO`
- `HTTP_DEBUG=0`
- `POOL_INIT_BLOCKING=0`
## 6. zip 包内容要求
默认需要包含以下路径:
- `app/openai.py`
- `app/main.py`
- `app/claude_compat.py`
你也可以自定义结构,但必须与 `SCRIPT_WORKDIR` + `SCRIPT_ENTRY` 对齐。
## 7. 生成 zip 包
在项目根目录执行:
```bash
python build_runtime_zip.py
```
输出:
- `dist/runtime-payload.zip`
- `sha256=<...>`
将 zip 上传到可下载地址后,把对应 URL 和 SHA256 填到 HF Space Variables。
## 8. HF Space 最小配置清单
建议至少配置:
- `SCRIPT_ZIP_URL=<your zip url>`
- `SCRIPT_ZIP_SHA256=<sha256>`
- `PORT=7860`
- `POOL_MIN_SIZE=1`
- `POOL_MAX_SIZE=4`
## 9. 常见问题排查
- 启动报 `SCRIPT_ZIP_URL is required`
- 未配置 `SCRIPT_ZIP_URL`
- 启动报 `SHA256 mismatch`
- `SCRIPT_ZIP_SHA256` 与实际 zip 不一致,重新计算并更新
- 启动报 `Entry script not found`
- zip 内路径与 `SCRIPT_WORKDIR` / `SCRIPT_ENTRY` 不匹配
- 下载 401/403
- 检查 `SCRIPT_ZIP_TOKEN` 或 `SCRIPT_ZIP_HEADER` 是否正确
|