Hermes Agent是一个将自然语言转换为SQL查询的轻量级代理服务,可快速对接MySQL、PostgreSQL等数据源,让数据分析人员用自然语言提问即获得数据结果。下面分步骤介绍在阿里云ECS上的完整部署流程。
一、认识Hermes Agent
Hermes Agent(基于Dataherald引擎)通过解析自然语言问题,结合数据库Schema元信息生成SQL并执行返回结果。部署后可通过API接口调用,适合内部数据分析工具集成。本文以Ubuntu 22.04系统为例,默认使用阿里云ECS实例。
二、环境准备与ECS选型
创建ECS实例
- 登录阿里云控制台,进入ECS产品页,选择“创建实例”。
- 地域可根据业务就近选择;镜像推荐选择 Ubuntu 22.04 LTS 64位。
- 实例规格:至少2核4GiB(如ecs.c6.large),Hermes Agent依赖Python环境及部分推理模型,内存建议不低于4GiB。
- 系统盘:40GiB高效云盘足够起步。
- 网络:分配公网IPv4地址,带宽按需选择(测试可选按量计费1Mbps)。
安全组初步配置
- 创建实例时或之后在安全组规则中,添加一条入方向规则:
- 端口范围:
5000/5000(Hermes默认Web服务端口) - 授权对象:
0.0.0.0/0(测试阶段,生产环境建议限定来源IP) - 协议:TCP
- 端口范围:
- 创建实例时或之后在安全组规则中,添加一条入方向规则:
SSH登录实例
ssh root@<你的公网IP>
三、安装基础依赖与Python环境
Hermes Agent需要Python 3.9+及若干系统库。
更新系统并安装基础工具
apt update && apt upgrade -y apt install -y git curl wget build-essential libssl-dev libffi-dev python3-dev python3-pip安装Python 3.10及虚拟环境
Ubuntu 22.04自带Python 3.10,可检查版本:python3 --version安装pip和venv:
apt install -y python3-venv python3-pip安装数据库客户端库(按需)
若后续对接MySQL或PostgreSQL,提前安装开发包:apt install -y libpq-dev default-libmysqlclient-dev
四、配置Hermes Agent项目
克隆项目仓库
cd /opt git clone https://github.com/Dataherald/hermes-agent.git cd hermes-agent创建Python虚拟环境
python3 -m venv venv source venv/bin/activate安装Python依赖
pip install --upgrade pip pip install -r requirements.txt若安装过程报错缺少某些系统库,根据提示使用
apt install补充即可。配置环境变量
复制示例配置文件:cp .env.example .env用文本编辑器修改
.env中的关键配置项:OPENAI_API_KEY:填写你的OpenAI API Key(Hermes依赖大模型生成SQL)。DB_CONNECTION_STRING:目标数据库连接串,例如:
或PostgreSQL格式:mysql+pymysql://用户名:密码@数据库IP:3306/数据库名postgresql://用户名:密码@数据库IP:5432/数据库名- 其他参数如
HERMES_PORT默认为5000,HERMES_HOST设为0.0.0.0以便外部访问。
初始化元数据
Hermes Agent首次运行需要扫描数据库结构生成元信息缓存。执行:python init_metadata.py根据数据库大小,此过程可能耗时几十秒到几分钟。
五、启动服务与守护进程
直接测试运行
python app.py看到类似
Running on http://0.0.0.0:5000的输出表示启动成功,按Ctrl+C停止。使用systemd守护进程
创建服务文件:nano /etc/systemd/system/hermes-agent.service粘贴以下内容(注意替换路径):
[Unit] Description=Hermes Agent Service After=network.target [Service] User=root WorkingDirectory=/opt/hermes-agent Environment="PATH=/opt/hermes-agent/venv/bin" ExecStart=/opt/hermes-agent/venv/bin/python app.py Restart=always [Install] WantedBy=multi-user.target保存后启用并启动:
systemctl daemon-reload systemctl enable hermes-agent systemctl start hermes-agent检查状态:
systemctl status hermes-agent
六、开放安全组端口与测试访问
确认安全组规则
回到阿里云ECS安全组配置,确保入方向已放行TCP5000端口。测试API接口
在本地终端(或另一台可访问公网的机器)执行curl命令:curl -X POST http://<你的ECS公网IP>:5000/query \ -H "Content-Type: application/json" \ -d '{"question": "查询用户表中有多少条记录?"}'若返回JSON格式的查询结果及生成的SQL,说明部署成功。
(可选)配置Nginx反向代理与HTTPS
生产环境建议搭配Nginx使用,并申请SSL证书。此处不展开,可参考阿里云SSL证书服务。
七、常见问题排查
- 服务无法启动:查看日志
journalctl -u hermes-agent -f,多数为环境变量未正确设置或数据库连接失败。 - 数据库连接超时:检查数据库安全组是否允许ECS内网IP访问,以及数据库用户是否有远程登录权限。
- 内存不足:Hermes加载大型数据库Schema时可能内存占用较高,可升级ECS规格或调整配置减少预加载表数量。
总结
本文完整演示了在阿里云ECS上部署Hermes Agent的流程,包括环境搭建、依赖安装、配置调整、服务守护及测试方法。通过将自然语言查询代理与云服务器结合,团队可以快速构建内部数据问答工具,降低SQL编写门槛。
如果在使用过程中需要更精细的Agent编排与多数据源管理,阿里云的百炼大模型平台也提供了低代码Agent构建能力,支持对接企业数据库与API,无需自运维算力即可搭建专属数据智能体。