lightspeed commited on
Commit
6d6023c
·
verified ·
1 Parent(s): 0bd5629

Delete docs/HUGGINGFACE_DOCKER_SPACE.md

Browse files
Files changed (1) hide show
  1. docs/HUGGINGFACE_DOCKER_SPACE.md +0 -154
docs/HUGGINGFACE_DOCKER_SPACE.md DELETED
@@ -1,154 +0,0 @@
1
- # Hugging Face Docker Space 部署指南
2
-
3
- 本文档说明如何使用 Hugging Face 的 Docker Space 技术栈部署 GCLI2API。
4
-
5
- ## 1. 选择 Docker 方式的适用场景
6
-
7
- 选择 **Docker** 而不是 Gradio 技术栈的场景:
8
- - 需要完全自定义运行环境
9
- - 需要更快的冷启动或更可控的依赖
10
- - 不需要额外 UI,仅提供 API 服务
11
- - 需要使用系统级扩展、构建工具或自定义脚本
12
-
13
- ## 2. 准备代码仓库
14
-
15
- 仓库已包含优化后的 `Dockerfile`,特点:
16
- - 多阶段构建(减小最终镜像体积)
17
- - 使用 `tini` 作为 init 进程,优雅处理信号
18
- - 非 root 用户运行(安全)
19
- - 支持 Hugging Face 自动注入的 `PORT` 环境变量
20
- - 支持健康检查(`/keepalive`)
21
-
22
- ## 3. 创建 Docker Space
23
-
24
- 1. 打开 https://huggingface.co/spaces
25
- 2. Create New Space → 选择 `Docker` 技术栈
26
- 3. 填写 Space 名称与可见性
27
- 4. 创建后把本项目代码推送到该 Space(或者直接在 Space 网页上传文件)
28
-
29
- ## 4. Dockerfile 说明
30
-
31
- 当前项目内的 `Dockerfile` 默认启动命令:
32
- ```dockerfile
33
- CMD ["python","app.py"]
34
- ```
35
- app.py 会:
36
- - 启动 FastAPI 主应用 (web.py)
37
- - 提供可选的 Gradio 信息界面(若需要)
38
-
39
- 如仅需 API,可改为:
40
- ```dockerfile
41
- CMD ["python","web.py"]
42
- ```
43
-
44
- ## 5. 配置环境变量
45
-
46
- 在 Space 设置(Settings → Variables)中添加:
47
-
48
- | 变量 | 说明 | 是否必需 |
49
- | ---- | ---- | -------- |
50
- | API_PASSWORD | API 访问密码 | 是 |
51
- | PANEL_PASSWORD | 控制面板密码 | 是(或使用 PASSWORD) |
52
- | AUTO_LOAD_ENV_CREDS | 启用环境变量凭证载入 | 否 |
53
- | GCLI_CREDS_* | 提供 Google OAuth 凭证 | 依使用方式决定 |
54
-
55
- 可选性能优化:
56
- ```bash
57
- CALLS_PER_ROTATION=10
58
- RETRY_429_ENABLED=true
59
- RETRY_429_MAX_RETRIES=5
60
- ANTI_TRUNCATION_MAX_ATTEMPTS=3
61
- COMPATIBILITY_MODE=true
62
- ```
63
-
64
- ## 6. 初次部署流程
65
-
66
- 1. 推送代码后 Space 会自动构建镜像
67
- 2. 构建完成后自动运行容器
68
- 3. 查看 Logs 确认输出中包含:`GCLI2API Lightspeed - Hugging Face Spaces Edition`
69
- 4. 访问:`https://<space-id>.hf.space/auth` 登录控制台
70
- 5. 上传或配置凭证
71
- 6. 通过 `/v1/models` 验证 API 可用
72
-
73
- ## 7. API 访问示例
74
-
75
- ```bash
76
- curl -X POST "https://<space-id>.hf.space/v1/chat/completions" \
77
- -H "Authorization: Bearer ${API_PASSWORD}" \
78
- -H "Content-Type: application/json" \
79
- -d '{
80
- "model": "gemini-2.5-pro",
81
- "messages": [
82
- {"role": "user", "content": "介绍一下你自己"}
83
- ]
84
- }'
85
- ```
86
-
87
- 健康检查:
88
- ```bash
89
- curl -I "https://<space-id>.hf.space/keepalive"
90
- ```
91
-
92
- ## 8. 自定义与扩展
93
-
94
- ### 更换 Python 版本
95
- 修改 `FROM python:3.13-slim` 为其他受支持版本(建议 >=3.11)。
96
-
97
- ### 添加系统依赖
98
- 在 `Base Stage` 中:
99
- ```dockerfile
100
- RUN apt-get update && apt-get install -y --no-install-recommends \
101
- ffmpeg libmagic1 && rm -rf /var/lib/apt/lists/*
102
- ```
103
-
104
- ### 修改启动参数
105
- 使用环境变量:
106
- ```bash
107
- PORT=7860 HOST=0.0.0.0 LOG_LEVEL=INFO
108
- ```
109
-
110
- 或修改 Dockerfile:
111
- ```dockerfile
112
- CMD ["python","-m","web"]
113
- ```
114
-
115
- ## 9. 故障排查
116
-
117
- | 症状 | 可能原因 | 解决方案 |
118
- | ---- | -------- | -------- |
119
- | Space 构建失败 | 依赖缺失/语法错误 | 查看构建日志,确认 requirements 正常安装 |
120
- | 401 Unauthorized | 密码错误 | 确认 API_PASSWORD 与请求头一致 |
121
- | 503 Service Unavailable | 无有效凭证 | 上传 Google OAuth 凭证或配置 GCLI_CREDS_* |
122
- | 模型名称报错 | 模型名带前缀/后缀拼写错误 | 参考 README_HF.md 中模型命名规则 |
123
- | 流式响应无输出 | 客户端不支持 SSE | 使用 假流式/ 前缀模型 |
124
- | 截断 | 输出过长 | 使用 流式抗截断/ 前缀模型 |
125
-
126
- ## 10. 升级策略
127
-
128
- 更新代码并推送 -> Space 自动重建 -> 验证功能。
129
- 如需保留持久凭证,可改用外部数据库(Redis/MongoDB/Postgres)。
130
-
131
- ## 11. 使用外部 Redis (示例)
132
-
133
- 在 Variables 中配置:
134
- ```bash
135
- REDIS_URI=rediss://default:token@xxx.upstash.io:6379
136
- REDIS_DATABASE=0
137
- ```
138
-
139
- ## 12. 使用 MongoDB Atlas (示例)
140
- ```bash
141
- MONGODB_URI=mongodb+srv://user:pass@cluster.mongodb.net
142
- MONGODB_DATABASE=gcli2api
143
- ```
144
-
145
- ## 13. 切换到 web.py 纯 API 模式
146
-
147
- 编辑 Dockerfile:
148
- ```dockerfile
149
- CMD ["python","web.py"]
150
- ```
151
- 并删除 `app.py` 中的 Gradio 依赖(如不需要 UI)。
152
-
153
- ---
154
- 如需 CI 自动同步到 Space,可添加 GitHub Action 使用 `huggingface-cli` 推送更新。