# 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,与原项目保持一致。 --- **免责声明**: 本项目仅供学习交流使用,请遵守相关服务的使用条款。