Customer-Try
by cheng180
README.md
# Customer-Try — Dify 智能汽车销售客服 Demo
基于 Dify Chatflow/Workflow + MCP Server 的智能汽车销售客服系统。支持多轮对话、本地库存查询、知识库检索、实拍照片展示。
## 架构
```
┌─────────────────┐ HTTP/SSE ┌──────────────────┐
│ Dify (Docker) │ ←───────────────→ │ MCP Server │
│ │ │ (9020端口) │
│ Chatflow/ │ │ inventory 查询 │
│ Workflow │ │ stock 检查 │
│ + 知识库 │ │ price 报价 │
│ + LLM │ └────────┬─────────┘
└────────┬────────┘ │
│ │ SQLite
│ Chat API ▼
│ ┌──────────────────┐
▼ │ company_inventory │
┌─────────────────┐ │ .db │
│ FastAPI │ │ │
│ (7860端口) │ │ 品牌/车型/配置 │
│ 代理转发 + │ │ 价格/库存/颜色 │
│ 聊天UI │ │ 实拍照片路径 │
│ + 图片服务 │ └──────────────────┘
└────────┬────────┘
│
▼
用户浏览器
http://127.0.0.1:7860
```
## 快速开始
### 1. 环境要求
- Python 3.11+
- Conda 环境 `customer`
- Docker Desktop(运行 Dify)
### 2. 安装依赖
```bash
conda activate customer
pip install fastapi uvicorn httpx mcp
```
### 3. 初始化数据库
```bash
python init_company_db.py
```
数据库 `company_inventory.db` 包含 8 条示例车辆数据,可按需修改。
### 4. 启动服务
需要**两个终端窗口**:
**终端 1 — FastAPI + 聊天 UI(7860 端口)**
```bash
conda activate customer
python main.py
# → http://127.0.0.1:7860
```
**终端 2 — MCP Server(9020 端口)**
```bash
conda activate customer
python mcp_server.py
# → http://127.0.0.1:9020/sse
```
### 5. 配置 Dify
**连接 MCP Server:**
1. Dify → 插件 → MCP SSE/StreamableHTTP → 设置
2. 填入:`{"car-tools":{"url":"http://host.docker.internal:9020/sse","headers":{},"timeout":50,"sse_read_timeout":50}}`
3. 授权
**Workflow 中使用 MCP 工具:**
在 Workflow 画布添加「调用 MCP 工具」节点:
| 字段 | 值 |
|------|-----|
| 工具名称 | `search_inventory` / `check_stock` / `get_price` |
| 参数 | `{"query": "{{#sys.query#}}"}` |
## MCP 工具
| 工具 | 参数 | 说明 |
|------|------|------|
| `search_inventory` | `query` | 关键词搜索公司库存(自动检测品牌/车型) |
| `check_stock` | `brand`, `model` | 精确查询某款车库存和价格 |
| `get_price` | `brand`, `model` | 获取最优报价 |
返回值带前缀标记:
- `[STOCK:AVAILABLE]` — 有库存
- `[STOCK:EMPTY]` — 无库存
## 数据库结构
`company_inventory.db` → `inventory` 表:
| 字段 | 类型 | 说明 |
|------|------|------|
| brand | TEXT | 品牌 |
| model | TEXT | 车型 |
| variant | TEXT | 具体配置款 |
| year | INTEGER | 年款 |
| price_guide | REAL | 指导价(万元) |
| price_sale | REAL | 实际售价(万元) |
| stock | INTEGER | 库存数量 |
| fuel_type | TEXT | 能源类型(纯电/插混/增程) |
| color | TEXT | 可选颜色 |
| description | TEXT | 车辆简介 |
| photo_path | TEXT | 实拍照片文件名(放入 photos/ 目录) |
## 添加车辆照片
1. 将照片放入 `photos/` 目录
2. 更新数据库 `photo_path` 字段为文件名
3. 重启 MCP Server
图片通过 FastAPI 静态文件服务访问:`http://127.0.0.1:7860/photos/xxx.jpg`
## 知识库
项目包含以下知识库文档,可导入 Dify 知识库:
- `knowledge_base/购车引导话术.md` — 销售引导流程
- `knowledge_base/模糊语义情绪处理话术.md` — 模糊表达和情绪处理
- `knowledge_base/汽车百科知识库.md` — 汽车信息百科
- `scrape/car_data.md` — 网易汽车爬取的 2849 款车数据
- `scrape/car_data.json` — 结构化车辆数据
## 项目文件
```
customer-try/
├── main.py # FastAPI 后端 + 聊天 UI 代理
├── mcp_server.py # MCP Server(库存查询工具)
├── init_company_db.py # 数据库初始化脚本
├── company_inventory.db # SQLite 数据库
├── templates/
│ └── index.html # 聊天界面
├── photos/ # 车辆实拍照片
├── knowledge_base/ # 知识库文档
└── scrape/ # 车辆数据爬虫
├── scraper.py # 爬虫脚本
├── car_data.json # 2849 款车数据
└── car_data.md # Markdown 格式
```
## License
MIT
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues