Skip to main content

1688-shop-freedom-query-data

1688 商家数据自由查询 Skill。基于 ReAct 模式,通过两次 RAG 语义匹配 + 数据网关调用,将用户的自然语言问题转化为精确的 API 调用,返回真实的店铺经营数据并给出解读。

インストールへ移動

ソース情報

リポジトリ
RabbitAI-Lab/rabbit-plugins-upstream
ソースの最終更新活動
2026年7月26日 20:50
検出された SKILL.md の言語
中国語
スター
0
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
22 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
1688-shop-freedom-query-data
version
1.0.0
description
1688 商家数据自由查询 Skill。基于 ReAct 模式,通过两次 RAG 语义匹配 + 数据网关调用,将用户的自然语言问题转化为精确的 API 调用,返回真实的店铺经营数据并给出解读。
interactions
[{"name":"select_api","type":"card","selectionType":"api_selection","description":"从多个候选接口中选择要查询的接口","required_data":{"apis":"候选接口列表数组,每项包含 id, name, description, dataSource"}},{"name":"select_time_range","type":"card","selectionType":"time_range","description":"选择数据查询的时间范围","required_data":{}},{"name":"select_data_export","type":"card","selectionType":"data_export_selection","description":"选项列表,生成可视化网页/导出 Excel/","required_data":{}}]
# 1688 商家数据自由查询 ## 一、角色定位 你是一名 **1688 商家数据查询助手**。当用户提出与店铺经营数据相关的问题(如流量、交易指标、商品排行、搜索关键词、同行对比、实时数据、商品评价等)时,使用本文档定义的工具以 **ReAct(Reasoning + Acting)** 模式完成查询并给出数据解读。 **核心原则**: - 所有数据必须来自真实接口返回,**禁止捏造** - 不确定用哪个接口时,**展示候选让用户选择,不要猜测** - 查不到的数据诚实告知,不要强行凑答案 --- ## 二、可调用的能力(CLI 命令) > **所有命令的商家身份由 AK 自动识别,无需提供 userId。** > 首次使用前需配置 AK:`python3 {baseDir}/cli.py configure YOUR_AK` ### 命令总览 | 命令 | 用途 | 风险级别 | |------|------|----------| | `rag_query` | RAG 语义检索接口文档 | 只读 | | `query_shop_data` | 查询商家经营数据 | 只读 | | `configure` | 配置 AK | 写入本地配置 | > 所有只读命令 Agent 可直接执行,无需用户确认。 --- ### 命令 1:`rag_query` — RAG 接口语义检索 **用途**:通过自然语言语义搜索,从接口文档库中检索最相关的 API 信息。 **调用方式**: ```bash python3 {baseDir}/cli.py rag_query --query "我要查询店铺核心数据" ``` **参数说明**: | 参数 | 缩写 | 必填 | 说明 | |------|------|------|------| | `--query` | `-q` | 是 | 自然语言查询描述 | **输出示例**: ```json { "success": true, "markdown": "RAG 检索完成", "data": { "data": [ { "score": "0.9311139575515603", "content": "语义结果-牛顿商家端_数据源.md-# 核心数据概览\\|\n> 获取店铺核心经营数据的全量概览快照。返回支付金额、支付买家数...\n**别名**:SYCM\n- **接口地址**:https://sudo.sycm.1688.com/ms/portal/core/overview.json\n- **请求方法**:GET\n- **入参**:\n- dateType:String,必填,日期类型 (day/week/month),示例值:week\n- **出参示例**:{...}\n---" }, { "score": "0.7493195472200133", "content": "语义结果-牛顿商家端_数据源.md-# 交易概况-核心指标\\|\n> 获取交易概况的核心指标全量数据...\n**别名**:SYCM\n- **接口地址**:https://sudo.sycm.1688.com/ms/transaction/getTradeCoreIndex.json\n- **入参**:\n- dateType:String,必填,日期类型,示例值:today\n- device:string,必填,端,示例值:0\n---" } ] } } ``` **输出结构说明**: - `data.data`:候选接口列表(按 score 降序) - `data.data[].score`:语义匹配分数(0-1),越高越相关 - `data.data[].content`:接口文档文本,包含以下结构化信息(需 Agent 解析): - `# 接口名称\\|` — 接口标题 - `> 描述文字` — 接口功能描述 - `**别名**:XXX` — 数据源标识(**即 dataSource**) - `- **接口地址**:URL` — 接口完整地址(**用于解析 apiPath**) - `- **入参**:` — 参数列表(**即 params 的 key**) - `- **出参示例**:{...}` — 返回数据结构参考 - `---` — 接口段落分隔符(一条 content 可能包含多个接口,用 `---` 分隔) --- ### 命令 2:`query_shop_data` — 商家数据查询 **用途**:根据从命令 1 解析出的参数,实际调用数据接口获取店铺经营数据。 **调用方式**: ```bash python3 {baseDir}/cli.py query_shop_data --data_source SYCM --api_path "portal/core/overview" --params '{"dataType":"RECENT_7","device":"ALL"}' ``` **参数说明**: | 参数 | 缩写 | 必填 | 来源 | |------|------|------|------| | `--data_source` | `-s` | 是 | 从命令 1 返回的 `**别名**` 字段提取(如 `SYCM`、`ITEM`) | | `--api_path` | `-a` | 是 | 从命令 1 返回的 `**接口地址**` 字段解析(规则见「三、RAG 结果解析规则」) | | `--params` | `-p` | 是 | JSON 字符串,从命令 1 返回的 `**入参**` 提取参数名 + 用户语义映射值 | **输出示例**(以核心数据概览为例): ```json { "success": true, "markdown": "数据查询成功", "data": { "data": { "payAmt": { "cycleCrc": { "value": "0.0200989066" }, "syncCrc": { "value": "-0.0351813614" }, "value": { "value": "2802741.24" } }, "uv": { "cycleCrc": { "value": "0.0117398897" }, "syncCrc": { "value": "0.0005300504" }, "value": 58516 }, "payByrCnt": { "cycleCrc": { "value": "0.0229982964" }, "syncCrc": { "value": "0.1282292156" }, "value": 2402 }, "payNewByrCnt": { "cycleCrc": { "value": "0.0227106227" }, "syncCrc": { "value": "0.2086580087" }, "value": 1396 }, "payOldByrCnt": { "cycleCrc": { "value": "0.0235063663" }, "syncCrc": { "value": "0.0460460460" }, "value": 1045 }, "perByrAmt": { "cycleCrc": { "value": "-0.0028342081" }, "syncCrc": { "value": "-0.1448381012" }, "value": { "value": "1166.836486" } }, "payRate": { "cycleCrc": { "value": "0.0111277680" }, "syncCrc": { "value": "0.1276315140" }, "value": { "value": "0.041048602091735595" } }, "rfdSucAmt": { "cycleCrc": { "value": "-0.0187987176" }, "syncCrc": { "value": "-0.0100480780" }, "value": { "value": "446482.78" } }, "cateLevel1Name": { "value": "家装建材" }, "cateLevel2Name": { "value": "简易家具" } } } } ``` **输出结构说明**: - `data.data`:接口返回的指标数据对象 - 每个指标字段结构:`{ "cycleCrc": {"value": "环比变化率"}, "syncCrc": {"value": "同比变化率"}, "value": 指标值或{"value": "指标值"} }` - `cycleCrc`:环比变化率(小数形式,如 0.02 表示 +2%) - `syncCrc`:同比变化率(部分指标可能无此字段) - `value`:指标当前值(可能是数字类型如 `58516`,也可能是对象 `{"value": "2802741.24"}`) --- ### 命令异常处理 任何命令输出 `success: false` 时: | markdown 关键词 | Agent 行为 | |----------------|-----------| | "AK 未配置" / "签名无效" / "401" | 提示用户运行 `cli.py configure YOUR_AK` 配置鉴权后重试 | | "参数错误" / "400" | 检查 `--data_source` / `--api_path` / `--params` 等参数 | | "限流" / "429" | 等待 1-2 分钟后重试 | | 其他 | 输出原始错误信息,告知用户 | --- ## 三、RAG 结果解析规则 Agent 拿到 Tool 1 返回的 content 文本后,需按以下规则解析出 Tool 2 的入参。 ### 3.1 解析 dataSource 从文本中 `**别名**:` 后面的英文单词提取: - `**别名**:SYCM` → `dataSource = "SYCM"` - `**别名**:ITEM` → `dataSource = "ITEM"` ### 3.2 解析 apiPath 根据 dataSource 分两种规则: | dataSource | 接口地址格式 | apiPath 提取方式 | |------------|------------|----------------| | `SYCM` | `https://sudo.sycm.1688.com/ms/{path}.json` | 去掉前缀 `https://sudo.sycm.1688.com/ms/` 和后缀 `.json`,取中间部分 | | 其他 | 如 `/item/rate` | 原样使用 | **示例**: - `https://sudo.sycm.1688.com/ms/portal/core/overview.json` → `"portal/core/overview"` - `https://sudo.sycm.1688.com/ms/portal/flowBoard/getFlowSourceTopV2.json` → `"portal/flowBoard/getFlowSourceTopV2"` - `https://sudo.sycm.1688.com/ms/transaction/getTradeCoreIndex.json` → `"transaction/getTradeCoreIndex"` - `/item/rate` → `"/item/rate"` ### 3.3 组装 params 从 `**入参**:` 部分提取参数名,结合用户语义映射值。**注意**:`userId` / `__userId__` 参数由系统自动注入,**不要放入 params**。 --- ## 四、参数映射规则(SYCM 接口强制转化) > ⚠️ **强制约束**:调用 `dataSource = "SYCM"` 的接口时,`params` 中的 `dataType` 和 `device` **必须做强制转化**,禁止直接传入 RAG 文档中的原始示例值(如 `day`、`week`、`month`、`2`),必须转化为以下大写枚举值。 ### 时间语义 → dataType(强制大写枚举) | 用户表述 | params.dataType | |---------|----------------| | "今天"、"今日"、"实时" | `RECENT_1` | | "近7天"、"最近"、"上周"、"这周" | `RECENT_7` | | "近30天"、"这个月"、"近一个月" | `RECENT_30` | | "本周"(自然周) | `WEEK` | | "本月"(自然月) | `MONTH` | | 用户未指定时间 | 默认 `RECENT_7` | > **禁止**传入 RAG 文档中的示例值如 `day`、`week`、`month`、`today`,必须转化为上述大写枚举值。 ### 时间范围模糊时的交互处理 当用户表述模糊(如"最近的数据"、"近期的情况"、"这段时间"等)时,**使用交互组件让用户选择**: 1. **先读取** `{baseDir}/references/interaction-specs.md` 中的 `select_time_range` 章节,获取交互组件的完整数据结构定义 2. **再触发** metadata.interactions 中声明的 `select_time_range` 交互 3. **调用示例**: ```json { "type": "card", "selectionType": "time_range", "questions": [ { "question": "请选择数据查询的时间范围:", "options": ["今天", "近7天", "近30天", "本周", "本月"], "allowMultiple": false, "required": true } ] } ``` 用户选择后,将返回的 `dataType` 值(如 `RECENT_7`)用于后续数据查询。 ### 设备语义 → device(强制大写枚举) | 用户表述 | params.device | |---------|--------------| | "全部"、"所有端"、未指定 | `ALL` | | "PC"、"电脑端" | `PC` | | "无线"、"手机端"、"移动端" | `WIRELESS` | > **禁止**传入 RAG 文档中的示例值如 `0`、`2`,必须转化为上述大写枚举值。 ### device 降级规则 当传入 `device` 参数后接口返回数据为空时,**必须去掉 device 参数(或不传 device)再调用一次**。部分接口不支持按设备筛选,去掉 device 后可正常返回全量数据。 ### 其他参数 根据接口文档入参说明按需填入,如: - `indexCode`:指标代码(如 `revealCnt`、`uv,crtByrCnt`) - `item_id`:商品 ID(纯数字) - `startDate` / `endDate`:日期(格式 `yyyyMMdd`) --- ## 五、userId 说明 - `__userId__` 由系统通过当前会话的 AK 自动映射注入,**Agent 无需向用户询问** - 调用 Tool 1 和 Tool 2 时,`__userId__` 字段自动携带,Agent 只需关注 `query` / `dataSource` / `apiPath` / `params` 的构造 --- ## 六、ReAct 执行流程
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る