提取字段与订单号
从用户原文提取订单号、金额或其他业务字段时,先声明规则,再选择本次需要的字段,最后按字段状态读取值。只识别目标与约束时使用快速开始,不必配置 Schema。
从一个字段开始
以orderId为例,Schema声明字符串,parse选择该字段;完整可运行文件见订单字段示例。编号"000123"应保留字符串和前导零。
先完成安装和模型配置,将下面完整文件保存为 parse.mjs,再运行 node parse.mjs:
本例用 schema-dsl/pure 定义一个必需字符串字段;fields 只选择 orderId。结果中先找到 present 的字段报告,再按 intentId 查所属意图,不能只读取第一个目标。JSON Schema 等价形式与支持边界见Schema参考。
如果用户只说“查询订单”而没有编号,读取字段状态及issues,不根据Schema生成编号。VIP依赖的完整配置、三轮调用及结果表见多轮修改示例。
完整配置、请求及结果见字段状态示例。字段是否适用也需要材料依据,不能把每个 Schema 字段都强行套到所有意图上。
空字段定义配all等同无字段选择。新提取只限所选顶层字段;fields=[]不是清空所有继承值。字段状态及值能否保留见完整响应,跨轮材料见多轮对话。
例如 VIP=true、discount=15 可提取;下一轮只改 VIP=false,旧优惠 15 会失效;再选择 discount 并给 5,可解除问题。直接改变未选旧字段会移除旧值,但不提取未选替代值。未变化、未选择的继承值保留,不声称本轮重新验证。
多个订单和真假值
两个订单的订单号各归所属意图,按 container + intentId + path 定位,见两个订单完整材料。false、0和空字符串可以是合法值,不能用 if(value) 判断是否提取成功;null 只有用户明确提供且规则允许时才是 explicit_null。全部8种状态见状态与消费规则。
支持范围
完整规则矩阵已集中到Schema支持范围,本页只讲提取与消费。