AI聊天系统

一个基于MCP协议和Gemini技术的智能聊天应用,具备多工具链式执行、文件操作、数学计算、网络搜索和系统监控等功能。

  • by harshitsharma-dev
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 harshitsharma-dev/MCP_Chatbot

使用说明

先进的MCP驱动的人工智能聊天系统

一个智能聊天应用程序,使用MCP(模型上下文协议),具有优化的Gemini工具选择和多工具链接功能。

🚀 此应用程序的功能

这个先进的聊天系统提供了一个AI助手,可以:

  • 智能刀具选择:使用带有智能模式匹配的Google Gemini Flash进行最佳工具选择
  • 多工具连锁:通过上下文传递按顺序执行多个工具
  • 文件操作:通过智能内容生成和精确的文本提取读取、写入、列出、搜索文件
  • 数学计算:基础数学、高级函数、单位转换、统计
  • 网页搜索:搜索、天气、新闻、翻译功能
  • 系统监控:CPU、内存、磁盘使用率、进程监控
  • 上下文感知执行:工具使用以前智能链接工具的结果

🧠 高级功能

优化双子座智能

  • 智能模式匹配:直接检测常见查询(系统信息、天气、文件操作)以减少API调用
  • 智能刀具选择:Gemini Flash分析复杂的查询并选择最佳工具
  • 精确内容提取:正确提取引用文本以进行文件写入操作
  • 增强论证判定:基于模式的提取,在复杂情况下使用Gemini回退
  • 多步骤规划:处理需要多个操作的复杂查询

增强的工具功能

  • 18+工具总数 4个类别(文件系统、计算器、网络搜索、系统)
  • 上下文传递:每个工具都接收以前执行的结果
  • 参数验证:确保数据类型和格式正确
  • 错误恢复:稳健运营的全面后备机制
  • 速率限制:通过智能缓存和模式匹配优化API使用

🛠️ MCP工具可用

1.文件系统工具(5个工具)

  • filesystem_read_file -使用元数据读取文件内容
  • filesystem_write_file -编写带有验证和精确文本提取的内容
  • filesystem_list_directory -列出目录内容及其详细信息
  • filesystem_search_files -按模式搜索文件
  • filesystem_file_info -获取详细的文件信息

2.计算器工具(4个工具)

  • calculator_calculate -基本数学运算
  • calculator_advanced_math -高级函数(sqrt、sin、cos等)
  • calculator_convert_units -单位转换(温度、距离、重量等)
  • calculator_statistics -统计计算(平均值、中位数、标准偏差)

3.网络搜索工具(4个工具)

  • websearch_web_search -一般网络搜索
  • websearch_weather -带有位置检测的天气信息
  • websearch_news -按类别分类的最新新闻,可定制限制
  • websearch_translate -文本翻译

4.系统工具(5个工具)

  • system_system_info -完整的系统信息
  • system_memory_info -内存使用详细信息
  • system_cpu_info -CPU信息和使用情况
  • system_disk_usage -磁盘空间信息
  • system_processes -正在运行的进程列表

📋 安装和设置

先决条件

  • Python 3.8+
  • Google Gemini API密钥(支持优化使用的免费层)

步骤1:克隆存储库

git clone <repository-url>
cd network_science_assignment

步骤2:设置后端

创建并激活Python虚拟环境,然后安装后端依赖项。

PowerShell(Windows):

cd backend
python -m venv venv
venv\Scripts\Activate.ps1
pip install -r requirements.txt
# Create .env file with your Gemini API key
echo "GEMINI_API_KEY=your_gemini_api_key_here" > .env

Bash(Windows上的WSL/macOS/Linux/Git Bash):

cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Create .env file with your Gemini API key
echo "GEMINI_API_KEY=your_gemini_api_key_here" > .env

创建虚拟环境并安装依赖关系后,您还可以创建 .env 从提供的示例中,并填写真实的API密钥:

PowerShell:

cd backend
Copy-Item .env.example .env
# Then edit backend\.env and replace GEMINI_API_KEY with your real key

猛击:

cd backend
cp .env.example .env
# Then edit backend/.env and replace GEMINI_API_KEY with your real key

步骤3:构建并运行应用程序

在启动后端之前,构建前端,以便后端可以为生产React构建提供服务。从项目根运行:

# Install frontend dependencies and build the React app
cd frontend
npm install
npm run build
cd ..

# Start backend (from backend/ directory)
cd backend
python app.py

# The backend will serve the built frontend and API on http://localhost:5000 --> meaning both frontend, backend at 5000, for live updates in frontend use npm start in frontend directory

步骤4:访问应用程序

  • 后端API和内置前端: http://localhost:5000(后端为生成的生产构建提供服务 npm run build)
  • React开发服务器(可选): http://localhost:3000--从以下内容开始 cd frontend && npm start 如果你想要实时重载的React开发体验。请注意,开发服务器与后端是分开的,只在开发过程中需要。

后端和构建的前端将在http://localhost:5000在构建前端之后(cd frontend && npm install && npm run build).

API速率限制

  • 使用Gemini 2.5 Flash进行更好的配额管理
  • 智能模式匹配将API调用减少60-70%
  • 超出配额情况的自动回退机制

💬 对话示例

优化系统查询

用户:“给我系统信息” 人工智能:直接模式检测→ 执行 system_system_info → 提供详细的系统信息 使用的工具:1个具有智能检测功能的工具(没有API调用工具选择)

精确文件写入

用户:“创建一个名为test.txt的文件,写入‘Hello World’” 人工智能:模式检测→ 提取精确引用的文本→ 创建带有“Hello World”的文件 使用的工具: filesystem_write_file 具有精确的内容提取功能

天气查询

用户:“德里的天气” 人工智能:模式检测→ 位置提取→ 气象数据检索 使用的工具: websearch_weather 具有自动位置检测功能

多工具文件操作

用户:“列出当前文件夹中的文件并对其进行汇总” 人工智能:执行 filesystem_list_directory → filesystem_read_file (多个文件)→ 提供全面的总结 使用的工具:4个以上智能链接工具

数学运算

用户:“计算15*23+45,并将结果从华氏度转换为摄氏度” 人工智能:执行 calculator_calculate → calculator_convert_units 使用的工具:带有上下文传递的链式数学运算

🏗️ 项目结构

network_science_assignment/
├── backend/
│   ├── app.py                    # Main Flask server with Gemini integration
│   ├── mcp_client.py            # Advanced MCP client with 18 tools
│   ├── requirements.txt         # Python dependencies
│   ├── .env                     # Environment variables
│   └── mcp_servers/             # Individual MCP server implementations
│       ├── filesystem_server.py
│       ├── calculator_server.py
│       ├── websearch_server.py
│       └── system_server.py
├── frontend/
│   ├── src/                     # React frontend source
│   ├── public/
│   ├── build/                   # Production build output (created by `npm run build`)
│   ├── script.js               # Frontend logic (used in development/build)
│   └── package.json
└── README.md                   # This file

🔄 运作原理

优化流程

  1. 用户查询 → 智能模式匹配 → 直接工具选择 (60%的查询)
  2. 复杂查询 → Gemini闪光分析 → 工具选择
  3. 论据判定 → 多工具执行 → 上下文传递
  4. 结果聚合 → AI响应生成 → 显示

智能功能

  • 智能模式检测:直接识别系统信息、天气、文件操作、数学表达式
  • 精确内容提取:正确处理文件写入操作中的引用文本
  • 查询复杂性分析:确定是否需要单个工具或链接
  • 情境感知:工具使用以前的结果来更好地执行
  • 速率限制优化:通过智能缓存和模式匹配减少API调用
  • 错误恢复:全面的回退机制确保稳健运行

🌐 API终点

  • POST /api/chat -通过智能工具执行发送消息
  • GET /api/tools -列出所有可用的工具和功能
  • GET /api/history -获取聊天记录和工具使用情况
  • POST /api/clear -清除聊天记录
  • GET /api/examples -获取不同场景的示例查询
  • POST /api/analyze -分析查询而不执行
  • GET / -使用系统状态进行健康检查

🔧 技术实现

后端(Python Flask)

  • Gemini集成:使用Google Gemini进行智能决策
  • 高级MCP客户端:管理4个类别的18个工具
  • 上下文管理:维护跨工具链的执行上下文
  • 错误处理:全面的错误恢复和日志记录

前端(React+HTML)

  • 双接口:React和简单的HTML选项
  • 实时更新:实时工具执行反馈
  • 增强型显示器:丰富的工具使用可视化
  • 错误处理:用户友好的错误消息

MCP集成

  • 模拟MCP协议:完全兼容MCP的实施
  • 工具链:上下文感知的多工具执行
  • 智能路由:Gemini电动工具选择
  • 综合录井:详细的执行跟踪

✅ 展示先进能力

智能功能

  • ✅ 优化工具选择:智能模式匹配+Gemini Flash回退
  • ✅ 多工具连锁:每个查询最多4个带有上下文传递的工具
  • ✅ 上下文感知执行:工具智能地使用以前的结果
  • ✅ 精确内容提取:正确处理引用的文本和用户规范
  • ✅ 内容生成:创建具有精确要求的实际HTML/CSS/代码

技术卓越

  • ✅ 18+综合工具:涵盖4个类别的所有主要用例
  • ✅ 速率限制优化:通过智能模式将API调用减少60-70%
  • ✅ 错误恢复:具有全面日志记录的强大回退机制
  • ✅ 性能优化:带智能缓存的Gemini Flash型号
  • ✅ 参数验证:使用Gemini回退增强基于模式的提取

用户体验

  • ✅ 直观的界面:具有React和HTML选项的现代glassmorphism UI
  • ✅ 实时反馈:带有详细日志记录的实时工具执行更新
  • ✅ 丰富的响应:具有智能格式的详细工具使用信息
  • ✅ 查询示例:通过全面的文档指导用户体验

🚨 故障排除

常见问题

超过Gemini API配额

  • 解决方案:系统自动使用智能模式匹配来减少API调用
  • 回退:基于关键字的常用查询工具选择
  • 优化:Gemini Flash模型提供更好的配额效率

工具执行错误

  • 检查文件路径和权限
  • 验证系统资源可用性
  • 查看全面的错误日志以了解具体问题

文件写入问题

  • 确保引用的文本格式正确:“内容准确”
  • 系统自动从报价中提取内容
  • 可用于复杂请求的回退内容生成

JSON解析错误

  • 系统自动清除Gemini响应
  • 增强的回退机制处理格式错误的响应
  • 基于模式的提取减少了对JSON解析的依赖

🔮 高级用例

精确文件创建

"make a file named submission.txt write that 'John is an intern applicant'"
→ Pattern detection extracts exact quoted text
→ Creates file with precise content: "John is an intern applicant"
→ No unnecessary content generation

智能系统查询

"give me system info"
→ Direct pattern detection (no API call)
→ Executes system_system_info tool
→ Returns comprehensive system information

带位置检测的天气

"weather in Tokyo"
→ Pattern detection + location extraction
→ Automatic weather data retrieval
→ Formatted weather information display

多域操作

"Search for AI news, calculate statistics, and save to file"
→ Web search for AI news
→ Statistical analysis of results
→ File creation with formatted report

📊 性能指标

  • 工具执行:每个工具平均0.1-2秒
  • 多工具链:复杂操作需要2-8秒
  • API效率:通过智能模式匹配将API调用减少60-70%
  • 费率限制管理:Gemini Flash型号,具有智能回退功能
  • 错误率:<3%,具有全面的恢复机制
  • 模式检测:60%的查询在没有API调用的情况下处理
  • 内容提取:引用文本提取准确率为95%

网络科学人工智能有限公司的先进MCP实现。 状态:具备完整功能集的生产就绪 联系: contact@networkscience.ai#MCP_聊天机器人