66 lines
1.9 KiB
Python
66 lines
1.9 KiB
Python
# run_qwen_mysql_agent.py
|
||
import os
|
||
from qwen_agent.agents import Assistant
|
||
from qwen_agent.utils.output_beautify import typewriter_print
|
||
|
||
# 1. 选定 LLM(示例用 DashScope 云端,替换为你自己的即可)
|
||
llm_cfg = {
|
||
'model': 'qwen3-8b',
|
||
|
||
# Use the endpoint provided by Alibaba Model Studio:
|
||
# 'model_type': 'qwen_dashscope',
|
||
# 'api_key': os.getenv('DASHSCOPE_API_KEY'),
|
||
|
||
# Use a custom endpoint compatible with OpenAI API:
|
||
'model_server': 'https://dashscope.aliyuncs.com/compatible-mode/v1', # api_base
|
||
'api_key': 'sk-5d90a63c1e784e8f801dee65add68867',
|
||
|
||
# Other parameters:
|
||
# 'generate_cfg': {
|
||
# # Add: When the response content is `<think>this is the thought</think>this is the answer;
|
||
# # Do not add: When the response has been separated by reasoning_content and content.
|
||
# 'thought_in_content': True,
|
||
# },
|
||
}
|
||
|
||
# 2. 描述可用工具 —— 这里挂载刚启动的 MySQL‑MCP Server
|
||
tools = [{
|
||
"mcpServers": {
|
||
"mysql": {
|
||
"command": "uv",
|
||
"args": [
|
||
"--directory",
|
||
"/home/ubuntu/.mcp",
|
||
"run",
|
||
"mysql_mcp_server"
|
||
],
|
||
"env": {
|
||
"MYSQL_HOST": "localhost",
|
||
"MYSQL_PORT": "23306",
|
||
"MYSQL_USER": "mcpuser",
|
||
"MYSQL_PASSWORD": "StrongPass123!",
|
||
"MYSQL_DATABASE": "magentodb"
|
||
}
|
||
}
|
||
}
|
||
}]
|
||
|
||
|
||
# 3. 创建智能体
|
||
bot = Assistant(
|
||
llm=llm_cfg,
|
||
function_list=tools,
|
||
)
|
||
|
||
# 4. 运行示例 —— 用自然语言问数据库
|
||
messages = [{
|
||
"role": "user",
|
||
"content": "数据库里 catalog_product_entity_varchar 表有多少条记录?同时请展示前 5 行。"
|
||
}]
|
||
|
||
response_plain_text = ''
|
||
for responses in bot.run(messages=messages, stream=True):
|
||
# stream=True 将逐步打印 LLM 思考与结果
|
||
response_plain_text = typewriter_print(responses, response_plain_text)
|
||
print(responses[-1]["content"])
|