P
Prompt Master
Prompt Engineering 教程与提示词实战

从任务定义、示例和工作流到评测与安全边界

Prompt Engineering 教程与提示词实战Prompt Library

Information Extraction

information extraction prompts(overview)

本章 Prompt 决定
01要解决的 Prompt 问题

information extraction prompts(overview)

02完成后带走

一份保留任务边界的可复用 Prompt、示例集、评测记录或安全规则。

03做到什么算完成

至少跑一个代表性样本,检查结果,并记录仍需人工复核的部分。

信息提取 (IE) 是 Prompt Engineering 中最具商业价值的应用场景之一。它的核心目标是将非结构化文本(如简历、合同、新闻、对话日志)转化为计算机可处理的结构化数据(如 JSON, SQL, CSV)。

在 AI 时代,以前需要写几千行正则表达式(Regex)才能解决的问题,现在只需要一个精心设计的 Prompt。


核心应用场景

  1. 简历解析:从 PDF 文本中提取候选人姓名、学历、技能栈、最近一份工作。
  2. 财务报销:从发票 OCR 文本中提取商家名称、金额、税号、日期。
  3. 舆情分析:从用户评论中提取“产品优缺点”、“情感倾向”、“具体诉求”。
  4. 医疗结构化:从医生病历手记中提取“诊断结果”、“用药清单”、“过敏史”。

技巧 1:定义严格的 Schema (Schema Definition)

不要只说“提取关键信息”,要明确告诉 AI 你想要的数据结构。用 JSON 是最通用的做法。

❌ 错误的 Prompt

帮我看看这份简历,把他的学校和技能列出来。

✅ 正确的 Prompt (使用 JSON Schema)

你是一个专业的数据提取助手。请从以下简历文本中提取信息,并严格按照 JSON 格式输出。

输出格式要求 (Schema):
{
"candidate_name": "string (全名)",
"education": [
{
"school": "string",
"degree": "string (e.g., Bachelor, Master)",
"year_graduated": "integer or null"
}
],
"skills": ["string (提取技术栈关键词)"],
"years_of_experience": "integer (估算总工作年限)"
}

规则:

1. 如果某项信息缺失,请返回 null,不要编造。
2. 只要返回 JSON,不要包含任何解释性文字。

简历文本:
{resume_text}

技巧 2:提供示例 (One-Shot Extraction)

对于复杂的提取任务(例如需要标准化字段),提供一个“输入-输出”对(One-shot)效果显著。

Prompt 示例:

任务:从客服对话中提取用户的“投诉原因”和“情绪强度”。

示例输入:
用户:我买的这款耳机才用了三天左边就不响了!你们这什么质量啊,赶紧给我退钱!
示例输出:
{
"issue_category": "Product Defect",
"issue_detail": "Left earbud stopped working",
"sentiment_score": 9,
"action_required": "Refund"
}

当前输入:
用户:你好,请问我的订单发货了吗?我都等了一周了,如果是缺货麻烦告诉我一声。
当前输出:

技巧 3:先推理,后提取 (Reasoning Extraction)

在处理需要“判断”的信息时(例如:这份合同是否存在法律风险?),直接让 AI 输出 JSON 容易导致错误。让它先思考,再输出

Prompt 示例:

请分析以下新闻,提取其中提到的所有公司及其股价变动原因。

输出格式:
{
"reasoning": "string (在这里简要分析文中的逻辑关系)",
"entities": [
{
"company": "string",
"stock_change": "string (e.g., +5%)",
"reason": "string"
}
]
}

💡 最佳实践 (Best Practices)

  1. 处理“无数据” (Handling Nulls)

    • 明确指示 AI:当信息不存在时,是返回 null"N/A" 还是空字符串 ""
    • 推荐:使用 null,方便后续代码处理。
  2. 强制 JSON 模式 (JSON Mode)

    • 如果你使用的是 GPT-4o 或 Gemini 1.5 Pro 的 API,请在 API 调用中开启 response_format: { type: "json_object" }
    • 这能从底层保证输出的一定是合法 JSON,杜绝缺少括号的错误。
  3. 使用 TypeScript 定义 (Advanced)

    • 对于拥有强代码能力的模型(如 Claude 3.5 Sonnet, GPT-4),直接把 TypeScript Interface 扔给它作为 Schema,往往比用自然语言描述更准确。
    Extract data following this TypeScript interface:
    
    interface Invoice {
    id: string;
    total: number; // excluding tax
    items: { name: string; qty: number; price: number }[];
    }
    

案例库

📚 相关资源