|
| 1 | +# 阿里云数据库 MyDBA 智能体 |
| 2 | + |
| 3 | +## 特性 |
| 4 | + |
| 5 | +1. **支持对阿里云 RDS 进行管理**,包括: |
| 6 | + - 实例信息查询 |
| 7 | + - 问题分析 |
| 8 | + - 购买与变配 |
| 9 | +2. **对自建数据库进行问数**,帮助进行数据查询、统计与分析。 |
| 10 | + |
| 11 | +## 安装指南 |
| 12 | + |
| 13 | +### 环境准备 |
| 14 | + |
| 15 | +1. **安装 `uv`**: |
| 16 | + - [Astral](https://docs.astral.sh/uv/getting-started/installation/) 安装 `uv` |
| 17 | + - [GitHub README](https://github.com/astral-sh/uv#installation) 安装 `uv` |
| 18 | + - [GitHub Release](https://github.com/astral-sh/uv/releases) 下载 `uv` |
| 19 | + |
| 20 | +2. **安装 Python**: |
| 21 | + - 使用以下命令安装 Python: |
| 22 | + |
| 23 | + ```shell |
| 24 | + uv python install 3.12 |
| 25 | + ``` |
| 26 | + |
| 27 | +3. **申请大模型 Key**: |
| 28 | + - 兼容 OpenAI 客户端,支持通义千问、Deepseek。 |
| 29 | + |
| 30 | +4. **准备阿里云账号**: |
| 31 | + - 确保你有阿里云 RDS 服务访问权限(策略名:AliyunRDSFullAccess)的账号凭证。 |
| 32 | + |
| 33 | +### 安装依赖 |
| 34 | + |
| 35 | +使用 `uv` 安装依赖模块: |
| 36 | + |
| 37 | +```shell |
| 38 | +export UV_DEFAULT_INDEX="https://mirrors.aliyun.com/pypi/simple" |
| 39 | +uv sync --inexact |
| 40 | +``` |
| 41 | + |
| 42 | +### 服务初始化 |
| 43 | + |
| 44 | +1. **准备配置文件** |
| 45 | + - 默认路径:`/usr/local/mydba/config_app.ini` |
| 46 | + - 配置好 `model`、`app` 和 `rag` 部分的参数项: |
| 47 | + |
| 48 | + ```ini |
| 49 | + [common] |
| 50 | + debug = False |
| 51 | + config_database = sqlite:///usr/local/mydba/sqlite_app.db |
| 52 | + |
| 53 | + [log] |
| 54 | + dir = /usr/local/mydba/logs |
| 55 | + name = mydba |
| 56 | + file_level = INFO |
| 57 | + |
| 58 | + [model] |
| 59 | + api_key = sk-xxx ; 大模型 key |
| 60 | + base_url = https://api.deepseek.com ; 大模型调用地址(这里是 Deepseek 模型地址) |
| 61 | + model = deepseek-chat ; 模型名称(这里是 Deepseek 模型名称) |
| 62 | + max_tokens = 1000 |
| 63 | + temperature = 1.0 |
| 64 | + |
| 65 | + [app] |
| 66 | + refresh_interval = 60 |
| 67 | + max_steps = 100 |
| 68 | + security_key = xxxxxxxxxxxxxxxx ; 加密 key,固定 16 字节长度,用于工程内部数据保护 |
| 69 | + |
| 70 | + [rag] |
| 71 | + api_key = sk-xxx ; 大模型 key |
| 72 | + base_url = https://dashscope.aliyuncs.com/compatible-mode/v1 ; 大模型调用地址(这里是通义模型地址) |
| 73 | + embedding = text-embedding-v2 ; embedding 模型名称(通义千问支持 embedding 调用) |
| 74 | + data_dir = /usr/local/mydba/vector_store |
| 75 | + ``` |
| 76 | + |
| 77 | +2. **初始化 Agent** |
| 78 | + - 执行以下命令以初始化 Agent。请确保您已经正确配置了 **`config_app.ini`** 文件,并用您的阿里云账号替换 `xxxxxx`。 |
| 79 | + |
| 80 | + ```shell |
| 81 | + uv --directory /path/to/mydba \ |
| 82 | + run init_config.py \ |
| 83 | + init-project \ # 初始化工程 |
| 84 | + --config_file /usr/local/mydba/config_app.ini \ # 配置文件路径 |
| 85 | + --reset \ # 清空已有配置(可选) |
| 86 | + --rds_access_id xxxxxx \ # 替换为您的阿里云账号 ID |
| 87 | + --rds_access_key xxxxxx # 替换为您的阿里云账号密钥 |
| 88 | + ``` |
| 89 | + |
| 90 | +3. **添加自建数据库** |
| 91 | + - 执行以下命令以添加自建数据库。请确保您已正确配置 **`config_app.ini`** 文件,并根据实际情况替换 `--db_info` 参数中的数据库连接信息。 |
| 92 | + |
| 93 | + ```shell |
| 94 | + uv --directory /path/to/mydba \ |
| 95 | + run init_config.py \ |
| 96 | + add-db \ # 添加自建数据库 |
| 97 | + --config_file /usr/local/mydba/config_app.ini \ # 配置文件路径 |
| 98 | + --db_info 'mysql####127.0.0.1##3306##root##123456##utf8mb4##mybase' # 数据库连接信息,注意特殊字符的转义 |
| 99 | + ``` |
| 100 | + |
| 101 | +4. **初始化 RAG 工具** |
| 102 | + - 执行以下命令以初始化 RAG 工具。请确保您已经正确配置了 **`config_app.ini`** 文件,并添加了**自建数据库**。 |
| 103 | + |
| 104 | + ```shell |
| 105 | + uv --directory /path/to/mydba/mydba/mcp/rag \ # 这里是 RAG 的工作目录 ./mydba/mcp/rag |
| 106 | + run rag_init.py \ # 运行 RAG 初始化脚本 |
| 107 | + init-config \ # 初始化配置 |
| 108 | + --config_file /usr/local/mydba/config_app.ini # 配置文件路径 |
| 109 | + ``` |
| 110 | + |
| 111 | +### 服务启动 |
| 112 | + |
| 113 | +- 执行启动命令:**`mydba`** 通过控制台安装的智能体,会在操作系统注册此命令。 |
| 114 | + |
| 115 | + ```shell |
| 116 | + mydba |
| 117 | + ``` |
| 118 | + |
| 119 | +- 或者执行启动脚本:**`mydba.sh`** 智能体自带的启动脚本,如果没有修改默认的安装路径,可直接使用。 |
| 120 | + |
| 121 | + ```shell |
| 122 | + sh /path/to/mydba/shell/mydba.sh |
| 123 | + ``` |
| 124 | + |
| 125 | +- 或者手动执行如下命令: |
| 126 | + |
| 127 | + ```shell |
| 128 | + # 配置环境变量(可选,默认:/usr/local/mydba/config_app.ini) |
| 129 | + export MYDBA_CONFIG_FILE=/path/to/mydba/config_app.ini |
| 130 | + # 启动 RAG Server |
| 131 | + nohup uv --directory /path/to/mydba/mydba/mcp/rag run rag_server.py >> /path/to/mydba/logs/rag.log 2>&1 & |
| 132 | + # 启动 MyDBA |
| 133 | + uv --directory /path/to/mydba run main.py |
| 134 | + ``` |
| 135 | + |
| 136 | +## 联系我们 |
| 137 | + |
| 138 | +- 向上查看 RDS MCP 的 README.md,加入钉钉群。 |
0 commit comments