---
title: 从材料正文接到商品候选：运行与适配器
type: example
last_updated: 2026-10-15
visibility: public-draft
---

# 从材料正文接到商品候选：运行与适配器

业务任务、完整请求、候选和检查含义统一在[模型与上下文章节](../../methods/40_system/10-model-context.md#沿一笔商品资料看完整装配)解释。这里负责运行及替换组件；本包使用合成预录响应，没有调用LLM。

## 输入输出与运行

在本目录、有Node.js的终端运行，无需安装包：

```powershell
node construction-check.mjs
```

应报告`passed: 24`，包括应拒绝的反例确实被拒绝，不是24笔模型任务成功。[实际检查记录](construction-results.json)包含逐项名称。材料在接线运行前冻结，但仍是同一作者设计的教学检查，不能当作独立业务留出实验。

|文件／接口|职责|
|---|---|
|[construction-fixtures.json](construction-fixtures.json)|`cases[].raw`保存来源ID、版本与完整正文；`recording.response`保存预录观察，`request_hash`绑定请求|
|[construction.mjs](construction.mjs)|`assembleRequest`装配；`construct(raw, adapter)`接收适配器响应、核对支持、接回现有规则|
|[construction-check.mjs](construction-check.mjs)|检查正常／冲突／缺单位／否定／异SKU、错误响应与装配边界|
|[construction-normal-result.json](construction-normal-result.json)|`request.request`为完整请求，`result`保存支持检查、规范化输入、候选及契约结果|

要重新输出正常笔，在本目录运行：

```powershell
node --input-type=module -e "import fs from 'node:fs'; import {assembleRequest,construct,prerecordedAdapter} from './construction.mjs'; const f=JSON.parse(fs.readFileSync('construction-fixtures.json','utf8')).cases[0]; console.log(JSON.stringify({request:assembleRequest(f.raw),result:await construct(f.raw,prerecordedAdapter(f.recording))},null,2));"
```

核对`request.request.documents`完整保留new-A/r1正文且没有`facts`；`result.proposal`应为容量650、PP、蓝色、净重140、`awaiting_review`、`published=false`，`support.passed`及`contract.passed`均为true。它尚未确认或保存；后续回[原实操包步骤3至6](report.md#从输入走到结果)练确认、修订与恢复。本次CLI候选未导入演示页面；回原包后重新选择其内置500 ml／黑色／120 g材料练习后半链，两组数值不要混用。

装配上限为4份文档、正文合计12000个JavaScript UTF-16代码单元；`raw.id`须为非空字符串。超限明确拒绝整次装配，不截断正文或规则。这是本地资源限制，不是模型token预算；真实接入须按所选tokenizer核算整个请求。

## 替换适配器

`construct(raw, adapter)`要求异步函数：接收装配好的`request`，返回`{observations:[...]}`。可先通过`async request => recordedResponse`接入另一份手写JSON；不要读取`dataset.facts`或调用`buildProposal`生成所谓模型答案。`prerecordedAdapter(record)`会核对请求哈希，改正文、规则或任务后不能复用旧录制。

真实API适配器须完成三件事：将instructions、task、response_schema和documents映射到供应商接口；解析实际响应，失败就抛错停止；记录模型版本、请求哈希、原始响应、费用和错误。这里的response_schema只是字段说明，使用结构化输出时须另建完整JSON Schema。材料及费用获准后才能接入真实服务。调用者应记录执行来源，`construct`不会自动判断响应来自预录还是模型。

保留后半段检查接口，替换的是候选来源。先检查响应与原文支持，再检查规范化契约，最后由业务人员按[人工量尺](manual-rubric.md)读原文；研究效果时另行冻结代表材料、独立真值和新留出条件。

## 必要局限

原句检查仅支持分号分句、显式SUP-08/SKU-017，以及代码列出的容量、净重、材质和颜色语法；未知分句、否定、其他单位或重复字段会停止。它不处理PDF/OCR、一般语言含义或供方确认的替代关系。规则已能完成这类受控材料时无需模型；复杂材料需重新设计支持检查与人工核对，不能只放宽正则。

本例没有验证真实认证、持久化、网络超时、领域判断或业务收益；生产接入还须验证这些环节与组织接续。