「小龙虾」部署手记:阿里云 ECS + 百炼 Key + QQ 机器人

「小龙虾」部署手记:阿里云 ECS + 百炼 Key + QQ 机器人

小龙虾」在这里指一套群聊 / 私聊 QQ 机器人的示例工程名:用户在 QQ 里发消息,机器人把文本交给阿里云百炼(通义大模型等)生成回复,再把结果发回 QQ。本文记录如何把这类服务稳定跑在阿里云 ECS 上,并正确、安全地使用 百炼 API Key,与 QQ 机器人协议端配合工作。

说明:QQ 机器人生态有多种实现(协议端、框架各不相同),下文以通用架构为主,你只需把「业务服务」换成自己仓库里的进程即可;合规使用请遵守平台协议与当地法规。

1. 架构怎么拆(先想清楚再部署)

典型分层如下:

flowchart LR
  subgraph qq[QQ]
    U[用户消息]
  end
  subgraph ecs[阿里云 ECS]
    P[协议端 / 机器人进程]
    S[业务服务:调用百炼 API]
  end
  subgraph cloud[阿里云]
    B[百炼 DashScope / OpenAI 兼容接口]
  end
  U --> P --> S --> B
  B --> S --> P --> U
组件职责
协议端与 QQ 服务器交互(登录、收消息、发消息)。常见有基于 OneBot 的各类实现,选型依社区与维护情况而定。
业务服务(小龙虾核心)解析消息、拼 Prompt、调用 百炼 HTTP API,再把模型输出交给协议端发送。
百炼提供大模型推理;通过 API Key 鉴权。

部署到 ECS 时,通常是 同一台机器上跑 1~2 个进程(协议端 + 业务服务),或 Docker Compose 编排。

2. 阿里云 ECS:准备运行环境

  1. 选购与系统

    • 选与软件栈匹配的镜像(如 Alibaba Cloud Linux 3Ubuntu 22.04)。
    • 规格按并发与模型调用量估算;纯文字机器人可先小规格验证。
  2. 安全组(必做)

    • SSH 22:仅对你家宽 / 固定 IP 或跳板机开放,避免全网 0.0.0.0/0
    • 若业务服务提供 HTTP 回调 给协议端:只开放必要端口,并尽量配合 内网 / 127.0.0.1(协议端与业务同机则不必对公网暴露业务端口)。
  3. 基础加固

    • 创建非 root 用户、ssh-key 登录;fail2ban 等按需。
    • 系统时间与 NTP 正常,避免鉴权、日志时间错乱。

3. 阿里云百炼:Key 的创建与使用方式

  1. 开通与控制台

    • 在阿里云控制台进入 大模型服务平台百炼(产品名可能随控制台调整,认准 DashScope / 百炼)。
    • 创建 API-KEY,复制后只保存在服务器环境变量或密钥管理中。
  2. 调用形态(概念)

    • 百炼提供 DashScope 原生 APIOpenAI 兼容模式 等;你的业务代码需与所选接口一致(路径、请求体字段名不同)。
    • 官方文档会给出 Base URL模型名(如通义系列)、限流与计费说明,以当时文档为准。
  3. 环境变量(推荐)

在 ECS 上不要把 Key 写进 Git;用 systemd / Docker 注入,例如:

# /etc/xiaolongxia.env(权限 600,仅 root 可读)
DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxx

业务进程启动前 source 该文件,或在 systemd 里用 EnvironmentFile= 引用。

  1. 轮换与泄露处理
    • Key 泄露:立即在控制台作废并新建
    • 日志里禁止打印完整 Key;错误信息脱敏。

4. QQ 机器人:与「小龙虾」业务如何对接

  1. 协议端负责「传话」

    • 用户消息到达后,协议端通过 HTTP / WebSocket / 反向 WebSocket 等机制(取决于你选的软件)把事件推给业务服务。
    • 业务服务返回的文本(或 CQ 码)再由协议端发到 QQ。
  2. 业务服务负责「大脑」

    • 收到纯文本 → 组装 Prompt(可加群号、用户昵称等上下文,注意隐私与合规)→ 调用百炼 → 截取/清洗模型输出 → 返回给协议端。
    • 流式输出若协议端不支持,可在服务端攒够一句再发。
  3. 常见坑

    • 超时:模型耗时长,协议端可能有 ACK 超时,需异步或心跳设计。
    • 长度:QQ 单条消息有上限,需在业务层截断或分条。
    • 频率:百炼与 QQ 侧都有频控,需做简单队列或丢弃策略。

5. 在 ECS 上落地部署(简要步骤)

以下是一种常见顺序,可按实际技术栈替换命令。

  1. 安装运行时(示例:Node / Python / Docker 其一)。
  2. 拉取你的「小龙虾」代码,在服务器上 pnpm install / pip install -r requirements.txt 等。
  3. 配置
    • 写入 .env加入 .gitignore)或仅用 /etc/xiaolongxia.env
    • 填入:DASHSCOPE_API_KEY、模型名、协议端回调地址(若分进程)。
  4. 进程守护
    • systemd:两个单元 xiaolongxia-protocol.servicexiaolongxia-bot.serviceRestart=always
    • pm2 / Docker Compose 一键起。
  5. 验证
    • 本机 curl 百炼接口(用环境变量里的 Key)确认 200。
    • 再在 QQ 发测试消息看全链路。

6. 可选:Nginx 与 HTTPS

若协议端或回调要求 HTTPS,可在 ECS 上 Nginx 反代 + Let’s Encrypt,证书自动续期。仅内网通信则不必对公网暴露业务端口。

7. 清单小结

项目建议
ECS安全组最小放行;SSH 加固;时间与日志可靠。
百炼API Key 仅存环境变量;接口与模型名以官方文档为准;注意配额与费用。
QQ 机器人协议端与业务解耦;注意超时、消息长度与合规。
运维systemd 守护;日志轮转;Key 轮换流程。

按上述方式,你可以把名为「小龙虾」的 QQ 机器人稳定落在阿里云上,用百炼提供对话能力;具体协议端与仓库命令以你所选开源项目文档为准,本文只固定云资源与密钥的用法边界。

Last Updated 4/10/2026, 3:36:26 AM