跳到主要内容

PROMPT2. 商品信息解析系统

提示词工程题 · 答案是一段提示词(Prompt),由大模型评测,不含可运行代码。

题目描述​

交易平台要上线一个新的后端服务,用于解析用户填写得乱七八糟的商品标题。 你需要写一个 Prompt,把用户的输入转换成规定的 JSON 格式。

输入格式​

一段用户描述(商品标题)。

输出格式​

{
"storage": "string,如 256GB,单位为 GB",
"is_device": "boolean,是手机填 true,否则 false",
"warning": "boolean,信息缺失的话填 true"
}

示例​

示例 1​

输入:

出的红米note12tpro,五一二的内存

输出:

{"storage": "512GB", "is_device": true, "warning": false}

说明: 「五一二」是中文数字 512,加上单位 GB;是手机 → true;信息完整 → false。

示例 2​

输入:

出一台没有保修的苹果16手机

输出:

{"storage": "", "is_device": true, "warning": true}

说明: 没提容量 → storage 为空字符串;是手机 → true;关键信息缺失 → warning 为 true。

示例 3​

输入:

华为手机入耳式耳机,9成新

输出:

{"storage": "", "is_device": false, "warning": true}

说明: 耳机不是整机 → is_device 为 false;同样缺容量 → warning 为 true。


提示词方案​

你是商品信息解析助手。请把用户发布的商品标题解析成 JSON。

# 任务
从文本中提取:存储容量、是否为整机设备、信息是否缺失。

# 字段规则
- storage:存储容量,统一换算成 GB 并写成字符串,例如 "256GB"、"512GB"。
* 中文数字也要认:「五一二」表示 512,所以「五一二的内存」→ "512GB"。
* 1TB 按 1024GB 处理。
* 文本里没有提到容量时,输出空字符串 ""。
- is_device:这是手机、平板、电脑等整机设备时输出 true;
耳机、充电器、贴膜等配件或非整机时输出 false。
- warning:关键信息(最重要的是存储容量)缺失时为 true,信息完整时为 false。

# 输出格式(严格 JSON,不要代码块,不要解释)
{"storage": "string", "is_device": true 或 false, "warning": true 或 false}

# 输入
{{input}}

设计思路​

第一步:把「模糊描述」翻译成固定字段​

商品标题是自由文本,但下游服务需要的是结构化数据。 提示词的第一件事就是把三个字段的含义、类型、取值范围写清楚, 让模型知道「要抽什么」。

第二步:为每个字段给出边界案例​

  • storage:难点在「中文数字」和单位换算。 明确写出「五一二 = 512」「1TB = 1024GB」,并规定缺失时输出空串, 避免模型自行猜测或输出 null。
  • is_device:关键在于区分「整机」与「配件」。 手机是整机,耳机不是 —— 用几个例子把这个边界钉死。

第三步:定义 warning 的语义​

warning 不是「有没有保修」,而是关键信息是否缺失。 如果不在提示词里点明「最重要的是存储容量」, 模型可能会因为「没提保修」而误判。

第四步:统一输出格式​

规定严格的 JSON、不要代码块、不要解释, 并且字段一律用双引号、布尔值用 true / false(而不是 True)。


易错点总结​

1. 中文数字没处理​

「五一二」不是字符串,而是 512。提示词里必须显式给出这个映射规则。

2. warning 判据不明确​

不说清「缺什么才算缺」,模型可能把「没提保修」也当成缺失, 导致示例 1 被误判为 warning 为 true。

3. 布尔值写成 Python 风格​

模型可能输出 True / False(首字母大写),JSON 解析会失败。 提示词要写明用小写 true / false。

4. 缺失字段处理不一致​

有的模型会给 null、有的给 "未知"。规定统一用空字符串 ""。


扩展思考​

  • 可以增加 price、condition(成色)等字段,思路完全相同:先定契约、再给边界例。
  • 对完全无法解析的输入,可以再加一个 parse_failed 标记,便于上游告警。

相关题目​

加载评论中...