员工流失预测AI系统

一个基于机器学习和智能代理的AI系统,用于预测员工流失并提供自然语言解释。

  • by alichr
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 alichr/mcp-server

使用说明

MCP代理人工智能系统

一个全面的人工智能系统,使用机器学习模型和智能代理预测员工流失。该系统结合了基于FastAPI的机器学习服务、MCP(模型上下文协议)工具和BeeAI框架代理,以提供具有自然语言解释的智能流失预测。

🏗️ 建筑

该系统由三个主要部分组成:

  1. ML API服务器 (mlapi/)-使用经过训练的随机森林模型的FastAPI服务
  2. MCP服务器 (employee/)-将ML预测作为工具公开的模型上下文协议服务器
  3. AI 代理 (singleflowagent.py)-BeeAI框架代理,负责协调预测并提供解释

📁 项目结构

MCP-server/
├── mlapi/                          # ML API Server
│   ├── mlapi.py                   # FastAPI application with churn prediction endpoint
│   ├── requirements.txt           # Python dependencies for ML service
│   └── rfmodel.pkl               # Trained Random Forest model
├── employee/                       # MCP Server & Agent Environment
│   ├── server.py                 # MCP server exposing PredictChurn tool
│   ├── singleflowagent.py        # BeeAI agent implementation
│   ├── pyproject.toml            # Project dependencies (BeeAI, MCP, etc.)
│   ├── uv.lock                   # Dependency lock file
│   └── README.md                 # Employee module documentation
├── singleflowagent.py            # Main agent script (root level)
└── README.md                     # This file

🚀 特性

  • 机器学习预测:为员工流失预测训练的随机森林模型
  • MCP集成:通过模型上下文协议将ML功能作为工具公开
  • AI 代理:使用机器学习预测并提供自然语言解释的智能代理
  • RESTful API:基于FastAPI的ML服务,具有JSON端点
  • 异步处理:完全异步的代理工作流
  • 错误处理:强大的错误处理和优雅的回退

🛠️ 设置和安装

先决条件

  • Python 3.13+
  • Ollama(用于LLM功能)
  • UV包管理器

1.ML API服务器设置

# Install ML dependencies
cd mlapi
pip install -r requirements.txt

# Start the ML API server
uvicorn mlapi:app --reload

API将在 http://localhost:8000

2.MCP服务器和代理设置

# Navigate to employee directory
cd employee

# Install dependencies using UV
uv sync

# Activate virtual environment
source .venv/bin/activate

3.Ollama设置

# Install and start Ollama
ollama serve

# Pull the required model
ollama pull granite3.1-dense:8b

🎯 用法

运行完整系统

  1. 启动ML API服务器 (1号航站楼):
cd mlapi
uvicorn mlapi:app --reload
  1. 启动MCP服务器 (2号航站楼):
cd employee
source .venv/bin/activate
uv run mcp run server.py
  1. 运行AI代理 (3号航站楼):
source employee/.venv/bin/activate
python singleflowagent.py

API终点

ML API-Churn预测

POST http://localhost:8000
Content-Type: application/json

{
  "YearsAtCompany": 3.5,
  "EmployeeSatisfaction": 0.85,
  "Position": "Manager",
  "Salary": 4
}

答复:

{
  "prediction": 1
}

MCP工具

MCP服务器公开了以下工具:

  • 预测客户流失:根据员工属性预测员工流失

🤖 AI代理功能

BeeAI代理提供:

  • 智能分析:将ML预测与领域知识相结合
  • 自然语言解释:为预测提供详细的推理
  • 工具集成:无缝使用MCP工具进行机器学习预测
  • 错误处理:服务不可用时的优雅回退
  • 流媒体响应:实时处理和响应生成

代理交互示例

输入:

employee_sample = {
    "YearsAtCompany": 1,
    "EmployeeSatisfaction": 0.01,
    "Position": "Non-Manager",
    "Salary": 2.0
}

代理响应:

“根据提供的数据,该员工流失的可能性很低。该员工在公司只工作了一年,这通常是离职率较高的时候。然而,他们的员工满意度得分很高,为0.01,表明他们非常满意。此外,他们担任非管理职位,工资高于平均水平(2.0)。这些因素表明,员工可能对目前的角色和薪酬感到满意,从而降低了流失的风险。”

🔧 配置

模型参数

系统使用以下员工属性进行预测:

  • 公司年份:浮动-工作年限
  • 员工满意度:浮动(0.0-1.0)-满意度得分
  • 位置:String-“管理者”或“非管理者”
  • 薪水:整数(1-5)-普通薪级表

代理配置

代理配置了:

  • 模型: ollama:granite3.1-dense:8b
  • 最大迭代次数: 3
  • 流媒体:已启用
  • 工具:MCP预测转换工具

🛡️ 错误处理

该系统包括全面的错误处理:

  • ML API不可用:代理人回归法学硕士知识
  • MCP工具故障:优雅的错误处理和重试逻辑
  • LLM错误:正确的错误传播和记录
  • 网络问题:超时处理和连接重试

📊 使用的技术

ML API

  • 快速 API:Web框架
  • 熊猫:数据操作
  • Scikit学习:机器学习
  • 派丹蒂克:数据验证
  • 泡菜:模型序列化

MCP服务器

  • FastMCP:MCP服务器框架
  • 请求::HTTP客户端
  • 对象符号:数据序列化

AI 代理

  • BeeAI框架:代理编排
  • 没有:本地法学硕士
  • MCP客户端:工具集成
  • 异步:异步处理

🚦 系统状态

要检查是否所有服务都在运行,请执行以下操作:

# Check ML API
curl http://localhost:8000/docs

# Check MCP Server
ps aux | grep "mcp.*server.py"

# Check Ollama
ollama ps

🔄 发展

添加新功能

  1. 新的机器学习模型:添加到 mlapi/mlapi.py
  2. 新MCP工具:添加到 employee/server.py
  3. 代理行为:修改 singleflowagent.py

调试

通过在代理代码中添加print语句或使用内置的BeeAI日志系统启用调试日志记录。

📝 许可证

该项目是MCP(模型上下文协议)生态系统的一部分,遵循Apache 2.0许可证。