|
| 1 | +# 钉钉机器人接入 RDS AI 助手 |
| 2 | + |
| 3 | +本目录为 **RDS AI 助手专业版** 钉钉机器人接入的示例代码,支持在钉钉 APP 内通过与机器人对话的方式,使用 RDS AI 助手进行 RDS 实例的智能管理与运维。 |
| 4 | + |
| 5 | +> **重要**:仅 RDS AI 助手专业版支持钉钉机器人接入,配置前请先购买 [阿里云 RDS AI 助手专业版](https://help.aliyun.com/zh/rds/)。 |
| 6 | +
|
| 7 | +## 流程概述 |
| 8 | + |
| 9 | +1. **创建并配置钉钉机器人**:在钉钉开放平台创建应用与机器人,完成权限配置与应用发布。 |
| 10 | +2. **配置服务端环境并启动服务**:安装依赖、配置环境变量并运行本示例。 |
| 11 | +3. **在钉钉内使用**:在群组或单聊中与机器人对话使用 RDS AI 助手。 |
| 12 | + |
| 13 | +--- |
| 14 | + |
| 15 | +## 一、创建、配置与发布钉钉机器人 |
| 16 | + |
| 17 | +### 1. 创建应用 |
| 18 | + |
| 19 | +1. 登录 [钉钉开放平台](https://open.dingtalk.com/),右上角进入 **开发者后台**。 |
| 20 | +2. 在 **应用开发 > 钉钉应用** 中点击 **创建应用**。 |
| 21 | +3. 填写应用名称、应用描述与应用图标(可选),点击 **确定** 创建。 |
| 22 | + |
| 23 | +### 2. 添加并配置机器人 |
| 24 | + |
| 25 | +1. 应用创建完成后,点击 **添加机器人**。 |
| 26 | +2. 在机器人配置页填写:机器人名称、机器人图标、简介、功能描述。 |
| 27 | +3. **消息接收模式** 选择 **Stream 模式**,然后点击 **发布**。 |
| 28 | + |
| 29 | +### 3. 配置权限 |
| 30 | + |
| 31 | +在左侧 **权限管理** 中为应用申请以下权限并 **立即开通**: |
| 32 | + |
| 33 | +- **企业内机器人发送消息权限** |
| 34 | +- **互动卡片实例写权限** |
| 35 | +- **AI 卡片流式更新权限** |
| 36 | + |
| 37 | +### 4. 发布应用版本 |
| 38 | + |
| 39 | +1. 在左侧 **版本管理与发布** 中点击 **创建新版本**。 |
| 40 | +2. 填写版本描述,选择应用可用范围,点击 **直接发布**。 |
| 41 | +3. 发布完成后版本状态为 **已上线**。 |
| 42 | + |
| 43 | +--- |
| 44 | + |
| 45 | +## 二、配置服务端环境 |
| 46 | + |
| 47 | +### 1. 安装依赖 |
| 48 | + |
| 49 | +在项目根目录下执行: |
| 50 | + |
| 51 | +```bash |
| 52 | +cd "ecological integration/dingtalk" |
| 53 | +python3 -m venv venv |
| 54 | +source venv/bin/activate # Windows: venv\Scripts\activate |
| 55 | +pip install -r requirements.txt |
| 56 | +``` |
| 57 | + |
| 58 | +### 2. 环境变量 |
| 59 | + |
| 60 | +启动前需配置以下环境变量。 |
| 61 | + |
| 62 | +| 变量名 | 说明 | 获取方式 | |
| 63 | +|--------|------|----------| |
| 64 | +| `ACCESS_KEY_ID` | 阿里云 AccessKey ID | [阿里云控制台](https://www.aliyun.com/) → 创建/使用已有 AccessKey,建议使用 RAM 用户以降低主账号风险 | |
| 65 | +| `ACCESS_SECRET` | 阿里云 AccessKey Secret | 同上,创建时仅显示一次,请妥善保管 | |
| 66 | +| `DINGTALK_APP_CLIENT_ID` | 钉钉应用 Client ID | [钉钉开放平台](https://open.dingtalk.com/) → 进入应用 → **基础信息** → 凭证与基础信息 | |
| 67 | +| `DINGTALK_APP_CLIENT_SECRET` | 钉钉应用 Client Secret | 同上 | |
| 68 | + |
| 69 | +配置示例(Linux/macOS): |
| 70 | + |
| 71 | +```bash |
| 72 | +export ACCESS_KEY_ID="your_aliyun_access_key_id" |
| 73 | +export ACCESS_SECRET="your_aliyun_access_key_secret" |
| 74 | +export DINGTALK_APP_CLIENT_ID="your_dingtalk_client_id" |
| 75 | +export DINGTALK_APP_CLIENT_SECRET="your_dingtalk_client_secret" |
| 76 | +``` |
| 77 | + |
| 78 | +也可通过命令行参数传入钉钉凭证(会覆盖环境变量): |
| 79 | + |
| 80 | +```bash |
| 81 | +python main.py --client_id="your_dingtalk_client_id" --client_secret="your_dingtalk_client_secret" |
| 82 | +``` |
| 83 | + |
| 84 | +### 3. 启动服务 |
| 85 | + |
| 86 | +```bash |
| 87 | +python main.py |
| 88 | +``` |
| 89 | + |
| 90 | +服务启动后,钉钉侧消息会转发到本示例,并调用 RDS AI 助手接口进行对话与卡片流式更新。 |
| 91 | + |
| 92 | +--- |
| 93 | + |
| 94 | +## 三、在钉钉内使用 RDS AI 助手 |
| 95 | + |
| 96 | +### 群组内使用 |
| 97 | + |
| 98 | +1. 在钉钉 APP 中进入目标群组 → **群设置** → **机器人** → **添加机器人**。 |
| 99 | +2. 搜索并添加你在第一步创建的机器人。 |
| 100 | +3. 在群里 **@ 机器人名称** 后输入问题即可对话。 |
| 101 | + |
| 102 | +### 单聊使用 |
| 103 | + |
| 104 | +1. 在钉钉 APP 顶部搜索框中输入该机器人名称,进入聊天界面。 |
| 105 | +2. 直接输入问题并发送即可。 |
| 106 | + |
| 107 | +--- |
| 108 | + |
| 109 | +## 项目结构 |
| 110 | + |
| 111 | +| 文件 | 说明 | |
| 112 | +|------|------| |
| 113 | +| `main.py` | 钉钉 Stream 模式消息接收与转发、卡片流式更新、与 RDS Copilot 的调用封装 | |
| 114 | +| `rds_copilot.py` | RDS AI 助手(Copilot)OpenAPI 客户端,封装对话、工具调用与文档事件等 | |
| 115 | +| `requirements.txt` | Python 依赖(dingtalk-stream、dashscope、阿里云 OpenAPI SDK 等) | |
| 116 | + |
| 117 | +--- |
| 118 | + |
| 119 | +## 参考文档 |
| 120 | + |
| 121 | +- [钉钉机器人接入 RDS AI 助手 - 阿里云帮助中心](https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/integrate-rds-copilot-into-a-dingtalk-bot) |
| 122 | +- [钉钉开放平台](https://open.dingtalk.com/) |
| 123 | +- [创建 AccessKey](https://help.aliyun.com/zh/ram/user-guide/create-an-accesskey-pair) |
0 commit comments