Spaces:
Sleeping
Sleeping
Delete docs/HUGGINGFACE_DEPLOY.md
Browse files- docs/HUGGINGFACE_DEPLOY.md +0 -130
docs/HUGGINGFACE_DEPLOY.md
DELETED
|
@@ -1,130 +0,0 @@
|
|
| 1 |
-
# Hugging Face Spaces 部署指南
|
| 2 |
-
|
| 3 |
-
本文档介绍如何将 GCLI2API 部署到 Hugging Face Spaces。
|
| 4 |
-
|
| 5 |
-
## 1. 部署方式选择
|
| 6 |
-
|
| 7 |
-
推荐使用 **Gradio (Python) Space** 进行部署。
|
| 8 |
-
|
| 9 |
-
## 2. 必要文件说明
|
| 10 |
-
|
| 11 |
-
已添加以下适配文件:
|
| 12 |
-
|
| 13 |
-
| 文件 | 作用 |
|
| 14 |
-
| ---- | ---- |
|
| 15 |
-
| `app.py` | Hugging Face Space 启动入口,启动 FastAPI 服务并提供 Gradio 信息页 |
|
| 16 |
-
| `README_HF.md` | Hugging Face Space 展示 README,用于空间首页说明 |
|
| 17 |
-
| `requirements.txt` | 依赖列表,已加入 gradio 与 requests |
|
| 18 |
-
| `.env.example` | 环境变量示例文件 |
|
| 19 |
-
| `README.md` | 已添加 front matter 以支持 HF Metadata |
|
| 20 |
-
|
| 21 |
-
## 3. 创建 Hugging Face Space
|
| 22 |
-
|
| 23 |
-
1. 打开 https://huggingface.co/spaces
|
| 24 |
-
2. 点击 "Create new Space"
|
| 25 |
-
3. 选择技术栈:`Gradio`
|
| 26 |
-
4. 填写名称,例如:`your-username/gcli2api`
|
| 27 |
-
5. 选择可见性:`Public` 或 `Private`
|
| 28 |
-
6. 创建后,将当前仓库代码推送到新建 Space 或在 Space 内手动上传文件
|
| 29 |
-
|
| 30 |
-
## 4. 设置环境变量 (Settings → Variables)
|
| 31 |
-
|
| 32 |
-
最少需要配置:
|
| 33 |
-
|
| 34 |
-
| 名称 | 说明 | 是否必需 |
|
| 35 |
-
| ---- | ---- | -------- |
|
| 36 |
-
| `API_PASSWORD` | API 请求认证密码 | 是(或用 PASSWORD) |
|
| 37 |
-
| `PANEL_PASSWORD` | 控制面板登录密码 | 是(或用 PASSWORD) |
|
| 38 |
-
| `PASSWORD` | 通用密码(设置后覆盖上面两个) | 否 |
|
| 39 |
-
| `AUTO_LOAD_ENV_CREDS` | 是否自动加载环境变量凭证 | 否 |
|
| 40 |
-
|
| 41 |
-
凭证(任选其一方式):
|
| 42 |
-
|
| 43 |
-
1. 在 Web 控制面板上传 credential JSON 文件
|
| 44 |
-
2. 设置 `AUTO_LOAD_ENV_CREDS=true` 并添加:
|
| 45 |
-
```bash
|
| 46 |
-
GCLI_CREDS_1={"client_id":"...","client_secret":"...","refresh_token":"...","token_uri":"https://oauth2.googleapis.com/token","project_id":"your-project"}
|
| 47 |
-
GCLI_CREDS_2={"client_id":"...","project_id":"..."}
|
| 48 |
-
```
|
| 49 |
-
|
| 50 |
-
可选优化参数:
|
| 51 |
-
```bash
|
| 52 |
-
CALLS_PER_ROTATION=10
|
| 53 |
-
RETRY_429_ENABLED=true
|
| 54 |
-
RETRY_429_MAX_RETRIES=5
|
| 55 |
-
COMPATIBILITY_MODE=true
|
| 56 |
-
ANTI_TRUNCATION_MAX_ATTEMPTS=3
|
| 57 |
-
```
|
| 58 |
-
|
| 59 |
-
## 5. Space 启动后访问
|
| 60 |
-
|
| 61 |
-
| 功能 | URL 示例 |
|
| 62 |
-
| ---- | -------- |
|
| 63 |
-
| 控制面板 | `https://<space-id>.hf.space/auth` |
|
| 64 |
-
| OpenAI 模型列表 | `https://<space-id>.hf.space/v1/models` |
|
| 65 |
-
| 健康检测 | `https://<space-id>.hf.space/keepalive` |
|
| 66 |
-
|
| 67 |
-
## 6. 示例请求
|
| 68 |
-
|
| 69 |
-
```bash
|
| 70 |
-
curl -X POST "https://<space-id>.hf.space/v1/chat/completions" \
|
| 71 |
-
-H "Authorization: Bearer ${API_PASSWORD}" \
|
| 72 |
-
-H "Content-Type: application/json" \
|
| 73 |
-
-d '{
|
| 74 |
-
"model": "gemini-2.5-pro",
|
| 75 |
-
"messages": [
|
| 76 |
-
{"role": "user", "content": "你好"}
|
| 77 |
-
]
|
| 78 |
-
}'
|
| 79 |
-
```
|
| 80 |
-
|
| 81 |
-
## 7. 常见问题与解决
|
| 82 |
-
|
| 83 |
-
| 问题 | 可能原因 | 解决方案 |
|
| 84 |
-
| ---- | -------- | -------- |
|
| 85 |
-
| 401 Unauthorized | 密码错误 | 检查 `API_PASSWORD` 或 `PASSWORD` |
|
| 86 |
-
| 503 Service Unavailable | 无有效凭证 | 上传或配置 GCLI_CREDS_* |
|
| 87 |
-
| 模型列表为空 | 未正确认证 | 确认凭证刷新成功 |
|
| 88 |
-
| 流式不输出 | 客户端不支持 SSE | 使用假流式模型 `假流式/` 前缀 |
|
| 89 |
-
|
| 90 |
-
## 8. 模型命名速查
|
| 91 |
-
|
| 92 |
-
| 模式 | 示例 |
|
| 93 |
-
| ---- | ---- |
|
| 94 |
-
| 基础 | `gemini-2.5-pro` |
|
| 95 |
-
| 假流式 | `假流式/gemini-2.5-pro` |
|
| 96 |
-
| 抗截断流式 | `流式抗截断/gemini-2.5-pro` |
|
| 97 |
-
| 最大思考 | `gemini-2.5-pro-maxthinking` |
|
| 98 |
-
| 无思考 | `gemini-2.5-pro-nothinking` |
|
| 99 |
-
| 搜索增强 | `gemini-2.5-pro-search` |
|
| 100 |
-
|
| 101 |
-
可组合:`流式抗截断/gemini-2.5-pro-maxthinking`
|
| 102 |
-
|
| 103 |
-
## 9. 安全建议
|
| 104 |
-
|
| 105 |
-
- 使用随机长密码(>=24字符)
|
| 106 |
-
- Private Space 存放敏感凭证
|
| 107 |
-
- 不要在公共 README 中泄露密码
|
| 108 |
-
- 定期轮换凭证与刷新 token
|
| 109 |
-
|
| 110 |
-
## 10. 维护操作
|
| 111 |
-
|
| 112 |
-
| 操作 | 方法 |
|
| 113 |
-
| ---- | ---- |
|
| 114 |
-
| 更新代码 | 推送到 Space 触发重建 |
|
| 115 |
-
| 查看日志 | Space Logs 面板 + Web 面板实时日志 |
|
| 116 |
-
| 清空日志 | 面板中提供清空按钮 |
|
| 117 |
-
| 添加凭证 | 面板上传或新增环境变量 |
|
| 118 |
-
|
| 119 |
-
## 11. 自定义扩展 (可选)
|
| 120 |
-
|
| 121 |
-
如果需要自定义依赖或系统级库,可切换到 **Docker Space**,并使用项目中现有 `Dockerfile`(如需精简可自行裁剪)。
|
| 122 |
-
|
| 123 |
-
## 12. 版本升级策略
|
| 124 |
-
|
| 125 |
-
- 关注上游仓库 release
|
| 126 |
-
- 使用 Git Submodule 或定期同步
|
| 127 |
-
- 修改前备份 `creds/` 与持久化数据库
|
| 128 |
-
|
| 129 |
-
---
|
| 130 |
-
如需进一步自动化(CI 自动推送 Space),可添加 GitHub Actions,构建并同步至 Hugging Face。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|