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` 是否正确