AI聊天服务器

一个基于Laravel的AI聊天服务器,用于通过自然语言处理和企业工具调用进行业务管理操作。

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

使用说明

MCP AI聊天服务器

基于Laravel的人工智能聊天界面,使用自然语言处理和工具调用进行业务管理操作。

🎯 概述

MCP AI聊天服务器使用户能够通过自然语言对话与业务数据进行交互。它利用OpenAI的函数调用功能来:

  • 从自然语言输入分析用户意图
  • 自动提取参数
  • 通过MCP工具执行适当的业务操作
  • 返回人性化的响应

✨ 特性

  • 自然语言处理:了解印尼语和英语商务查询
  • AI驱动的工具调用:使用OpenAI GPT模型进行智能功能选择
  • 基于规则的回退:当人工智能服务不可用时,性能会下降
  • 实时聊天界面:基于Web的聊天UI,具有会话管理功能
  • 综合录井:跟踪所有交互和工具执行
  • RESTful API:通过程序访问聊天功能
  • 多提供商支持:OpenAI和OpenRouter集成

🛠️ 可用工具

工具 说明 参数
create_customer 创建新客户记录 姓名、电子邮件、电话
get_user 通过电子邮件检索用户 电子邮件
search_tasks 按状态/用户 状态、assigned_to查找任务
update_task_status 更改任务状态 task_id,状态
get_overdue_customers 查找不活跃客户 天

🚀 快速开始

先决条件

  • PHP 8.1+
  • 作曲家
  • Node.js和npm(用于前端资产)
  • 数据库(MySQL/PostgreSQL/SQLite)

安装

  1. 克隆和安装依赖关系:

    git clone <repository-url>
    cd mcp-server
    composer install
    npm install
    
  2. 环境设置:

    cp .env.example .env
    php artisan key:generate
    
  3. 配置环境变量:

    # Database
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=mcp_chat
    DB_USERNAME=your_username
    DB_PASSWORD=your_password
    
    # AI Providers
    AI_PROVIDER=openai  # or 'openrouter'
    OPENAI_API_KEY=your-openai-api-key
    OPENROUTER_API_KEY=your-openrouter-api-key
    
    # MCP Authentication
    MCP_VALID_KEYS=your-secret-key-here
    
  4. 数据库设置:

    php artisan migrate
    php artisan db:seed  # Optional: seed sample data
    
  5. 构建资产:

    npm run build
    
  6. 启动服务器:

    php artisan serve
    
  7. 访问应用程序:

    • 聊天界面:http://localhost:8000/chat
    • API文件:http://localhost:8000/api/documentation

💬 使用示例

web界面

访问 /chat 使用带有示例消息按钮的交互式聊天界面。

API使用

发送聊天消息

curl -X POST "http://localhost:8000/api/mcp/chat" \
  -H "Content-Type: application/json" \
  -H "X-MCP-Key: your-mcp-key" \
  -d '{
    "message": "Buatkan customer baru dengan nama John Doe, email john@example.com",
    "session_id": "optional-session-id"
  }'

回应

{
  "reply": "Customer 'John Doe' berhasil dibuat dengan ID 1.",
  "executed_tool": "create_customer",
  "arguments": {
    "name": "John Doe",
    "email": "john@example.com"
  },
  "result": {
    "id": 1,
    "name": "John Doe",
    "email": "john@example.com"
  },
  "status": "success"
}

对话示例

创建客户:

User: Buatkan user baru dengan nama Andi, email andi@gmail.com
AI: Customer 'Andi' berhasil dibuat dengan ID 5.

正在更新任务状态:

User: Update status task nomor 1 menjadi completed
AI: Status task ID 1 berhasil diubah menjadi 'completed'.

寻找逾期客户:

User: Tampilkan customer yang belum dihubungi lebih dari 30 hari
AI: Ditemukan 3 customer yang belum dihubungi lebih dari 30 hari.

📡 API终点

方法 端点 描述
职位 /api/mcp/chat 发送聊天消息
得到 /api/mcp/chat/history 获取对话历史记录
删除 /api/mcp/chat/history 清除对话历史记录

认证

所有API端点都需要 X-MCP-Key 带有有效密钥的标头 MCP_VALID_KEYS.

🔧 配置

AI提供商

通过设置在OpenAI和OpenRouter之间进行选择 AI_PROVIDER:

  • OpenAI:更可靠,需要API密钥
  • 开放路由:替代提供商,支持多种型号

环境变量

变量 描述 默认值
AI_PROVIDER 人工智能服务提供商 openai
OPENAI_API_KEY OpenAI API密钥 -
OPENROUTER_API_KEY OpenRouter API密钥 -
MCP_VALID_KEYS 逗号分隔的API密钥 -
DB_CONNECTION 数据库连接 mysql

🏗️ 建筑

核心组件

  • 代理服务:主要AI处理逻辑
  • 工具注册表:管理可用的MCP工具
  • MCP工具:个人业务操作处理人员
  • 聊天控制器:Web界面和API终结点
  • 日志记录:全面的互动跟踪

数据流

  1. 用户通过API或web界面发送消息
  2. AgentService使用AI或基于规则的逻辑分析意图
  3. 选择并执行适当的工具
  4. 结果被格式化为人类可读的响应
  5. 记录交互以进行分析

🔒 安全

  • 所有终结点的API密钥身份验证
  • 输入验证和净化
  • 聊天端点的速率限制
  • 全面的错误处理
  • 回复中没有敏感数据泄露

📊 监控

所有交互都记录在 mcp_command_logs 表格包括:

  • 用户消息和人工智能响应
  • 执行的工具和参数
  • 成功/失败状态
  • 会话跟踪
  • IP地址和元数据

🧪 测试

运行测试套件:

php artisan test

🤝 贡献

  1. 复刻仓库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

📄 许可证

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

🆘 支持

对于问题和疑问:

  • 检查登录 storage/logs/laravel.log
  • 审查 mcp_command_logs 交互详细信息表
  • 确保正确配置API密钥

📚 额外资源