Viking Item Onboarding 用于在 Viking AI Search 的 V2 控制面(/open/*V2)中,把数据源接入为数据集,并可选地进一步创建应用。该技能以引导式流程(workflow)驱动 vs CLI,严格按步骤执行,每步依赖上一步的输出,尤其是模式推断产物(inference artifact)会从第 6 步一直复用到第 13 步。
用途 它面向需要从原始数据源创建多模态数据集或应用、以及用户行为事件数据集的场景,可用于搭建目录搜索、内容搜索等业务目标的接入流程。
适用数据源与模式 支持的数据源包括:本地 JSONL 文件(一次性导入,或针对仅追加文件的持续增量同步,如不断追加新行的爬虫输出);本地 JSON 数组或 CSV 文件(仅一次性导入,不支持持续同步);MySQL 数据库(一次性快照导入或持续增量同步)。
支持的数据集类型
- user_event:用户行为/事件日志(点击、浏览、曝光、收藏等),用于推荐与个性化场景。
- multi_modal:其他所有情况,包括含图片 URL 和/或视频 URL 的记录(如带图商品、短视频帖子、带缩略图内容、多模态搜索语料),以及不含媒体的纯文本语料。若数据不是行为日志,则归入此类。
主要能力与核心机制 V2 的特点是模式推断完全由后端驱动:CLI 上传文件,后端推断 Schema(已在主键/标题/URL/事件类型字段上设置 BizAttr)以及逐字段的 FieldDescMap。代理的职责是:(a)将推断产物持久化到本地;(b)渲染给用户进行一轮人工确认;(c)驱动剩余的持久化与写入步骤,而不需要自行重新设计字段决策。
它提供的关键命令阶段包括:上传 URL(vs dataset import-url)、PUT 上传(curl)、提交推断(vs dataset infer-schema)、轮询推断(vs dataset infer-result)、校验 schema(vs dataset validate-schema)、创建数据集(vs dataset create)、写入数据(vs data write)、导出(vs connector export,MySQL 或本地文件)、同步配置(vs connector init)、同步运行(vs connector run)、创建应用(vs app create)与挂载数据集(vs app attach-dataset)。其中 vs dataset ingest 是“一体化”快捷方式,编排上传+推断+轮询+创建+写入,但不含 Schema 确认暂停点。
使用方式(工作流概览) 必须严格按顺序执行,核心步骤为:
- 确认数据集类型、输入来源与导入模式:先确定数据集类型(multi_modal 或 user_event),再识别来源类型,若存在多个选项需显式询问用户选择导入模式,不得静默替用户决定。
- multi_modal 需确定 Theme(e_commerce、long_video、content、general,默认 general);user_event 不传 Theme。
- 识别来源:数据库连接或表名 → MySQL;.jsonl 或行分隔/仅追加文件 → JSONL;.json 数组或 .csv → JSON/CSV(仅一次性)。来源不明时询问。
- 语言:zh/en/ko/ja/hi,中文用户默认 zh,否则默认 en。
- 导入模式:MySQL 与 JSONL 需确认是一次性还是持续同步;只有请求中有明确的一次性或持续语义时才跳过询问,否则必须询问,不能把裸的“import”当一次性信号;JSON/CSV 只支持一次性,无需询问。
- 之后按确认结果走对应分支(MySQL 一次性/持续、已有数据集持续同步、JSONL 一次性/持续、JSON/CSV 一次性等)。
来源环境配置(仅 MySQL 分支) MySQL 默认使用环境变量:MYSQL_HOST、MYSQL_PORT、MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE(可选 MYSQL_CHARSET)。需渲染带占位符的 bash export 模板让用户自行填写并 export;绝不能在聊天中显示真实凭据,也不能要求用户把凭据粘贴到聊天中;export、init、run 命令仅从环境变量读取 MySQL 凭据,不接受 flags 或聊天输入。这是一个需要用户确认的人为检查点。
导出与上传 导出源快照为 JSONL:MySQL 用 vs connector export --source mysql ...,本地文件用 vs connector export --source jsonl --file <path>;bootstrap 文件始终写入 /tmp/viking/connector/<job>/bootstrap/items.jsonl,不能用 --output 覆盖该路径。随后用 vs dataset import-url --file-name <basename> 获取 FileUrl 与 FileKey,用 curl PUT 上传(无需 Authorization 头,FileUrl 已预签名),再用 vs dataset infer-schema 提交推断(多模态需 --theme),轮询 vs dataset infer-result 直到 Status=Success,用 vs dataset validate-schema 校验并渲染 schema-confirm 块,随后 vs dataset create 持久化、vs data write 写入记录。
语言匹配规则
运行时需匹配用户最近一条消息的语言,用于所有说明文字与内部推理输出;CLI 合同部分(如 vs-schema-confirm 块、命令名、flag、JSON 键、枚举值、字段名、BizAttr 标识符 MultiModalId、数据集/应用/TaskID、控制台 URL)以及确认用的字面词 yes 保持原样不翻译。
适用场景与限制 适用于:从本地 JSONL/JSON/CSV 或 MySQL 接入数据集,并可选配置应用与挂载。不适用:仅想向已有数据集追加行(应使用 vs data write --dataset-id <id> --fields @items.jsonl)。该技能禁用 vs item profile/plan/apply/review/provision/verify 等 V1 路径,且禁止向数据集引导命令传除 multi_modal 或 user_event 之外的类型。JSON/CSV 不支持持续同步;JSONL 持续同步要求文件仅追加,已有行的编辑或删除不会被追踪,可能导致重复或缺失记录;已有数据集 + 一次性来源导入不支持作为单一工作流。前置条件包括 vs CLI ≥ 0.2.0 已安装并完成认证(vs auth status 与 vs doctor 成功)、输入文件为 JSON 数组/JSONL/CSV 且本地可读、用户已说明业务目标、账号已开通 V2 控制面。关于收费、价格与更多能力细节,资料暂未提供。