AI聊天工具集成系统

一个集成了Spring Boot客户端、Python服务器和Angular前端的AI聊天系统,提供股票信息、公司数据、文件操作和员工管理等工具集成功能。

  • by scorpionTaj
  • HTML
  • 本地部署
  • 更新于
在 GitHub 查看 scorpionTaj/mcp-project-spring-python

使用说明

MCP项目-Spring Boot和Python集成

一个全面的模型上下文协议(MCP)实现,具有Spring Boot客户端、Python服务器和Angular前端。该系统展示了基于人工智能的聊天功能,并集成了股票信息、公司数据、文件系统操作和员工管理的工具。

作者:塔杰丁·布勒姆(SDIA大师)

目录

引言

该项目采用多层架构实现了模型上下文协议(MCP):

  • Spring Boot MCP客户端:处理AI聊天请求和工具集成
  • Python MCP服务器:提供各种工具和服务
  • 角形前端:用于用户交互的现代聊天界面
  • Spring Boot MCP服务器:其他企业服务

该系统通过工具使用、内存管理和实时聊天功能演示了人工智能推理。

特性

🤖 AI聊天界面

  • 与AI助手互动聊天
  • 实时思维过程可视化
  • 记忆感知对话
  • 工具集成以增强功能

🛠️ 可用工具

  • 股票信息:实时股票数据检索
  • 公司数据:企业信息查找
  • 文件系统操作:文件管理功能
  • 员工信息:人力资源数据管理

💻 技术特性

  • RESTful API架构
  • CORS启用的跨源请求
  • 跨会话的内存持久性
  • 现代响应式UI设计
  • 错误处理和验证

🎨 前端功能

  • 基于Angular的现代聊天界面
  • 思考与反应分离
  • 快速入门建议问题
  • 加载动画和过渡
  • 移动响应式设计

建筑

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Angular       │    │   Spring Boot   │    │   Python MCP    │
│   Frontend      │◄──►│   MCP Client    │◄──►│   Server        │
│   (Port 4200)   │    │   (Port 8066)   │    │   (Port 8899)   │
└─────────────────┘    └─────────────────┘    └─────────────────┘
                                │
                                ▼
                       ┌─────────────────┐
                       │   Spring Boot   │
                       │   MCP Server    │
                       │   (Port 8080)   │
                       └─────────────────┘

安装

先决条件

  • Java 17 或以后
  • Node.js 18 或以后
  • Python 3.8 或以后
  • 梅文 (或使用附带的包装)
  • Angular命令行界面 (npm install -g @angular/cli)
  • 没有 (用于AI模型服务)-从安装 去.ai

克隆存储库

git clone https://github.com/scorpionTaj/mcp-project-spring-python.git
cd mcp-project-spring-python

快速入门指南

要快速演示,请按顺序执行以下步骤:

1.设置Ollama(AI模型)

# Install and start Ollama
ollama serve

# In a new terminal, pull the required model
ollama pull qwen3

2.启动Python MCP服务器

cd mcp-server-python
# Activate the existing virtual environment
.venv\Scripts\activate  # On Windows
# source .venv/bin/activate  # On macOS/Linux

# Install dependencies if needed
pip install -r requirements.txt
python server.py

3.启动Spring Boot MCP客户端

cd mcp-client
./mvnw spring-boot:run

4.启动Spring Boot MCP服务器(可选)

cd mcp-server
./mvnw spring-boot:run

5.启动Angular前端

cd mcp-frontend
npm install
ng serve

验证

所有服务运行后,您应该看到:

  • ✅ Python MCP服务器: http://localhost:8899
  • ✅ Spring Boot MCP客户端: http://localhost:8066
  • ✅ 角前端: http://localhost:4200
  • ✅ Olama人工智能模型: http://localhost:10000

用法

访问应用程序

  1. 前端接口: http://localhost:4200
  2. 后端API: http://localhost:8066
  3. Swagger用户界面: http://localhost:8066/swagger-ui.html(如果可用)

基本聊天流程

  1. 打开前端http://localhost:4200
  2. 使用建议的问题或键入自己的问题
  3. 观察AI的思维过程和反应
  4. 探索各种工具和功能

查询示例

  • "Hello, how are you?" -基本问候语
  • "What companies do you know about?" -公司信息
  • "Tell me about Apple stock" -股票信息
  • "List all employees" -员工数据
  • "What files are available?" -文件系统操作

使用的技术

后端

  • 弹簧靴3.x -主要框架
  • 春季AI -AI集成
  • Spring数据JPA -数据库操作
  • H2数据库 -内存数据库
  • 梅文 -构建工具
  • Java 17+ -程序设计语言

前端

  • 角度20.x -前端框架
  • TypeScript -类型安全的JavaScript
  • RxJS -响应式编程
  • CSS3 -现代风格
  • HTML5 -标记

Python服务器

  • Python 3.x -程序设计语言
  • 固定API/瓶子 -Web框架(假定)
  • MCP-SDK -模型上下文协议

项目结构

mcp-project-spring-python/
├── mcp-client/                 # Spring Boot MCP Client
│   ├── src/main/java/
│   │   └── ma/tajeddine/mcpclient/
│   │       ├── agents/         # AI agents
│   │       └── controllers/    # REST controllers
│   ├── src/main/resources/
│   │   ├── application.properties
│   │   └── mcp-servers.json
│   └── pom.xml
├── mcp-server/                 # Spring Boot MCP Server
│   ├── src/main/java/
│   └── pom.xml
├── mcp-server-python/          # Python MCP Server
│   ├── server.py
│   ├── main.py
│   └── pyproject.toml
├── mcp-frontend/               # Angular Frontend
│   ├── src/app/
│   │   ├── app.component.ts
│   │   ├── app.component.html
│   │   └── app.component.css
│   ├── package.json
│   └── angular.json
├── Screenshots/                # Project screenshots
└── README.md

开发设置

配置文件

应用程序属性(Spring Boot)

  • 端口: 8066
  • MCP服务器URL: http://localhost:8899
  • 数据库:内存中的H2
  • AI模型:Qwen3途经Ollama

角度配置

  • 开发港口: 4200
  • API基本URL: http://localhost:8066
  • CORS:促进发展

环境变量

# Optional: Set API keys if using external services
export CLAUDE_API_KEY=your_api_key_here
export OLLAMA_BASE_URL=http://localhost:10000

API终点

主聊天端点

  • 获取 /chat?query={message} -向AI发送聊天消息

工具端点(通过MCP服务器)

  • 股票信息工具
  • 公司数据检索
  • 文件系统操作
  • 员工管理

配置

关键配置文件

mcp-servers.json

MCP服务器连接的配置文件:

{
  "servers": {
    "server1": {
      "url": "http://localhost:8899",
      "sse-endpoint": "/sse"
    }
  }
}

application.properties

关键配置参数:

# Server Configuration
server.port=8066

# MCP Client Configuration
spring.ai.mcp.client.type=sync
spring.ai.mcp.client.sse.connections.server1.url=http://localhost:8899
spring.ai.mcp.client.sse.connections.server1.sse-endpoint=/sse

# AI Model Configuration
spring.ai.ollama.base-url=http://localhost:10000
spring.ai.ollama.chat.model=qwen3

# Database Configuration
spring.datasource.url=jdbc:h2:mem:testdb
spring.h2.console.enabled=true

性能与监控

系统要求

  • 记忆:最低4GB RAM,建议8GB
  • 中央处理器:建议使用多核处理器
  • 存储:2GB可用空间用于模型和依赖项
  • 网络:初始设置时稳定的互联网连接

性能指标

  • 启动时间:所有服务约2-3分钟
  • 响应时间:典型查询<2秒
  • 内存使用:所有服务总计约2GB RAM
  • 吞吐量:支持约10个并发请求

健康检查

监控服务运行状况:

  • 弹簧靴执行器: http://localhost:8066/actuator/health
  • Angular开发服务器: http://localhost:4200
  • Python MCP服务器:检查控制台输出“服务器监听端口8899”

故障排除

常见问题

端口冲突

# Check if ports are in use
netstat -an | findstr "4200 8066 8899 10000"

# Kill processes using specific ports (Windows)
taskkill /F /PID <process_id>

Java版本问题

# Check Java version
java -version

# Should show Java 17 or later
# If not, update JAVA_HOME environment variable

Node.js版本问题

# Check Node.js version
node --version

# Should show v18.x or later
# Update Node.js if needed

Ollama没有回应

# Check if Ollama is running
ollama list

# Restart Ollama service
ollama serve

# Pull the required model
ollama pull qwen3

Python虚拟环境问题

# On Windows
cd mcp-server-python
.venv\Scripts\activate

# On macOS/Linux
cd mcp-server-python
source .venv/bin/activate

# Reinstall dependencies
pip install -r requirements.txt

CORS 问题

如果遇到CORS错误:

  1. 确保Spring Boot MCP客户端在端口8066上运行
  2. 检查一下 @CrossOrigin(origins = "http://localhost:4200") 已正确配置
  3. 重新启动Spring Boot应用程序

调试模式

启用调试登录 application.properties:

logging.level.ma.tajeddine.mcpclient=DEBUG
logging.level.org.springframework.ai=DEBUG

常见问题解答

一般问题

Q: 我可以使用不同的AI模型吗? A: 是,修改 application.properties 使用不同Ollama模型的文件:

spring.ai.ollama.chat.model=llama2
# or
spring.ai.ollama.chat.model=mistral

Q: 如何向MCP服务器添加新工具? A: 通过以下方式扩展Python MCP服务器:

  1. 在中添加新的工具定义 server.py
  2. 在单独的模块中实现工具逻辑
  3. 在MCP服务器上注册工具

Q: 我可以将其部署到生产环境中吗? A: 是的,但请考虑:

  • 使用外部数据库而不是H2
  • 配置适当的安全性(身份验证、授权)
  • 设置反向代理(nginx、Apache)
  • 使用环境变量进行敏感配置

Q: 如何备份聊天记录? A: 目前,聊天记录存储在内存中。为了坚持:

  • 在Spring Boot客户端中实现数据库存储
  • 添加对话历史记录端点
  • 考虑使用Redis进行会话存储

技术问题

Q: 为什么AI的反应很慢? A: 可能的原因:

  • Ollama模型加载时间(首次请求)
  • MCP服务器的网络延迟
  • 复杂的工具操作
  • 系统资源不足

Q: 如何自定义前端UI? A: 修改角度组件:

  • src/app/app.html -模板结构
  • src/app/app.css -造型
  • src/app/app.ts -组件逻辑

Q: 我可以与Claude或GPT而不是Ollama集成吗? A: 是,取消注释并在中配置 application.properties:

spring.ai.anthropic.api-key=${CLAUDE_API_KEY}
spring.ai.anthropic.chat.options.model=claude-sonnet-4-20250514

演示

快速演示步骤

  1. 按照《快速入门指南》启动所有服务
  2. 打开http://localhost:4200
  3. 尝试以下示例查询:
    • “你好,你叫什么名字?”
    • “列出所有公司”
    • “跟我说说苹果”
    • “您可以访问哪些文件?”
    • “记住我的名字是约翰”

截图

本节通过视觉演示展示了MCP项目的各种特征和功能。

🖥️ 前端接口

聊天界面测试

Angular前端聊天界面,展示现代UI设计和聊天功能

文件系统访问

前端通过MCP Python服务器演示文件系统操作

使用MCP工具集成列出项目文件

🧠 AI记忆与对话

内存功能

AI在对话中记住用户信息

AI成功从内存中检索存储的用户名

🔧 后端和控制台

MCP客户端控制台

Spring Boot MCP客户端控制台显示系统日志和操作

Python MCP服务器测试

Python MCP服务器运行和处理请求

🏢 公司和股票信息

公司数据检索

苹果公司信息的示例响应

摩洛哥电信公司信息的示例响应

显示系统中所有可用公司的响应

📊 使用Swagger UI进行API测试

公司端点

Swagger UI显示公司列表端点

Swagger UI公司端点详细视图

内存查询

通过Swagger UI测试内存功能

Swagger UI查询演示

Swagger UI查询结果

🧪 API Postman测试

公司运营

邮递员正在测试GetAllCompany端点

邮递员正在测试GetCompanyByName端点

股票信息

邮递员按公司测试库存信息检索

🎯 演示的主要功能

截图显示:

  1. 前端功能:

    • 现代聊天界面
    • 实时AI交互
    • 文件系统集成
    • 响应式设计
  2. 后端集成:

    • MCP客户端-服务器通信
    • Python MCP服务器操作
    • 控制台日志记录和监控
  3. AI记忆系统:

    • 对话持久性
    • 用户信息召回
    • 上下文感知响应
  4. 工具集成:

    • 公司信息查询
    • 库存数据检索
    • 文件系统操作
    • 内存管理
  5. API测试:

    • Swagger用户界面文档
    • 邮递员终点测试
    • RESTful API验证
  6. 多语言支持:

    • Java Spring Boot服务
    • Python MCP服务器
    • 角前端
    • 跨平台兼容性

这些屏幕截图展示了MCP项目的全部功能,从面向用户的聊天界面到后端API操作,展示了不同组件和AI供电功能之间的无缝集成。

路线图

计划的功能

  • []支持WebSocket的实时聊天
  • []用户身份验证和授权
  • []对话历史持久性
  • []其他工具集成
  • []Docker容器化
  • []Kubernetes部署清单
  • []集成测试
  • []性能基准

贡献想法

  • 添加新的MCP工具(天气、新闻等)
  • 改进UI/UX设计
  • 添加语音聊天功能
  • 实施聊天室/频道
  • 添加导出/导入功能

⭐ 如果您觉得此存储库有用,请将其标记为星号!

由以下材料制成❤️ 塔杰丁·布海姆-SDIA大师