如何部署上线?Data-Analysis-Agent Gunicorn生产部署与环境自适应实战
【免费下载链接】Data-Analysis-Agent🚀你的私人数据分析助手。通过对话式交互,自动生成可视化报表与商业洞察,让数据决策变得像聊天一样简单。 🚀 Your personal data analysis assistant. Say goodbye to complex SQL and Excel formulas. An LLM-powered data analysis agent. Chat with your data to instantly generate visualizations and business insights. Making>项目地址: https://gitcode.com/gh_mirrors/vi/Data-Analysis-Agent
Data-Analysis-Agent 是一款对话式数据分析助手:上传 Excel/CSV 数据后,LLM 会自动分析字段、推荐图表并生成交互式可视化报表。这篇文章聚焦Data-Analysis-Agent 的 Gunicorn 生产部署,手把手带你在 Linux 服务器上把它作为生产服务上线,并讲清楚它内置的环境自适应机制与 LLM Key 安全配置方法,新手照做即可 🚀
先了解 Data-Analysis-Agent 的部署友好设计
这个项目的后端是一个标准的 Flask 应用,入口在 app.py 中的app对象,默认监听0.0.0.0:5017端口。它有两个对生产部署非常友好的设计:
- 依赖清单完整:requirements.txt 中已经写入了
flask、gunicorn>=20.1.0、pandas、plotly、openai等全部依赖,pip install -r一次装齐; - 环境自适应路径:应用启动时会自动判断运行环境(app.py 的
BASE_DIR逻辑),自动创建uploads/(用户上传数据)和outputs/(生成的图表文件)目录,无需手工建目录。
Gunicorn 生产部署三步走
第一步:克隆仓库并安装依赖
git clone https://gitcode.com/gh_mirrors/vi/Data-Analysis-Agent cd Data-Analysis-Agent python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt💡 本地开发可以直接双击 start.bat(Windows 一键脚本)或执行
python app.py启动调试模式;但生产环境请改用 Gunicorn。
第二步:用 Gunicorn 启动生产服务
gunicorn -w 4 -b 0.0.0.0:5017 --timeout 120 \ --access-logfile - --error-logfile - \ app:app参数说明(新手重点):
| 参数 | 作用 | 建议 |
|---|---|---|
-w 4 | 工作进程数 | CPU 核数 × 2 + 1 起步;注意 LLM 分析接口是阻塞调用,Worker 不宜过多 |
-b 0.0.0.0:5017 | 监听地址 | 与项目默认端口一致,对外暴露需防火墙放行 |
--timeout 120 | 请求超时(秒) | 调用 LLM 耗时较长,务必调大,否则分析接口会 502 |
--access-logfile - | 访问日志输出到控制台 | 配合 systemd 落盘,便于排错 |
第三步:验证服务已上线
浏览器访问http://服务器IP:5017,能看到首页即部署成功;上传一份表格后,系统会自动推荐候选图表:
环境自适应:Data-Analysis-Agent 如何自动切换存储路径
在 app.py 中有这样一段核心逻辑:
BASE_DIR = Path('/tmp') if os.environ.get('VERCEL') else CHART_PROJECT它的意思是:如果检测到VERCEL环境变量,就把上传目录和输出目录切到/tmp(适配 Serverless 平台只读代码目录 + 临时磁盘的限制);普通 Linux 服务器上没有该变量,则使用项目目录下的uploads/与outputs/,文件可以持久保留。
这带来的实战提示:
- 生产服务器(无 VERCEL 变量):数据文件落在项目目录内,记得给运行用户目录写权限,并定期清理
outputs/里的历史图表; - 多 Worker 部署:多个 Gunicorn 进程共享同一个
chart_mapping.json映射文件,写入频率低、风险可控,但高并发写入时可考虑放在共享磁盘卷上; - 上传大小由 app.py 中的
MAX_CONTENT_LENGTH限制为 50MB,前端若配置了 Nginx,记得同步client_max_body_size 50m;,否则会收到 413 错误。
生产环境如何安全配置 LLM API Key
智能推荐能力依赖 LLM 提供商(DeepSeek / OpenAI / Claude 等),密钥管理逻辑在 LLM/llm_config_manager.py:
- 推荐方式(生产环境):通过环境变量注入,如
DEEPSEEK_API_KEY、OPENAI_API_KEY,不要直接提交 LLM/llm_config.json 到版本库; - 备选方式:在 Web 界面"配置设置"面板中保存 Key,会写入
llm_config.json文件,方便多用户共用服务器时的界面化配置; - 支持自定义任意 OpenAI 兼容接口的模型(
/api/llm/add-custom),内网大模型服务也能无缝接入。
把 Key 写进 systemd 环境块即可实现"重启不丢、不进仓库":
[Service] Environment="DEEPSEEK_API_KEY=sk-xxxx" ExecStart=/path/to/.venv/bin/gunicorn -w 4 -b 0.0.0.0:5017 --timeout 120 app:app常见问题速查
- 端口被占用:
5017已存在时 Gunicorn 会启动失败,用ss -lntp | grep 5017排查旧进程; - 分析请求 502/超时:把
--timeout调到 120 以上,LLM 接口是同步调用; - 上传大文件 413:检查 Nginx 的
client_max_body_size; - 图表字体异常:图表模块支持
CHARTS_FONT_PATH环境变量指定字体路径,中文字体缺失时可指向项目内的 charts/AlibabaPuHuiTi-3-55-Regular.ttf。
小结
Data-Analysis-Agent 的 Gunicorn 生产部署可以归纳为一句话:装依赖 → gunicorn -w 4 --timeout 120 app:app → 环境变量注入 LLM Key。配合它内置的VERCEL环境自适应路径与注册中心式图表架构(charts/registry.py),无论是裸机服务器还是 Serverless 平台,都能以极低的改造成本让"对话式数据分析"能力稳定上线。部署完成后再给 Nginx 套一层 HTTPS 与域名,你的私人数据分析助手就正式可用了 ✅
【免费下载链接】Data-Analysis-Agent🚀你的私人数据分析助手。通过对话式交互,自动生成可视化报表与商业洞察,让数据决策变得像聊天一样简单。 🚀 Your personal data analysis assistant. Say goodbye to complex SQL and Excel formulas. An LLM-powered data analysis agent. Chat with your data to instantly generate visualizations and business insights. Making>项目地址: https://gitcode.com/gh_mirrors/vi/Data-Analysis-Agent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考