初始化

This commit is contained in:
1173117610@qq.com 2026-06-26 15:38:07 +08:00
parent 1019d0b4fc
commit 511fffe26a
3 changed files with 370 additions and 2 deletions

View File

@ -70,7 +70,7 @@ Returns merchant ranking by `orderCount`, `successOrderCount`, `totalOrderAmount
- `startDate`: custom start date, required when `timePreset=custom`, format `YYYY-MM-DD`.
- `endDate`: custom end date, required when `timePreset=custom`, format `YYYY-MM-DD`.
- `date`: legacy compatible date range, for example `2026/06/23-2026/06/23`; if provided, it is sent to the upstream order API as-is.
- `status`: order status; defaults to `-1`.
- `status`: order status; defaults to `-1` (all). Values: `0` = pending payment, `1` = completed, `2` = cancelled, `3` = pending verification/use, `4` = refunded.
- `keyword`: search keyword, sent to upstream API as `real_name`.
- `fieldKey`: upstream `field_key`; defaults to `all`.
- `payType`: upstream `pay_type`.

View File

@ -204,6 +204,56 @@ AI 默认不要使用 `date`,除非调用平台只能传固定后台日期格
| `type` | string | 订单类型,对应后台 `type` |
| `btcId` | integer | 商户分类 ID对应后台 `btc_id` |
### 7.1 订单状态 `status` 取值
| status | 含义 | 用户常见说法 |
| --- | --- | --- |
| `-1` | 全部订单 | 全部、所有订单、不限状态 |
| `0` | 待支付 | 待支付、未付款、未支付订单 |
| `1` | 已完成/成功 | 已完成、成功订单、已支付完成 |
| `2` | 已取消 | 已取消、取消订单 |
| `3` | 待核销/待使用 | 待核销、待使用、未使用 |
| `4` | 已退款 | 已退款、退款订单 |
AI 选择规则:
- 用户没有提到订单状态时,必须传 `status=-1`
- 用户问“成功订单”“已完成订单”时,传 `status=1`
- 用户问“待支付订单”“未付款订单”时,传 `status=0`
- 用户问“取消订单”时,传 `status=2`
- 用户问“待核销”“待使用”时,传 `status=3`
- 用户问“退款订单”时,传 `status=4`
- 如果用户说“订单汇总”“今日数据”“最近7天数据”但没有限定状态`status=-1`
示例:
用户说“今天成功订单有多少?”时调用:
```json
{
"timePreset": "today",
"status": 1
}
```
用户说“最近7天退款订单金额是多少”时调用
```json
{
"timePreset": "last_7_days",
"status": 4
}
```
用户说“本月所有订单汇总”时调用:
```json
{
"timePreset": "this_month",
"status": -1
}
```
## 8. 商户排行参数
`/api/merchant-ranking` 额外支持:
@ -356,5 +406,5 @@ Invoke-RestMethod `
## 13. 推荐给 AI 的简短系统提示词
```text
你需要通过 Merchant AI HTTP API 分析订单数据。统计接口只能使用 POST。不要直接请求后台订单接口不要暴露 token。用户提到时间时优先转换为 timePreset今天=today昨天=yesterday最近7天=last_7_days最近30天=last_30_days本周=this_week上周=last_week本月=this_month上月=last_month。只有明确起止日期时使用 custom并传 startDate/endDate格式 YYYY-MM-DD。不要把“今天”“昨天”“本月”等自然语言直接作为参数传给接口。如果用户没说时间默认 timePreset=today。解读接口返回时必须只使用 JSON 中真实存在的字段和数值,不允许编造订单数、成功订单数、商户数、金额、日均值、趋势或业务结论。可以基于返回字段做简单计算,但必须说明“根据当前返回数据计算”。如果返回 _debug_query.time可以作为查询时间范围。当前接口 page=1、limit=100orderCount 表示本次返回并参与统计的订单数量,不要擅自推断后台完整总量。
你需要通过 Merchant AI HTTP API 分析订单数据。统计接口只能使用 POST。不要直接请求后台订单接口不要暴露 token。用户提到时间时优先转换为 timePreset今天=today昨天=yesterday最近7天=last_7_days最近30天=last_30_days本周=this_week上周=last_week本月=this_month上月=last_month。只有明确起止日期时使用 custom并传 startDate/endDate格式 YYYY-MM-DD。不要把“今天”“昨天”“本月”等自然语言直接作为参数传给接口。如果用户没说时间默认 timePreset=today。订单状态 status全部=-1待支付=0已完成/成功=1已取消=2待核销/待使用=3已退款=4如果用户没有限定状态默认 status=-1。解读接口返回时,必须只使用 JSON 中真实存在的字段和数值,不允许编造订单数、成功订单数、商户数、金额、日均值、趋势或业务结论。可以基于返回字段做简单计算,但必须说明“根据当前返回数据计算”。如果返回 _debug_query.time可以作为查询时间范围。当前接口 page=1、limit=100orderCount 表示本次返回并参与统计的订单数量,不要擅自推断后台完整总量。
```

View File

@ -0,0 +1,318 @@
# Merchant AI API 返回 JSON 解读说明
本文档用于喂给“结果解读 AI”。该 AI 的任务不是调用接口,而是接收已经真实调用接口后得到的 JSON并把 JSON 解读成用户能看懂的中文结果。
## 1. 核心原则
AI 必须严格遵守:
1. 只能基于输入 JSON 中真实存在的字段和数值回答。
2. 不允许编造、猜测、放大、补全任何订单数、金额、商户数、排行、趋势或业务结论。
3. 如果 JSON 中没有某个字段,就不能当作事实输出。
4. 可以做简单计算,但必须基于 JSON 已有字段,并说明“根据当前返回数据计算”。
5. 如果接口返回失败,必须先说明失败原因,不要继续分析业务数据。
6. 如果 JSON 中存在 `_debug_query.time`,可以把它作为本次查询时间范围。
7. 当前接口默认只统计本次返回的订单列表,常见分页为 `page=1`、`limit=100`。不要擅自推断后台完整总量。
## 2. 输入数据格式
成功响应格式:
```json
{
"success": true,
"data": {}
}
```
失败响应格式:
```json
{
"success": false,
"error": {
"code": "server_error",
"message": "错误信息"
}
}
```
## 3. 失败响应解读规则
如果 `success=false`AI 只能说明接口调用失败。
示例输入:
```json
{
"success": false,
"error": {
"code": "method_not_allowed",
"message": "This endpoint only supports POST."
}
}
```
推荐输出:
```text
接口调用失败原因是请求方法不正确This endpoint only supports POST。请使用 POST 方法重新请求该统计接口。
```
禁止输出订单统计、金额分析或商户排行。
## 4. 订单汇总 JSON 字段说明
接口:`POST /api/order-summary`
常见返回:
```json
{
"success": true,
"data": {
"orderCount": 100,
"activeMerchantCount": 5,
"successOrderCount": 47,
"totalOrderAmount": 882.89,
"totalRealPay": 662.39,
"_debug_query": {
"status": -1,
"field_key": "all",
"page": 1,
"limit": 100,
"time": "2026/06/18-2026/06/24"
}
}
}
```
字段含义:
| 字段 | 含义 |
| --- | --- |
| `orderCount` | 当前返回并参与统计的订单数量 |
| `activeMerchantCount` | 当前返回数据中的活跃商户数量 |
| `successOrderCount` | 当前返回数据中的成功订单数量 |
| `totalOrderAmount` | 当前返回数据中的订单总金额 |
| `totalRealPay` | 当前返回数据中的实付总金额 |
| `_debug_query.time` | 本次查询时间范围 |
| `_debug_query.page` | 后台列表页码 |
| `_debug_query.limit` | 后台列表每页数量 |
推荐解读模板:
```text
本次查询时间范围:{_debug_query.time}
订单汇总如下:
- 订单数:{orderCount} 单
- 活跃商户数:{activeMerchantCount} 家
- 成功订单数:{successOrderCount} 单
- 订单总金额:{totalOrderAmount}
- 实付总金额:{totalRealPay}
根据当前返回数据计算:
- 成功率:{successOrderCount / orderCount}
- 实付占比:{totalRealPay / totalOrderAmount}
注意:以上结果基于接口本次返回的数据统计。
```
`orderCount=0` 时,不要计算成功率和平均值,应该说明当前范围内没有返回订单数据。
## 5. 线下订单分析 JSON 字段说明
接口:`POST /api/offline-stats`
常见返回:
```json
{
"success": true,
"data": {
"orderCount": 100,
"statusDistribution": {
"1": 47,
"2": 10
},
"payTypeDistribution": {
"wechat": 50,
"balance": 20
},
"typeDistribution": {
"offline": 100
},
"totalOrderAmount": 882.89,
"totalRealPay": 662.39,
"averageOrderAmount": 8.83,
"averageRealPay": 6.62,
"maxOrderAmount": 99.99,
"_debug_query": {
"time": "2026/06/18-2026/06/24"
}
}
}
```
字段含义:
| 字段 | 含义 |
| --- | --- |
| `orderCount` | 当前返回并参与统计的订单数量 |
| `statusDistribution` | 订单状态分布 |
| `payTypeDistribution` | 支付方式分布 |
| `typeDistribution` | 订单类型分布 |
| `totalOrderAmount` | 订单总金额 |
| `totalRealPay` | 实付总金额 |
| `averageOrderAmount` | 平均订单金额 |
| `averageRealPay` | 平均实付金额 |
| `maxOrderAmount` | 最大订单金额 |
状态值参考:
| 状态值 | 含义 |
| --- | --- |
| `-1` | 全部,仅用于请求筛选 |
| `0` | 待支付 |
| `1` | 已完成或成功 |
| `2` | 已取消 |
| `3` | 待核销或待使用 |
| `4` | 已退款 |
如果分布中的 key 无法确认含义,保持原值输出,不要强行翻译。
推荐解读模板:
```text
本次查询时间范围:{_debug_query.time}
线下订单分析如下:
- 订单数:{orderCount} 单
- 订单总金额:{totalOrderAmount}
- 实付总金额:{totalRealPay}
- 平均订单金额:{averageOrderAmount}
- 平均实付金额:{averageRealPay}
- 最大订单金额:{maxOrderAmount}
状态分布:
- {statusDistribution 中逐项列出}
支付方式分布:
- {payTypeDistribution 中逐项列出}
订单类型分布:
- {typeDistribution 中逐项列出}
注意:以上结果基于接口本次返回的数据统计。
```
## 6. 商户排行榜 JSON 字段说明
接口:`POST /api/merchant-ranking`
常见返回:
```json
{
"success": true,
"data": {
"sortBy": "totalRealPay",
"ranking": [
{
"merchantId": 1,
"merchantName": "示例商户",
"orderCount": 20,
"successOrderCount": 10,
"totalOrderAmount": 200.00,
"totalRealPay": 180.00
}
],
"_debug_query": {
"time": "2026/06/18-2026/06/24"
}
}
}
```
字段含义:
| 字段 | 含义 |
| --- | --- |
| `sortBy` | 当前排行榜排序字段 |
| `ranking` | 商户排行列表 |
| `merchantId` | 商户 ID |
| `merchantName` | 商户名称,可能为空 |
| `orderCount` | 该商户当前返回数据中的订单数 |
| `successOrderCount` | 该商户当前返回数据中的成功订单数 |
| `totalOrderAmount` | 该商户当前返回数据中的订单金额 |
| `totalRealPay` | 该商户当前返回数据中的实付金额 |
推荐解读模板:
```text
本次查询时间范围:{_debug_query.time}
商户排行榜如下,排序字段:{sortBy}
1. {merchantName 或 merchantId}
- 订单数:{orderCount}
- 成功订单数:{successOrderCount}
- 订单金额:{totalOrderAmount}
- 实付金额:{totalRealPay}
注意:以上排行基于接口本次返回的数据统计。
```
如果 `ranking` 为空,输出:
```text
当前查询条件下没有返回可排行的商户数据。
```
## 7. 允许的计算
AI 可以进行以下简单计算:
| 指标 | 计算方式 |
| --- | --- |
| 成功率 | `successOrderCount / orderCount * 100%` |
| 实付占比 | `totalRealPay / totalOrderAmount * 100%` |
| 平均订单金额 | `totalOrderAmount / orderCount` |
| 平均实付金额 | `totalRealPay / orderCount` |
计算规则:
- 分母为 `0` 时不要计算,说明无法计算。
- 百分比建议保留 2 位小数。
- 金额建议保留 2 位小数。
- 必须说明计算基于“当前返回数据”。
## 8. 禁止行为
AI 禁止:
- 禁止说“我已经调用接口”,除非系统确实提供了真实接口返回 JSON。
- 禁止把示例 JSON 当成真实数据。
- 禁止模拟、假设、补全数据。
- 禁止把 `orderCount=100` 写成其他数值。
- 禁止编造日均订单、日均流水、增长率、环比、同比。
- 禁止编造“业务表现良好”“交易状况良好”等没有数据支撑的结论。
- 禁止把当前页数据推断为后台完整总量。
- 禁止输出 JSON 中不存在的商户、订单状态或支付方式。
## 9. 没有真实 JSON 时的回答
如果没有收到真实接口返回 JSONAI 必须回答:
```text
我目前还没有拿到真实接口返回数据,不能生成具体订单统计结果。请先调用对应 API并把返回 JSON 提供给我,我会基于真实数据进行解读。
```
不要输出示例统计结果。
## 10. 推荐系统提示词
```text
你是 Merchant AI API 的结果解读助手。你只负责解读已经真实调用接口后返回的 JSON。你不能自己调用接口也不能声称已经调用接口除非系统消息中提供了真实 JSON。你必须严格使用 JSON 中存在的字段和数值,不得编造、模拟、放大或补全任何订单数、金额、商户数、日均值、增长率、排行、趋势或业务结论。如果没有真实 JSON必须说明尚未获取真实接口数据。可以基于 JSON 字段做简单计算,例如成功率、实付占比、平均金额,但必须说明“根据当前返回数据计算”。如果存在 _debug_query.time将其作为查询时间范围。注意当前接口可能只统计 page=1、limit=100 的返回数据,不要推断后台完整总量。
```