SuperAPI AI 工具集

vs-app-dataset-bind

数据与分析

查看项目

更新于 10-16 11:34

技能介绍

用途

该技能适用于用户需要执行 vs app dataset bind 的场景。绑定时,它负责推断并确认应用侧字段设置,而不是直接复用或省略这些字段。

使用前提

  • 已提供 application-id 与 dataset-id。
  • 能够访问足够的代表性数据集上下文,以便推断绑定时字段配置。
  • 优先使用已有的 plan 目录或原始源文件,因为推断提示需要 Dataset_Description、Data 和 Meaning。
  • schema 与数据集侧字段属性已向用户展示,并在绑定时推断开始前被显式重新确认。
  • 不要假设数据集创建阶段的 field-config.json 已包含绑定阶段字段,如 IndexFields、FilterFields、SuggestFields、ImageIndexFields 或 VideoIndexFields。
  • 若已拉取的数据集元数据包含上述字段,除非人工评审显式验证,否则视为遗留/非标准数据。

相关命令

  • app dataset bind:使用显式 --field-config 将数据集绑定到应用。
  • app dataset-config get / app dataset-config list:在修改前检查当前已绑定的数据集配置。
  • dataset schema get / dataset get:检查字段推断所需的数据集 schema 与元数据。

工作流程

  1. 先检查当前应用与数据集上下文:现有数据集配置、数据集 schema,以及可用的源 plan 或原始样本数据。
  2. 构建推断流程所需的三类提示输入:
    • Dataset_Description:优先使用已有数据集描述或 plan 输出;缺失时从绑定所用的同一源上下文推导。
    • Data:收集最多 10 条代表性 JSON/JSONL 记录。
    • Meaning:按提示推断所需的树形结构准备字段含义。
  3. 复用 schema.prompt,并应用以下模板:
    • filter_infer_prompt 推断 FilterFields
    • suggest_infer_prompt 推断 SuggestFields
    • index_infer_prompt 推断 IndexFields
  4. 组装用于绑定的字段配置 JSON:
    • 若数据集侧 FieldDescMap 已存在则保留。
    • 准备绑定时配置时忽略从数据集元数据拉取的 IndexFields;IndexFields 取自 index_infer_prompt 的搜索输出。
    • 忽略拉取的 FilterFields;基于 FieldDescMap 中的字段描述,用 filter_infer_prompt 重新推断 FilterFields。
    • 忽略拉取的 SuggestFields;SuggestFields 取自 suggest_infer_prompt 的输出。
    • 忽略拉取的 ImageIndexFields 与 VideoIndexFields;根据 schema、含义与样本值,选择真实的图片 URL 或图片资产字段来推断 ImageIndexFields,选择真实的视频 URL 或媒体资产字段来推断 VideoIndexFields。
  5. 将拟定的 IndexFields、FilterFields、SuggestFields、ImageIndexFields、VideoIndexFields 展示给用户,并在绑定前显式确认。
    • 由 agent 对话驱动时,确认必须遵循 vs-item-onboarding/references/agent-confirmation-ux.md 中的 Stage B 约定:先渲染每组一个表格(列为 Field / Type / Meaning / Reason to include / Risk or note),再通过交互式问题对话框询问。
    • 若 CLI 之后打印仅含摘要的确认步骤,不得将其视为 agent 自身表格加对话框评审的替代。
    • 绑定视频数据集时,拟定字段组还必须满足下方 Video Dataset Field Constraints 中描述的 DefaultFieldStrategy 服务端约束;须在请求确认前修正提案,而不是让用户确认一个会被拒绝的载荷。
  6. 运行:vs app dataset bind --application-id <id> --dataset-id <id> --field-config @field-config.json
  7. 绑定后,用 app dataset-config get 校验生效配置。
  8. 绑定成功即视为第一阶段结束;除非用户明确要求就绪或运行时验证,否则不等待应用就绪。

视频数据集字段约束(DefaultFieldStrategy)

视频数据集(Dataset.Type = 3,使用 onboarding 技能中的 --type video 生成)在绑定阶段字段组上带有服务端硬性约束。违反约束会导致 BindAppDataset / CreateDataset 失败,报错:

  • Error.Code = MissingParameter.DefaultFieldStrategy
  • Error.Message = The default field strategy is missing.

这些规则由服务端 checkFieldConstraint 强制执行,无法通过推断、提示调优或用户偏好绕过。任何违反约束的绑定提案都必须在绑定前修正。

字段约束如下:

  • video_url:IndexFields 必须包含;FilterFields 禁止;SuggestFields 禁止
  • content_id:IndexFields 禁止;FilterFields 必须;SuggestFields 禁止
  • content_type:IndexFields 禁止;FilterFields 必须;SuggestFields 禁止
  • parent_content_id:IndexFields 禁止;FilterFields 必须;SuggestFields 禁止
  • sequence_index:IndexFields 禁止;FilterFields 必须;SuggestFields 禁止

其中“必须”表示该字段必须出现在对应组中,“禁止”表示该字段不得出现在对应组中。其他字段(title、director、actors、genres、duration、language、alias 等)无服务端约束,可根据业务目标与推断输出选择。ImageIndexFields 与 VideoIndexFields 独立于实际图片/视频资产字段进行选择;video_url 通常也会加入 VideoIndexFields,这与上表相互独立。

在调用 vs app dataset bind 之前,agent 必须逐行核对上表与当前提案。若提案违反任意一行:修正提案(移动/新增/删除受限字段)、重新渲染受影响的每组表格、通过 Stage B 对话框请用户重新确认,之后才能运行 vs app dataset bind。权威参考见 vs-item-onboarding/references/video-field-constraints.md。

客户环境原则

在客户环境中,假设无法访问仓库源代码。仅使用已安装的技能、打包的 vs CLI 表面(--help、命令输出与观察到的运行时行为)以及用户明确提供的信息来执行任务。不要依赖阅读本地仓库源文件、生成的仓库快照或实现细节来决定运行时动作。若已安装 CLI 的行为与技能冲突,优先信任已安装 CLI 的行为。若技能与打包 CLI 仍不足以安全推进,应停下并询问用户,而不是搜索源代码。

限制

  • 当用户请求涉及可搜索/过滤/建议/图片/视频字段时,不得使用猜测或空的绑定时 field-config 运行 app dataset bind。
  • 在 schema 与数据集侧字段属性与用户明确重新确认之前,不得开始绑定时推断。
  • 不得跳过用户对 IndexFields、FilterFields、SuggestFields、ImageIndexFields 或 VideoIndexFields 的确认。
  • agent 对话驱动绑定时,确认必须使用每组表格加交互式问题对话框;不得降级为单一纯文本摘要、自由格式的是/否聊天回复或 CLI 终端 y/N。
  • 不得代表用户自动确认 CLI 摘要步骤;agent 侧表格加对话框评审仍是唯一事实来源。
  • 复用 schema.prompt 中的提示契约;不要为这些推断步骤发明替代输出键。
  • 将数据集创建与数据集绑定视为独立阶段:FieldDescMap 属于数据集创建,而 IndexFields、FilterFields、SuggestFields、ImageIndexFields、VideoIndexFields 在绑定时推断。
  • 默认将从数据集侧拉取的 IndexFields、FilterFields、SuggestFields、ImageIndexFields、VideoIndexFields 视为不可信历史数据;使用 FieldDescMap 加代表性样本重新推断绑定时字段组。
  • 将提示输出视为提案而非基准事实;当样本数据或业务目标与提示结果矛盾时,移除噪声字段。
  • 对视频数据集,绑定时提案必须满足 DefaultFieldStrategy 服务端约束表;在渲染 Stage B 对话框之前和调用 vs app dataset bind 之前核对本表;无论 LLM 推断或用户覆盖如何建议,都不得提交违反约束的提案。
  • 绑定成功后,除非用户明确要求第二阶段验证,不得调用 app wait-ready 或以就绪状态阻塞。
  • 若数据集缺少足够样本数据支撑提示,应停下并请求更好的源样本,而不是盲目绑定。