← 返回
未分类

文旅素材搜索

指导智能体检索文旅素材(数游神州 data0086.com)并走通「搜索 → 列表 → 预览(HLS/MP4) → 选择/购买 → Mock交易返回 → 视频下载到本地」。搜索请求默认 3条,最多 5 条(pageSize≤5),用户可要求更少;列表用表格展示(颜色徽章状态 + img + video),用户通过...
指导智能体检索文旅素材(数游神州 data0086.com)并走通「搜索 → 列表 → 预览(HLS/MP4) → 选择/购买 → Mock交易返回 → 视频下载到本地」。搜索请求默认 3条,最多 5 条(pageSize≤5),用户可要求更少;列表用表格展示(颜色徽章状态 + img + video),用户通过...
fengyily fengyily 来源
未分类 clawhub v1.0.22 1 版本 100000 Key: 无需
★ 0
Stars
📥 592
下载
💾 0
安装
1
版本
#latest

概述

文旅素材搜索(API)

> ## 搜索流程说明(每次搜索都适用)

>

> 用户每次发起搜索时(包括首次、后续、重新搜索、换关键词等),智能体都须按以下流程执行,不得省略或合并为一次

>

> Step 1. 计算两次调用的 pageSize(成片优先配比)

>

> 设用户想要总条数为 N(默认 3,上限 5;用户可指定 1-5):

> - pageSize_finished = ceil(N / 2) — 成片

> - pageSize_material = floor(N / 2) — 素材

>

> | 用户想要 N | 成片条数 | 素材条数 |

> |:--:|:--:|:--:|

> | 1 | 1 | 0 |

> | 2 | 1 | 1 |

> | 3 | 2 | 1 |

> | 4 | 2 | 2 |

> | 5 | 3 | 2 |

>

> Step 2. 两次 POST 调用(顺序执行)

>

> 1. 第一次(成片):请求体 commodityCode = finished_commodity_code,URL pageSize = pageSize_finished

> 2. 第二次(素材):请求体 commodityCode = null,URL pageSize = pageSize_material(若为 0 则跳过第二次)

>

> Step 3. 兜底补齐(配比失败时)

>

> 若成片实际返回 < pageSize_finished,用素材补齐到 N 条;反之亦然。目标是总条数尽量等于 N

>

> Step 4. 合并与判定类别

>

> - 合并两次返回的 datas,按 businessCode/id 去重

> - 逐条以"返回数据本身"的 commodityCode 判定(不是按哪次调用):

> - item.commodityCode === finished_commodity_codecategory = "成片"

> - 否则 → category = "素材"

>

> Step 5. 展示与汇总(统计必须基于 category 字段,不是请求参数!)

>

> ```python

> 成片条数 = sum(1 for item in results if item.category == "成片")

> 素材条数 = sum(1 for item in results if item.category == "素材")

> ```

>

> - 汇总行(表格之前):📽 共找到 N 条资源:成片 X 条 | 素材 Y

> - XY 必须与表格里实际带 【成片】/【素材】 徽章的行数严格一致

> - 即使 X=0Y=0 也要写出(说明搜过了但无结果)

> - 表格每行:标题旁强制带 【成片】 / 【素材】 徽章(以 item.category 为准)

>

> 绝对禁止

> - ❌ 省略成片调用,只调一次接口就返回

> - ❌ 汇总行的数字与表格里实际徽章不一致(最常见错误:按"请求参数 commodityCode 是什么"算成片条数,而不是按"返回记录本身的 commodityCode"算)

> - ❌ 输出表格时省略类别徽章

>

> 此规则等同于主路径「步骤 1」,优先级最高。

> ## 购买流程说明(当前调试阶段)

>

> 本 Skill 处于调试阶段,真实交易 API 尚未上线。用户发出「购买」「下单」「买 N」等指令时,当前约定的完整响应流程为:

>

> 1. 构造 mock 交易响应video_url = 搜索结果中该素材的 fragmentUrl(预览地址)

> 2. 下载视频到本地:调用 bash scripts/download_video.sh "" "downloads/{business_code}.mp4" [HLS|MP4],将视频保存到 downloads/ 目录

> 3. 告知用户:输出下载完成状态及本地文件路径

>

> 此流程由用户购买指令显式触发,搜索和预览阶段不执行任何下载。

> 真实交易 API 上线(TRADE_API_BASE 非空)后,步骤 1 将替换为真实下单请求,步骤 2-3 保持不变。

> 输出格式规范

>

> 智能体应先判断客户端类型,再选择对应的输出格式:

>

> | 客户端类型 | 判定依据 | 输出格式 |

> |-----------|---------|---------|

> | 桌面端 / Web(ArkClaw、OpenClaw、浏览器等) | 默认 | HTML 表格(

等,仅限 index.jsonhtml_output.tags 声明的标签) |

> | IM 手机应用(飞书、微信、钉钉、企业微信等) | 用户提到在飞书/微信/钉钉中使用,或上下文/系统信息表明客户端为 IM 应用 | Markdown 表格(| col | 语法,图片用 ![](url),链接用 text) |

>

> 桌面端 HTML 模式注意事项

> - 不要将 HTML 放在代码围栏内(围栏内的标签不会被渲染,只会显示源码)

> - 不要使用 (静态 HTML 环境中无法交互)

> - 不要使用

步骤行为要点
----------------
1. 搜索(两次调用)针对同一关键词,智能体依次发起两次 POST {api_origin}/ms-base/home/getList?pageNum=1&pageSize=3 请求,合并结果:
① 第 1 次:请求体 commodityCodeconfig.jsonfinished_commodity_code(当前 CommodityType-7bf0aa3057bc)。
② 第 2 次:请求体 commodityCodenull
合并时按每条记录自身的 commodityCode 字段判定类别:若 item.commodityCode === finished_commodity_codecategory = "成片",否则 → category = "素材"。展示时可在标题后加 徽章区分。pageSize每次调用独立生效,默认 3(最多 5);用户要更少时按用户数量传。保留 P0/P1 字段。
2. 列出结果用表格展示(HTML 或 Markdown,取决于客户端类型),不要把工具/API 返回的整段 JSON 当作对用户的主回复(见下「搜索结果展示」与「展示与 JSON」):列 状态|标题|缩略图|视频预览|详情;首列用颜色徽章标记选中状态(非 checkbox)。表格下方附操作说明(见「选择与购买」)。
3. 预览引导用户打开 preview_url(数游神州商品详情页 /#/multimodal?businessCode=…,统一处理视频播放);可同时说明 stream_type 与原始 video_url 供技术核对。预览仅用于选片,不等于已购原片
4. 选择 / 购买支持两种操作模式,无需额外确认步骤
模式 A — 先选后买:用户先发送选择指令(「选 1、3」「全选」),智能体重新渲染表格标记选中状态;之后用户发送「购买」或「下单」,直接进入步骤 5,不再要求二次确认。
模式 B — 直接购买:用户直接发送「购买 1,2」「下单 3」「买第1条」等包含序号的购买指令,智能体一步完成选中并立即进入步骤 5,跳过选择环节。
⚠️ 禁止在用户发出购买指令后回复"接口未开放""暂不支持下单"等拒绝性文字——当前阶段购买指令的执行方式就是步骤 5 的 mock + 下载。
用户在选择阶段可追加/移除(「加上第2条」「去掉第3条」),智能体每次都重新渲染完整表格。
5. Mock 交易返回 + 视频下载(必须执行)用户发出购买/下单指令后,智能体必须立即执行以下操作,不得跳过或以"接口未就绪"为由拒绝:
A. 构造 mock 交易响应:为每条选中素材生成 {"code":0, "resData":{"video_url":"..."}} ,其中 video_url = 该素材搜索结果的 fragmentUrl(预览地址)。
B. 下载视频到本地:调用 `bash scripts/download_video.sh "" "" [HLS\
MP4] 将视频保存到 downloads/ 目录,文件名为 {business_code}.mp4
C. 输出本地文件路径:下载完成后向用户展示每条素材的
local_path`。
详见「购买后输出」。

搜索结果展示 — 根据客户端类型选择输出格式

> 输出前应先判断客户端类型,选择对应格式。

>

> #### 桌面端 / Web 客户端(HTML 模式)

>

> 客户端(ArkClaw / OpenClaw)支持 HTML 渲染。展示搜索结果时,直接输出 HTML 标签(仅限 index.jsonhtml_output.tags 声明的标签)。

>

> 注意事项(HTML 模式):

>

> - 不要使用