write-tasks.md 3.8 KB

写入任务输入

输入为 UTF-8 JSON 文件。文件只放业务数据,不放凭据、员工会话或主密钥。命令不接收任意云函数名,也不接收可注入的 client、callFn、confirmationEvent 或离线跳过确认的选项。

已有采集结果入库:ingest

根字段为 requestKey、source、runKey、run、records、producer。调用模块为培训包 client/collection-bridge.mjs 的 ingestCollectedRecords。

  • requestKey 和 runKey:沿用同一实际采集或导入批次的稳定键;不得为重试任意换键。
  • source:title、sourceKind、dataMode、rawText 必填。rawText 是取得的完整原文,来源指纹由程序重算。
  • run:必须明确提供 dataMode、status;另按已取得的实际采集事实提供平台、工具、采集时间与追踪号。不从 collectionMode 猜 dataMode。
  • records:每批 1–200 条;每条含 itemKey、className、externalKey、data。data.dataMode 必填。来源和执行的 Pointer 由程序取得真实编号后补入。
  • producer:提供实际 skillName、skillVersion。

逐表字段、原始记录指纹、噪声范围参考冻结 r7 的:

/opt/data/ksf-baseline/r7/unpacked/skill/references/raw-table-field-allowlists.json
/opt/data/ksf-baseline/r7/unpacked/skill/vendor/shared-fingerprints.mjs

保留 rawPayload、payloadHash、payloadLevel: voc_normalized、collectedAt、recordIndex 和真实的 idOrigin。缺失的点赞数不填 0,没有原平台 ID 就标缺失,不编造 ID。payloadHash 与噪声内容指纹用途不同。噪声判定不能混在通用入库数据里。

流程是来源登记 → 执行登记 → 同一份 items 预检 → 提交 → 取完回执并逐条核对。预检失败之前,来源和执行记录可能已经登记;不能笼统说“数据库零写入”。结果只输出经过核对的业务编号、计数和条目状态,不输出原文与凭据。

采集入库前先按references/workshop-tasks.md的workshop-dedup只读查重,并确认服务合同deduplication.schema=ksf.ingest-dedup.v1;随后ingest仍走既有冻结入口。来源登记和实际提交由新版服务端再次精确查重,因此不能仅凭不同requestKey/externalKey判为新资料。复用真实编号,变化的数据保留新快照/版本;重复采集仍有审计日志,不承诺数据库完全不增长。

报告:report-preview / report-submit

JSON 根字段只接受:

{
  "reportDir": "/绝对路径/报告目录",
  "seriesKey": "沿用实际报告系列键",
  "version": 1,
  "reportType": "integrated_banmian_rd_report",
  "dataMode": "sample",
  "stageCode": "S5"
}

reportDir 中必须存在 report.html。所有码值先在本地校验;workshop_auxiliary 另需 artifactSubtype。stageCode 的 S1–S5 是当前客户端约束,不声称服务端实施相同枚举。

report-preview 只建立预览,返回 previewId 与确认页 confirmationUrl,不代表确认、入库或发布成功。

report-submit 需要在同一 JSON 中加入服务端返回的 previewId。版本与文件内容必须和预览时相同;确认人和事件从服务端读取。程序不接收用户自行拼的确认事件,也不代替员工点击。

本轮培训样例固定 sample,只能展示或按明确要求建立预览;这个入口会在联网前阻止它执行 report-submit。其他数据模式按真实取得方式填写;不得为了发布修改模式。

提交调用新版桥接层,桥接层复用冻结 r7 的报告流程。确认、上传、预检或回执任一失败即停。当前命令不提供“跳过确认”“沿用任意回执发布”或自动重试接口。失败时输出已经得到的 jobId、artifactId 和停在哪一步,先查状态再决定后续操作。