File size: 6,868 Bytes
7e55e53 | 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 | # Grok2API Hugging Face Spaces 部署包
完整的 Hugging Face Spaces 部署配置文件,支持持久化存储和自动保活。
## 📦 包含内容
### 核心配置文件
- ✅ `Dockerfile` - Docker 构建配置(Python 3.11)
- ✅ `pyproject.toml` - 项目依赖定义
- ✅ `requirements.txt` - Python 依赖列表
- ✅ `config.defaults.toml` - 默认配置模板
- ✅ `.env.example` - 环境变量示例
- ✅ `.dockerignore` - Docker 构建排除文件
- ✅ `.gitignore` - Git 版本控制排除文件
### 启动脚本
- ✅ `scripts/entrypoint.sh` - Docker 入口脚本
- ✅ `scripts/init_storage.sh` - 存储初始化脚本
- ✅ `app_hf.py` - Hugging Face 备用启动脚本
### 文档
- ✅ `README.md` - Spaces 项目说明(显示在 Space 页面)
- ✅ `DEPLOY_GUIDE.md` - 详细部署指南
- ✅ `QUICKSTART.md` - 快速开始指南
- ✅ `PROJECT_INFO.md` - 本文件
### 保活项目(keepalive/)
- ✅ `keepalive/.github/workflows/keep-alive.yml` - GitHub Actions 配置
- ✅ `keepalive/keepalive.py` - 保活 Python 脚本
- ✅ `keepalive/spaces.txt` - Space URL 配置
- ✅ `keepalive/README.md` - 保活项目说明
## 🚀 快速部署流程
### 第一步:获取源代码
```bash
# 1. 克隆原项目获取 app 目录
git clone https://github.com/chenyme/grok2api.git temp_grok2api
# 2. 复制 app 目录到当前文件夹
cp -r temp_grok2api/app ./
# 3. 清理临时文件
rm -rf temp_grok2api
```
### 第二步:创建 Hugging Face Space
1. 访问:https://huggingface.co/new-space
2. 配置:
- **SDK**: Docker ⚠️ 重要!
- **Hardware**: CPU basic(免费)
- **Visibility**: Public 或 Private
### 第三步:上传代码
```bash
# 初始化 git(如果需要)
git init
git add .
git commit -m "Initial deployment"
# 添加 HF 远程仓库并推送
git remote add hf https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE
git push hf main
```
### 第四步:配置环境变量
在 Space Settings → Variables 中添加:
**必需:**
```bash
APP_KEY=your_password
API_KEY=sk-your-api-key
APP_URL=https://YOUR_USERNAME-YOUR_SPACE.hf.space
DATA_DIR=/data
ACCOUNT_STORAGE=local
```
### 第五步:启用 Persistent Storage
⚠️ **非常重要!** 在 Space Settings 中启用
### 第六步:配置保活
1. 将 `keepalive/` 目录内容复制到新的 GitHub 仓库
2. 配置 GitHub Variables: `HF_SPACES=https://YOUR_SPACE.hf.space`
3. 启用 GitHub Actions
## 📁 目录结构
```
grok2api/
├── app/ # ⚠️ 需要从原项目获取
│ ├── main.py
│ ├── control/
│ ├── dataplane/
│ ├── platform/
│ ├── products/
│ └── statics/
├── scripts/
│ ├── entrypoint.sh
│ └── init_storage.sh
├── keepalive/ # 保活项目配置
│ ├── .github/
│ │ └── workflows/
│ │ └── keep-alive.yml
│ ├── keepalive.py
│ ├── spaces.txt
│ └── README.md
├── Dockerfile # Docker 构建文件
├── pyproject.toml # 项目配置
├── requirements.txt # 依赖列表
├── config.defaults.toml # 默认配置
├── .env.example # 环境变量示例
├── .dockerignore # Docker 排除文件
├── .gitignore # Git 排除文件
├── app_hf.py # HF 启动脚本
├── README.md # Space 页面说明
├── DEPLOY_GUIDE.md # 部署指南
├── QUICKSTART.md # 快速开始
└── PROJECT_INFO.md # 本文件
```
## ⚙️ 关键配置说明
### Dockerfile
- 基础镜像:`python:3.11-slim-bookworm`
- 使用 `uv` 加速依赖安装
- 支持 Persistent Storage (`/data`)
- 健康检查:`/health` 端点
### 环境变量优先级
1. Spaces Variables(最高优先级)
2. `.env` 文件
3. `config.defaults.toml`(默认值)
### 数据持久化路径
- 账号数据库:`/data/accounts.db`
- 运行配置:`/data/config.toml`
- 图片缓存:`/data/images/`
- 视频缓存:`/data/videos/`
- 日志文件:`/data/logs/`
## 🔍 功能特性
### API 兼容性
- ✅ OpenAI Chat Completions
- ✅ OpenAI Images (generations/edits)
- ✅ OpenAI Videos
- ✅ Anthropic Messages
- ✅ 流式和非流式输出
### 管理功能
- ✅ Web 管理后台
- ✅ 账号池管理
- ✅ 配置热更新
- ✅ 缓存管理
- ✅ 实时监控
### 保活机制
- ✅ GitHub Actions 定时任务
- ✅ 可配置访问频率
- ✅ 支持多个 Space
- ✅ 失败重试
## ⚠️ 重要提示
### 关于源代码
当前配置包**不包含** `app/` 目录(源代码),需要从原项目获取:
```bash
git clone https://github.com/chenyme/grok2api.git
cp -r grok2api/app ./
```
### 关于 Python 版本
- 原项目要求:Python ≥ 3.13
- 本配置调整为:Python 3.11(HF Spaces 兼容)
- 已测试兼容性,如遇问题请反馈
### 关于 Persistent Storage
- **必须启用**,否则每次重启都会丢失数据
- 免费额度有容量限制
- 定期清理缓存(图片/视频)
### 关于保活频率
- **推荐**:每 12 小时(`0 */12 * * *`)
- **最低**:每 6 小时
- **避免**:过于频繁(<30分钟)
## 📚 文档索引
1. **快速开始** → [QUICKSTART.md](./QUICKSTART.md)
2. **详细部署** → [DEPLOY_GUIDE.md](./DEPLOY_GUIDE.md)
3. **Space 说明** → [README.md](./README.md)
4. **保活配置** → [keepalive/README.md](./keepalive/README.md)
5. **环境变量** → [.env.example](./.env.example)
6. **默认配置** → [config.defaults.toml](./config.defaults.toml)
## 🔗 相关链接
- **原项目**: https://github.com/chenyme/grok2api
- **保活项目**: https://github.com/wankuzidi/hf-keepalive
- **HF Spaces 文档**: https://huggingface.co/docs/hub/spaces
- **Persistent Storage**: https://huggingface.co/docs/hub/spaces-storage
## 🐛 常见问题
### Q: Space 无法启动?
A: 检查 Logs 标签,确认环境变量配置正确,确保已启用 Persistent Storage
### Q: 如何获取 X Token?
A: 登录 X (Twitter),F12 打开开发者工具,查看请求头中的 Cookie
### Q: 图片/视频链接 403?
A: 必须正确设置 `APP_URL` 环境变量
### Q: 数据经常丢失?
A: 启用 Persistent Storage + 配置保活项目
### Q: 保活项目不工作?
A: 检查 GitHub Actions 是否启用,查看运行日志
## 📝 版本信息
- **配置包版本**: 1.0.0
- **grok2api 版本**: 2.0.4
- **Python 版本**: 3.11
- **创建日期**: 2026-06-07
## 📄 许可证
本配置包基于 MIT License,与原项目保持一致。
---
**免责声明**: 本项目仅供学习交流使用,请遵守相关服务的使用条款。
|