电商订单AI管理系统

基于Laravel框架的电商订单管理系统,集成OpenAI实现自然语言查询功能,包含商品目录浏览、订单状态管理及中文AI聊天界面。

  • by uberr2000
  • PHP
  • 本地部署
  • 更新于
在 GitHub 查看 uberr2000/mcp_demo

使用说明

MCP演示项目

一个基于Laravel的模型上下文协议(MCP)演示项目,该项目使用OpenAI开发了一个具有人工智能聊天功能的电子商务订单管理系统。

特性

  • 订单管理:使用分页显示和管理客户订单
  • 产品目录:浏览超市产品(苏打水、薯片、冰淇淋等)
  • AI聊天界面:使用繁体中文自然语言查询订单和产品数据
  • 数据库集成:带有种子样本数据的SQLite数据库
  • 现代用户界面:使用Tailwind CSS的响应式设计

项目结构

模型

  • 产品:用名称、价格、描述、库存和类别表示超市商品
  • 订单:具有交易ID、客户名称、金额、状态和产品关系的客户订单

数据库模式

产品列表

  • id -主键
  • name -产品名称(繁体中文)
  • description -产品描述
  • price -产品价格(港币)
  • stock_quantity -可用库存
  • category - Product category (饮料,零食,雪糕)
  • created_at, updated_at -时间戳

订单表

  • id -主键
  • transaction_id -唯一交易标识符(TXN#######)
  • name -客户名称(繁体中文)
  • amount -订单总金额
  • status -订单状态(待定、正在处理、已完成、已取消、已退款)
  • product_id -产品表外键
  • quantity -订购数量
  • created_at, updated_at -时间戳

样品数据

  • 10产品:超市商品包括:

    • 可口可樂 (可口可乐)
    • 樂事薯片 (乐事薯片)
    • 哈根达斯雪糕(Häagen-Dazs Ice Cream)
    • 百事可乐(Pepsi)
    • 还有更多。..
  • 500订单:随机生成的订单:

    • 唯一交易ID
    • 中国客户名称
    • 随机产品和数量
    • 各种订单状态
    • 真实的时间戳

AI聊天功能

AI聊天界面使用OpenAI的GPT-3.5-turbo模型来回答有关订单和产品的查询。系统:

  1. 处理自然语言查询 繁体中文
  2. 搜索相关数据 基于关键字和模式
  3. 提供上下文 到具有检索数据的AI模型
  4. 返回智能响应 关于订单和产品

查询示例

  • “显示所有已完成的订单”(Show all completed orders)
  • "TXN000001 的订单详情“(Details for order TXN000001)
  • “陈大明的所有订单”(All orders for customer陈大明)
  • “有什么饮料产品?”(What beverage products are available?)

安装和设置

先决条件

  • PHP 8.1+
  • 作曲家
  • Node.js和npm(可选,用于资产编译)

安装步骤

  1. 克隆存储库

    git clone <repository-url>
    cd mcp_demo
    
  2. 安装依赖项

    composer install
    
  3. 环境设置

    cp .env.example .env
    php artisan key:generate
    
  4. 配置OpenAI API 将您的OpenAI API密钥添加到 .env:

    OPENAI_API_KEY=your_openai_api_key_here
    
  5. 数据库设置 默认情况下,该项目配置为使用SQLite:

    php artisan migrate
    php artisan db:seed
    
  6. 启动服务器

    php artisan serve
    
  7. 访问应用程序 打开浏览器并导航到 http://127.0.0.1:8000

配置

数据库配置

SQLite(默认)

DB_CONNECTION=sqlite

MySQL(替代)

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mcp_demo
DB_USERNAME=root
DB_PASSWORD=your_password

对于MySQL,首先创建数据库:

CREATE DATABASE mcp_demo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

OpenAI配置

OPENAI_API_KEY=your_openai_api_key_here

用法

主仪表板

  • 查看带有详细信息的订单分页列表
  • 浏览产品目录
  • 使用AI聊天查询数据

AI聊天界面

聊天界面支持多种查询类型:

  • 按交易ID查找订单
  • 客户订单历史
  • 产品搜索
  • 基于状态的过滤
  • 关于数据的一般查询

API终点

  • GET / -主仪表板
  • POST /chat -AI聊天端点

技术实现

MCP集成

该项目通过以下方式展示了MCP概念:

  1. 数据检索:基于AI提示的结构化数据库查询
  2. 上下文构建:格式化检索到的数据以供AI使用
  3. 响应生成:使用OpenAI生成智能响应
  4. 用户界面:用于自然语言查询的实时聊天界面

使用的技术

  • 后端:Laravel 12,PHP 8.1+
  • 数据库:SQLite/MySQL
  • 人工智能:OpenAI GPT-3.5涡轮增压
  • 前端:刀片模板、顺风CSS、jQuery
  • HTTP客户端:OpenAI PHP客户端

发展

添加新功能

  1. 根据需要创建新模型/控制器
  2. 更新数据库迁移和种子
  3. 扩展聊天功能 ChatController
  4. 向仪表板添加新的UI组件

测试

php artisan test

代码的风格

./vendor/bin/pint

故障排除

数据库问题

  • 确保在PHP中启用SQLite
  • 对于MySQL,检查连接凭据
  • 跑 php artisan config:clear 配置更改后

OpenAI问题

  • 验证API密钥是否正确
  • 检查API配额和使用限制
  • 确保互联网连接

演出

  • 考虑为大型数据集添加数据库索引
  • 对频繁访问的数据实施缓存
  • 使用Laravel队列进行繁重的AI操作

许可证

该项目是根据 MIT许可证.

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 提交拉取请求

支持

对于问题或疑问,请在存储库中创建问题或联系开发团队。