Skip to content

Commit 9d17152

Browse files
committed
add mydba agent
1 parent efa580a commit 9d17152

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+5553
-0
lines changed

component/mydba/README.md

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
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,加入钉钉群。

component/mydba/config_app.ini

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
[common]
2+
debug = False
3+
config_database = sqlite:///usr/local/mydba/sqlite_app.db
4+
5+
[log]
6+
dir = /usr/local/mydba/logs
7+
name = mydba
8+
file_level = INFO
9+
10+
[model]
11+
api_key =
12+
base_url =
13+
model =
14+
max_tokens = 1000
15+
temperature = 1.0
16+
17+
[app]
18+
refresh_interval = 60
19+
max_steps = 100
20+
# 16字节长度
21+
security_key =
22+
23+
[rag]
24+
api_key =
25+
base_url =
26+
embedding =
27+
data_dir = /usr/local/mydba/vector_store

0 commit comments

Comments
 (0)