A newer version of the Gradio SDK is available:
6.2.0
云端部署与 Hugging Face LLM 接入指南
本文档说明如何把 RLDT 的 Gradio 前端部署到云端,使团队通过公网链接访问,并使用 Hugging Face Inference 取代本地 LLM。
部署目标概览
- 在云服务器上启动
enhanced_chat_ui.py,通过--share或自定义反向代理暴露公网地址。 - 使用环境变量配置训练/推理所需路径,并通过 Hugging Face Token 调用远程大模型。
- 推荐使用 Docker 封装运行环境,便于一键启动和升级。
准备工作
- 云主机:任选支持持久网络访问的云服务(如 AWS EC2、GCP、阿里云)。开放应用端口(默认 7860)。
- Python 运行环境:Python 3.10+,并安装项目依赖。
python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt - 模型与数据路径:将训练好的模型权重(
dynamics_model.pth、outcome_model.pth、q_network.pth等)上传到云端,并在启动前通过环境变量指向这些路径。
依赖安装与封装步骤
- 创建隔离环境(推荐):
python -m venv .venv && source .venv/bin/activate。 - 安装依赖:
pip install -r requirements.txt,其中包含 Gradio、LangChain(含 Hugging Face/OpenAI/Cohere/Gemini/Anthropic 客户端)、PyTorch、d3rlpy、数据科学工具等。 - 可选 LLM 依赖:
- 若使用 Google Gemini / Cohere / Anthropic,对应包已在
requirements.txt;只需提供 API Key。 - 如需 Ollama 本地推理,需在系统层预装 Ollama 并拉取模型。
- 若使用 Google Gemini / Cohere / Anthropic,对应包已在
- 运行健康检查:
python RL0910/system_health_check.py,确认模型路径、端口和网络正常。 - 打包运行资产:
- 保留
requirements.txt、RL0910/、OVdata.py、docs/以及output/models(或挂载外部模型目录)。 - 将
.env(存放密钥与路径)与Dockerfile一同提交/上传到云端,便于一键构建。
- 保留
关键环境变量
将以下变量写入 .env 或云服务的“环境变量”面板中:
LLM 相关
HUGGINGFACEHUB_API_TOKEN:Hugging Face Inference API Token。HUGGINGFACE_MODEL(可选):使用的仓库名,默认meta-llama/Meta-Llama-3-8B-Instruct。HUGGINGFACE_TASK(可选):推理任务,默认text-generation。HUGGINGFACE_TEMPERATURE、HUGGINGFACE_MAX_TOKENS(可选):生成温度与最大输出长度。- 其他可选开关:
LOCAL_LLM_ENDPOINT、GROQ_API_KEY、GOOGLE_API_KEY、COHERE_API_KEY,当同时存在时优先级见RL0910/agent_graph.py。
模型权重与数据
DYNAMICS_MODEL_PATH、OUTCOME_MODEL_PATH、Q_NETWORK_PATH:推理所需模型文件路径(若使用在线推理/训练功能)。DATA_DIR:数据集或导出报告的存放目录。
直接运行(快速验证)
在云主机上拉取代码后执行:
cd /path/to/RLDT
export HUGGINGFACEHUB_API_TOKEN="<你的 Token>"
python RL0910/enhanced_chat_ui.py --share --port 7860
--share会创建一个 Gradio 提供的公网链接,适合快速演示。- 若需绑定固定域名,可省略
--share,改由 Nginx/Caddy 做反向代理并配置 HTTPS。
Docker 部署(推荐生产环境)
创建镜像(示例 Dockerfile):
FROM python:3.10-slim WORKDIR /app COPY . /app RUN pip install --no-cache-dir -r requirements.txt ENV PORT=7860 EXPOSE 7860 CMD ["python", "RL0910/enhanced_chat_ui.py", "--port", "7860"]构建与运行:
docker build -t rldt-app . docker run -d \ -p 7860:7860 \ --env-file .env \ -v /path/on/host/models:/app/models \ --name rldt rldt-app.env中写入前述环境变量;-v将主机模型目录挂载到容器。
上线访问:
- 直接暴露端口:配置安全组放行 7860(或映射到 80/443)。
- 使用反向代理:在 Nginx 中将域名流量转发到容器
localhost:7860,并开启 TLS。
免费云端部署:Hugging Face Spaces(零成本上线)
Hugging Face Spaces 提供免费额度,可直接托管 Gradio 前端并使用 Hugging Face Inference。
- 准备仓库:确保仓库包含
requirements.txt、RL0910/enhanced_chat_ui.py和模型权重(或在 Space 中通过挂载/下载)。 - 创建 Space:在 Hugging Face 主页选择 New Space,选择 Gradio 模板,勾选 Public(免费额度)。
- 推送代码:将当前仓库(含
requirements.txt)推送到 Space 的 Git 远端。 - 配置变量:在 Space 的 Settings → Variables and secrets 设置
HUGGINGFACEHUB_API_TOKEN、HUGGINGFACE_MODEL等环境变量;如模型体积较大,可改为在启动脚本中从外部 URL 下载。 - 入口命令:Space 会自动执行
python RL0910/enhanced_chat_ui.py --port 7860。如需自定义端口或关闭--share,可在 Space 的 App file 中调整命令。 - 访问链接:构建完成后会生成永久公开链接,免费分享给团队;若需私有访问,可设置 Space 为 Private(需付费额度)。
使用远程 Hugging Face LLM
- 只需在部署环境设置
HUGGINGFACEHUB_API_TOKEN(及可选模型、参数变量),agent_graph.get_llm会自动选择 Hugging Face Chat 模型,替代默认本地 LLM。 - 更换模型时无需改代码:更新环境变量后重启服务即可。
运行健康检查与日志
- 启动脚本会在控制台输出加载信息。可通过 Docker
logs rldt -f或云监控查看。 - 如需系统级自检,可运行
python RL0910/system_health_check.py,确保依赖模型、数据路径、网络连通性均正常。
常见问题
- 端口无法访问:确认云安全组/防火墙放行对应端口;如用反向代理,检查 upstream 配置。
- LLM 无响应或超时:核对 Token 是否正确、模型是否支持 Inference API;可调小
HUGGINGFACE_MAX_TOKENS、增大超时。 - 显存不足:使用 Hugging Face Inference 即可避免本地显存限制;若仍需本地推理,可改用轻量模型并启用
LOCAL_LLM_ENDPOINT。