A newer version of the Gradio SDK is available:
6.3.0
Hugging Face Spaces 免费部署指南
本指南演示如何将 RLDT 的 Gradio 前端零成本发布到 Hugging Face Spaces,并使用 Hugging Face Inference 免费额度作为 LLM 后端。
1. 目录与关键文件
app.py:Spaces 的入口脚本,直接调用现有的create_gradio_interface()并在PORT(Spaces 自动注入)上启动,无需命令行参数。requirements.txt:Python 依赖列表,Spaces 会自动安装。RL0910/enhanced_chat_ui.py:主界面与业务逻辑,保持不变。
如果需要自带示例模型,可将模型权重放在仓库的
output/models/下或在启动脚本中下载。
2. 准备 Hugging Face 账号与 Token
- 访问 https://huggingface.co/settings/tokens 创建 Write 权限的 Access Token。
- 复制 Token,稍后在 Space 中配置为
HUGGINGFACEHUB_API_TOKEN。Hugging Face Inference 免费额度足以支撑轻量对话演示。
3. 创建 Space
- 在 Hugging Face 主页点击 New Space。
- 选择模板 Gradio(
app.py会被自动识别)。 - 选择 Public(免费额度)或 Private(需 Pro)。
- 创建完成后,获取 Space 的 Git 远程地址(形如
https://huggingface.co/spaces/<org>/<space-name>)。
4. 推送代码到 Space
在本地或 CI 中执行:
# 1) 克隆当前仓库并进入目录
cd /path/to/RLDT
# 2) 添加 Space 作为远程
git remote add space https://huggingface.co/spaces/<org>/<space-name>
# 3) 推送 main 分支(或当前分支)
git push space main
推送完成后,Spaces 会自动构建:安装依赖 → 运行 app.py → 暴露页面。
5. 配置环境变量(LLM 走 Hugging Face Inference)
在 Space 页面打开 Settings → Variables and secrets,添加:
HUGGINGFACEHUB_API_TOKEN:步骤 2 获取的 Token。- 可选:
HUGGINGFACE_MODEL(默认meta-llama/Meta-Llama-3-8B-Instruct)HUGGINGFACE_TASK(默认text-generation)HUGGINGFACE_TEMPERATURE、HUGGINGFACE_MAX_TOKENS- 如需其它云端模型,也可设置
GOOGLE_API_KEY、COHERE_API_KEY、ANTHROPIC_API_KEY等,优先级在RL0910/agent_graph.py中定义。
无需显式设置端口,Spaces 会自动注入
PORT环境变量,app.py会读取并绑定到0.0.0.0。
6. 数据与模型的放置方式
- 轻量演示:直接使用内置虚拟数据生成流程,无需上传文件。
- 自带模型/数据:
- 将模型权重放入仓库(小体积)并随代码推送;或
- 在
app.py中添加启动时的下载逻辑(如从hf://或公开 URL);或 - 在 Space 的 Persistent storage(启用后)中手动上传,再在代码中读取
/data路径。
- 若使用本地训练功能,请在 Variables and secrets 中设置:
DYNAMICS_MODEL_PATH、OUTCOME_MODEL_PATH、Q_NETWORK_PATHDATA_DIR(数据或导出报告目录)
7. 验证部署
- 等待构建完成后,点击 Space 页面右上角的 App,应显示 RLDT 的多标签 Gradio 界面。
- 打开 “Chat with DRIVE Agent” 输入指令,确认能返回由 Hugging Face Inference 提供的回复。
- 查看 Logs(左侧栏)可排查依赖安装或模型加载问题。
8. 常见问题
- 构建超时/内存不足:优先使用虚拟数据与远程 LLM,避免在免费套餐加载过大的本地模型。
- LLM 无响应:确认
HUGGINGFACEHUB_API_TOKEN和HUGGINGFACE_MODEL配置正确,或尝试更小的模型(如mistralai/Mistral-7B-Instruct-v0.2)。 - 端口相关错误:无需手动指定端口,确保未在代码中硬编码端口;
app.py已读取PORT。
部署完成后即可分享 Space 链接给他人免费体验,无需自建服务器。