LQY1234/agent-react
0
1# 各平台详细部署指南2 3## 🚀 Railway(推荐 - 最简单)4 5### 自动部署(仅需 5 分钟)61. 访问 https://railway.app72. 点击 "Create New Project" → "Deploy from GitHub repo"83. 授权 GitHub 并选择你的仓库94. Railway 自动检测并部署105. 在 "Variables" 选项卡添加环境变量116. 等待部署完成,获得公开 URL12 13### 环境变量配置14```15SERPAPI_API_KEY=your_key_here16LLM_API_KEY=your_key_here17LLM_MODEL_ID=Qwen/Qwen2.5-Coder-32B-Instruct18LLM_BASE_URL=https://api-inference.modelscope.cn/v1/19FLASK_ENV=production20```21 22**优点:** 简单快速、免费额度充足、自动 HTTPS23 24---25 26## 🔵 Vercel(适合简单应用)27 28### 手动部署步骤29 301. **注册账号**31 - 访问 https://vercel.com32 - 用 GitHub 授权登录33 342. **导入项目**35 - 点击 "New Project"36 - 选择你的 GitHub 仓库37 - 自动检测 Python 项目38 393. **配置环境变量**40 - "Environment Variables" 选项卡41 - 添加所有必需的 API 密钥42 434. **部署**44 - 点击 "Deploy" 开始构建45 - 等待部署完成46 47**⚠️ 注意:** Vercel 的免费层对长时间运行请求有限制(15秒超时),可能导致 agent 搜索超时。考虑升级付费计划或使用其他平台。48 49---50 51## 🐳 Docker(完全控制)52 53### 本地测试54```bash55# 构建镜像56docker build -t agent-react .57 58# 运行容器(使用 docker-compose)59docker-compose up60 61# 访问 http://localhost:500062```63 64### 部署到云平台65**选项 A: Google Cloud Run(推荐 Docker)**66```bash67# 1. 安装 Google Cloud SDK68# 2. 认证69gcloud auth login70 71# 3. 推送镜像到 Container Registry72gcloud builds submit --tag gcr.io/YOUR_PROJECT/agent-react73 74# 4. 部署到 Cloud Run75gcloud run deploy agent-react \76 --image gcr.io/YOUR_PROJECT/agent-react \77 --platform managed \78 --region us-central1 \79 --allow-unauthenticated \80 --set-env-vars SERPAPI_API_KEY=your_key,LLM_API_KEY=your_key81```82 83**选项 B: AWS ECS**841. 创建 ECR 仓库852. 构建并推送 Docker 镜像863. 创建 ECS 服务874. 配置环境变量和安全组88 89---90 91## 🟠 Heroku(经典方案,需信用卡)92 93### 部署步骤94 951. **安装 Heroku CLI**96 ```bash97 brew tap heroku/brew && brew install heroku98 heroku login99 ```100 1012. **创建 Heroku 应用**102 ```bash103 heroku create your-app-name104 ```105 1063. **添加环境变量**107 ```bash108 heroku config:set SERPAPI_API_KEY=your_key109 heroku config:set LLM_API_KEY=your_key110 heroku config:set LLM_MODEL_ID=Qwen/Qwen2.5-Coder-32B-Instruct111 heroku config:set LLM_BASE_URL=https://api-inference.modelscope.cn/v1/112 ```113 1144. **部署**115 ```bash116 git push heroku main117 ```118 1195. **查看日志**120 ```bash121 heroku logs --tail122 ```123 124**成本:** 免费 dyno 已停用,最低需要 $7/月的标准 dyno125 126---127 128## 🟣 PythonAnywhere(完全为 Python 优化)129 130### 部署步骤131 1321. **注册免费账号**133 - https://www.pythonanywhere.com134 - 选择免费计划(pythonanywhere.com 子域)135 1362. **上传代码**137 选项 A: 从 GitHub Clone138 ```bash139 # 在 PythonAnywhere 控制台140 git clone https://github.com/YOUR_USERNAME/your-repo.git141 ```142 1433. **创建虚拟环境**144 ```bash145 # 在 Web 选项卡,创建新 Web App146 # 选择 Python 版本147 # 配置虚拟环境路径148 ```149 1504. **安装依赖**151 ```bash152 pip install -r requirements.txt153 ```154 1555. **配置 WSGI**156 编辑 WSGI 文件(通常在 `/var/www/YOUR_USERNAME_pythonanywhere_com_wsgi.py`):157 ```python158 import sys159 path = '/home/YOUR_USERNAME/your-repo'160 if path not in sys.path:161 sys.path.append(path)162 from web import app as application163 ```164 1656. **设置环境变量**166 在虚拟环境的 `bin/activate` 中添加:167 ```bash168 export SERPAPI_API_KEY="your_key"169 export LLM_API_KEY="your_key"170 export LLM_MODEL_ID="Qwen/Qwen2.5-Coder-32B-Instruct"171 export LLM_BASE_URL="https://api-inference.modelscope.cn/v1/"172 ```173 1747. **重载 Web App**175 在 PythonAnywhere 仪表板点击 "Reload"176 177**优点:** 专为 Python 设计、界面友好、免费额度可用178 179---180 181## 🟢 快速部署脚本182 183### 一键推送到 GitHub184```bash185chmod +x deploy.sh186./deploy.sh187```188 189然后:1901. 选择 Railway(最简单)1912. 连接 GitHub 仓库1923. 添加环境变量1934. 自动部署194 195---196 197## 🔐 安全最佳实践198 199部署前必须做:200- [ ] `.env` 已加入 `.gitignore`201- [ ] 所有 API 密钥都通过环境变量传入(不硬编码)202- [ ] 本地测试通过203- [ ] 仓库设置为私密(如包含敏感信息)204- [ ] 定期轮换 API 密钥205 206---207 208## 📊 平台对比表209 210| 平台 | 难度 | 成本 | 冷启动 | 超时限制 | 推荐度 |211|------|------|------|--------|---------|--------|212| Railway | ⭐ 最简单 | 免费/付费 | <1分钟 | 30分钟+ | ⭐⭐⭐⭐⭐ |213| Vercel | ⭐⭐ 简单 | 免费/付费 | <1分钟 | 15秒 | ⭐⭐⭐ |214| Docker + Cloud Run | ⭐⭐⭐ 中等 | ~$1/月 | 30秒 | 1小时 | ⭐⭐⭐⭐ |215| Heroku | ⭐⭐ 简单 | $7/月+ | 30秒 | 30分钟 | ⭐⭐⭐ |216| PythonAnywhere | ⭐⭐ 简单 | 免费/付费 | 1-2分钟 | 5分钟 | ⭐⭐⭐⭐ |217 218---219 220## 常见问题221 222**Q: 部署后 agent 搜索超时?**223A: 增加超时限制。在 Railway 或其他平台增加 WSGI 超时配置。224 225**Q: API 密钥暴露了怎么办?**226A: 立即在 API 提供商处重新生成密钥。227 228**Q: 如何查看部署日志?**229A: 每个平台的仪表板都有 "Logs" 选项卡。230 231**Q: 如何自动更新部署?**232A: 在 GitHub push 时自动触发(大多数平台支持)。233 234---235 236需要帮助?查看各平台官方文档或联系平台客服。237 