AI助手应用

一款基于Streamlit和Google Gemini的AI助手应用,提供数学运算、代码生成等功能,支持异步处理和Docker部署。

  • by Ujjwal5200
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Ujjwal5200/MCP-server-project-jenkins-

使用说明

NEXUS AI

一个功能强大的人工智能助手应用程序,由Streamlit、LangGraph和Google Gemini构建,具有MCP(模型上下文协议)服务器,为数学运算和代码生成提供专用工具。这个项目是使用Jenkins和GitHub CI/CD构建和管理的,用于自动化测试、构建和部署。

🚀 特性

  • 交互式聊天界面:用户友好的基于Streamlit的聊天应用程序,用于自然语言交互
  • MCP服务器集成:定制MCP服务器,配备增强AI功能的专用工具
  • 数学运算:用于加法、减法、乘法和除法的内置工具
  • 代码生成:由Google Gemini提供支持的高级Python和web开发代码生成
  • LangGraph工作流:使用LangGraph协调AI模型调用和工具执行
  • 谷歌Gemini集成:利用Gemini 2.5 Flash Lite实现高质量的AI响应
  • 异步处理:使用asyncio高效处理并发操作
  • 可自定义主题:带有未来主义UI动画的深色和浅色主题
  • Docker支持:容器化部署,易于扩展
  • CI/CD管道:通过Jenkins和GitHub Actions自动构建和部署
  • AWS主机:部署在Amazon Web Services上,以实现可扩展和可靠的云基础设施

🏗️ 建筑

MCP AI Assistant遵循模块化、微服务启发的架构,旨在实现可扩展性、可维护性和无缝的AI集成。该系统采用分层方法,将用户界面、业务逻辑编排和外部服务集成之间的关注点分开。

系统概述

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   Streamlit UI  │◄──►│  LangGraph       │◄──►│   MCP Server    │
│   (Frontend)    │    │  Orchestrator    │    │   (Tools)       │
└─────────────────┘    └──────────────────┘    └─────────────────┘
         │                       │                       │
         └───────────────────────┼───────────────────────┘
                                 ▼
                    ┌─────────────────────┐
                    │  Google Gemini AI   │
                    │     (LLM Model)     │
                    └─────────────────────┘

核心组件

1.流线型前端(app.py)

  • 角色:用户界面和交互管理
  • 特性:
    • 响应式聊天界面,支持深色/浅色主题
    • 异步处理的实时消息处理
    • 自定义CSS动画和粒子效果,以增强用户体验
    • 会话状态管理实现会话持久化
    • 移动优先的响应式设计,具有自适应布局

2.LangGraph编排器(client_langraph.py)

  • 角色:工作流引擎和AI模型协调
  • 特性:
    • 基于图的复杂会话流状态管理
    • 直接AI响应和工具执行之间的条件路由
    • 使用asyncio进行异步处理以实现并发操作
    • 工具绑定和执行编排
    • 用于稳健操作的错误处理和重试逻辑

3.MCP服务器(MCP_server.py)

  • 角色:使用模型上下文协议的专业工具提供商
  • 可用工具:
    • 数学运算: add, subtract, multiply, divide -精确的算术计算
    • 代码生成: code_generation python webcode_generation (HTML/CSS/JS)-人工智能驱动的代码创建,带有注释和导入
    • 通用查询: normal_query -非专业对话的回退
  • 特性:
    • FastMCP框架,实现高效工具执行
    • 输入验证和错误处理
    • 异步工具处理以提高性能

4.谷歌双子座集成

  • 角色:大型语言模型后端
  • 配置:
    • Gemini 2.5 Flash Lite型号可实现最佳性能/成本平衡
    • 可配置的温度、令牌限制和重试机制
    • 通过环境变量实现安全的API密钥管理

数据流

  1. 用户输入 → Streamlit UI捕获并显示消息
  2. 处理 → LangGraph评估上下文并确定工具需求
  3. 工具执行 → MCP服务器在需要时提供专门的功能
  4. AI响应 → Google Gemini生成上下文响应
  5. 输出 → 结果通过LangGraph流回到Streamlit进行显示

CI/CD和部署概述

┌─────────────┐     ┌─────────────┐     ┌─────────────────┐     ┌─────────────┐
│   GitHub    │────►│   Jenkins   │────►│  Docker Registry │────►│     AWS     │
│ Repository  │     │   Pipeline  │     │                 │     │ Deployment  │
└─────────────┘     └─────────────┘     └─────────────────┘     └─────────────┘
       ▲                   │                       │                       │
       │                   ▼                       ▼                       ▼
       └─────────── Test Results ────────── Build Artifacts ──────── Production ───────

部署架构

  • 容器化:基于Docker的部署,用于跨开发、测试和生产的一致环境
  • CI/CD管道:
    • 詹金斯:使用GitHub上的自动触发器协调整个CI/CD流程
    • GitHub集成Webhooks在代码推送和拉取请求时触发Jenkins管道
    • 自动化测试:单元测试、集成测试和安全扫描在隔离的容器中运行
    • 构建过程:Docker镜像被构建、标记并推送到安全注册表
    • 部署:通过蓝绿色部署策略自动部署到AWS
  • AWS基础架构:
    • ECS/ECR:用于可扩展容器管理的容器编排和注册表
    • 负载平衡:应用程序负载平衡器在多个实例之间分配流量
    • 自动缩放:EC2自动扩展组确保高可用性和成本优化
    • 关系型数据库服务:用于数据持久性的托管数据库服务(如果需要)
    • 云监控:监控和记录性能指标和警报
    • 垂直路径计算机:使用适当的安全组和子网进行安全的网络隔离
  • 环境管理:使用AWS Systems Manager参数存储和 .env 文件
  • 安全:IAM角色、加密机密以及符合AWS安全最佳实践

📋 先决条件

  • Python 3.8+
  • Docker(可选,用于容器化部署)
  • Google Gemini API密钥

🛠️ 安装

  1. 克隆存储库:

    git clone <repository-url>
    cd MCP_STREAMLIT
    
  2. 创建虚拟环境:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    

⚙️ 设置

  1. 环境变量: 创建一个 .env 根目录中的文件:

    google_api_key=your_google_gemini_api_key_here
    
  2. API密钥设置:

    • 从获取Google Gemini API密钥 谷歌AI工作室
    • 将密钥添加到您的 .env 文件

🚀 用法

运行Streamlit应用程序

streamlit run app.py

这将在以下位置启动web应用程序 http://localhost:8501.

直接使用MCP服务器

python MCP_server.py

使用客户端脚本进行测试

python client_langraph.py

Docker部署

使用Docker构建并运行应用程序:

docker build -t mcp-ai-assistant .
docker run -p 8501:8501 --env-file .env mcp-ai-assistant

🔄 CI/CD管道

该项目利用与GitHub集成的Jenkins进行持续集成和部署:

  • 自动化测试:Jenkins在每次向主分支推送时都会运行单元测试和集成测试
  • 构建过程:Docker镜像被构建并推送到容器注册表
  • 部署:自动部署到暂存和生产环境
  • 监控:通过Jenkins仪表板监控管道状态和日志

要设置CI/CD管道,请执行以下操作:

  1. 使用GitHub webhooks配置Jenkins以自动触发
  2. 在Jenkins中设置必要的凭据和环境变量
  3. 使用提供的Jenkins文件进行管道配置

💡 例子

数学运算

  • “15+27是什么?”
  • “计算100除以5”
  • “8乘以9”

代码生成

  • “生成一个Python函数来对列表进行排序”
  • “为博客创建Flask web应用程序”
  • “为响应式导航栏编写HTML和CSS”

通用查询

  • “解释递归在编程中的工作原理”
  • “使用虚拟环境有什么好处?”

📦 依赖项

  • streamlit:Web应用程序框架
  • langchain-google-genai:谷歌Gemini集成
  • langchain-mcp-adapters:MCP客户端适配器
  • langgraph:工作流编排
  • python-dotenv:环境变量管理
  • mcp:模型上下文协议库
  • nest-asyncio:异步兼容性。

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

  • Google Gemini支持人工智能功能
  • 用于编排的LangChain和LangGraph
  • 用于web界面的Streamlit
  • 协议规范的MCP社区
  • Jenkins和GitHub用于CI/CD基础架构

📞 支持

如果您遇到任何问题或有疑问,请在GitHub存储库上打开问题。