README
🚀 使用基于 Google Gemini 的 AI 代理自动化 MSPaint 应用
本项目展示了如何借助 Google Gemini 模型,通过中间件控制协议(MCP)服务器来实现 MSPaint 应用的自动化控制。AI 代理能够接收复杂的数学表达式,逐步完成计算与结果验证,并将最终答案绘制于 MSPaint 之中。
🚀 快速开始
本项目利用 Google Gemini 模型和 MCP 服务器,实现 MSPaint 应用的自动化控制及数学表达式的计算与绘制。以下是启动项目的基本步骤:
- 启动 MCP 服务器:
python mcp_server.py
- 启动 MCP 客户端:
python mcp_client.py
✨ 主要特性
- 自动化控制:借助
pywinauto库实现对 MSPaint 应用的自动化操作。 - 数学运算与验证:提供多种数学运算工具,并能对计算结果进行验证。
- AI 驱动:利用 Google Gemini 模型生成指令,解决数学表达式。
📦 安装指南
步骤 1:创建 Conda 虚拟环境
conda create -n eagenv python=3.11
conda activate eagenv
步骤 2:安装依赖包
pip install -r requirements.txt
步骤 3:配置 Gemini API 密钥
创建一个名为 .env 的文件,并添加以下内容:
GEMINI_API_KEY=your_api_key_here
💻 使用示例
基础用法
MCP 服务器 (mcp_server.py)
from fastmcp import MCPServer
class MSPaintMCP(MCPServer):
def __init__(self):
super().__init__()
self.add_tool(open_paint)
self.add_tool(draw_rectangle)
self.add_tool(add_text_in_paint)
# 添加其他工具...
if __name__ == "__main__":
server = MSPaintMCP()
server.start()
MCP 客户端 (mcp_client.py)
from fastmcp import MCPClient
client = MCPClient('localhost', 5000)
client.send_goal("solve_math_expression", {
'expression': '123 + 456 * 789',
'draw_result': True
})
📚 详细文档
项目架构
MCP 服务器 (mcp_server.py)
- 主要功能:定义与 MSPaint 交互的工具(如
open_paint,draw_rectangle,add_text_in_paint)以及各种数学运算工具(如add,subtract,multiply,divide,verify_calculation,verify_consistency)。 - 技术亮点:
- 使用
pywinauto库实现对 MSPaint 应用的自动化控制。 - 通过
fastmcp库将这些工具暴露给外部客户端。
- 使用
MCP 客户端 (mcp_client.py)
- 主要功能:连接到 MCP 服务器,利用 Google Gemini 模型生成指令并解决数学表达式。
- 实现细节:
- 设置系统提示词以定义 AI 的行为边界和可用工具。
- 解析模型输出以确定调用的工具及其参数。
- 处理工具响应,并将其反馈给模型进行下一步操作。
核心组件
系统提示词(由 mcp_client.py 提供)
系统提示词定义了 AI 的行为边界和可用工具。以下是一个简化示例:
- 定义可调用的工具及其功能。
- 指定数学表达式的求解步骤,包括逐步计算和验证。
可用工具
MSPaint 控制工具
open_paint(): 打开 MSPaint 应用。draw_rectangle(x1, y1, x2, y2): 在指定坐标绘制矩形。add_text_in_paint(text, x, y): 在指定位置添加文本。
数学运算工具
add(a, b): 返回 a 和 b 的和。subtract(a, b): 返回 a 减去 b 的结果。multiply(a, b): 返回 a 乘以 b 的结果。divide(a, b): 返回 a 除以 b 的结果,需处理除零异常。
验证工具
verify_calculation(a, b, expected_result): 验证 a 和 b 的计算是否与预期结果一致。verify_consistency(steps): 确保所有计算步骤的正确性。
项目依赖
- Python 版本:3.11+
- 推荐使用 Conda 管理环境
- 其他依赖:
- pywin32
- pywinauto
- fastmcp
- python-dotenv
- google-genai
- rich
🔧 技术细节
- 自动化控制:使用
pywinauto库实现对 MSPaint 应用的自动化操作,通过模拟用户操作实现应用的启动、绘制等功能。 - AI 交互:通过
fastmcp库将工具暴露给 Google Gemini 模型,模型根据系统提示词生成指令,调用相应工具解决数学表达式。
注意事项
⚠️ 重要提示
- 确保所有工具调用都包含适当的异常处理。
- 根据需要优化图形绘制和数学计算的效率。
贡献指南
欢迎提交问题报告和功能建议,详情请参考项目仓库。
Scan to contact