使用说明
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模型来回答有关订单和产品的查询。系统:
- 处理自然语言查询 繁体中文
- 搜索相关数据 基于关键字和模式
- 提供上下文 到具有检索数据的AI模型
- 返回智能响应 关于订单和产品
查询示例
- “显示所有已完成的订单”(Show all completed orders)
- "TXN000001 的订单详情“(Details for order TXN000001)
- “陈大明的所有订单”(All orders for customer陈大明)
- “有什么饮料产品?”(What beverage products are available?)
安装和设置
先决条件
- PHP 8.1+
- 作曲家
- Node.js和npm(可选,用于资产编译)
安装步骤
-
克隆存储库
git clone <repository-url> cd mcp_demo -
安装依赖项
composer install -
环境设置
cp .env.example .env php artisan key:generate -
配置OpenAI API 将您的OpenAI API密钥添加到
.env:OPENAI_API_KEY=your_openai_api_key_here -
数据库设置 默认情况下,该项目配置为使用SQLite:
php artisan migrate php artisan db:seed -
启动服务器
php artisan serve -
访问应用程序 打开浏览器并导航到
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概念:
- 数据检索:基于AI提示的结构化数据库查询
- 上下文构建:格式化检索到的数据以供AI使用
- 响应生成:使用OpenAI生成智能响应
- 用户界面:用于自然语言查询的实时聊天界面
使用的技术
- 后端:Laravel 12,PHP 8.1+
- 数据库:SQLite/MySQL
- 人工智能:OpenAI GPT-3.5涡轮增压
- 前端:刀片模板、顺风CSS、jQuery
- HTTP客户端:OpenAI PHP客户端
发展
添加新功能
- 根据需要创建新模型/控制器
- 更新数据库迁移和种子
- 扩展聊天功能
ChatController - 向仪表板添加新的UI组件
测试
php artisan test
代码的风格
./vendor/bin/pint
故障排除
数据库问题
- 确保在PHP中启用SQLite
- 对于MySQL,检查连接凭据
- 跑
php artisan config:clear配置更改后
OpenAI问题
- 验证API密钥是否正确
- 检查API配额和使用限制
- 确保互联网连接
演出
- 考虑为大型数据集添加数据库索引
- 对频繁访问的数据实施缓存
- 使用Laravel队列进行繁重的AI操作
许可证
该项目是根据 MIT许可证.
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 提交拉取请求
支持
对于问题或疑问,请在存储库中创建问题或联系开发团队。
