除了对话,OpenAI 的模型在各种文本处理任务中也表现出色,适用于内容生成、总结提取、改写翻译等场景。本章将通过实际案例,讲解如何使用 OpenAI 库完成这些任务。
关于openai库的安装见博客:《Prompt工程之OpenAI库》 1)安装教程(阿里云百炼平台)
3.1 文本总结
总结是最常见的应用之一。你可以用非常自然的提示词让模型“帮我总结一下以下内容”。
🧩 示例:
messages = [
{"role": "system", "content": "你是一位擅长信息归纳的助手。"},
{"role": "user", "content": "请帮我总结以下文本:\n\n人工智能(AI)正在快速发展,它在医疗、教育、金融等领域有广泛应用。但也带来了隐私、伦理等问题……"}
]
response = client.chat.completions.create(
model="qwen-plus",
messages=messages
)
print(response.choices[0].message["content"])
📌 技巧: 你可以指定总结风格,如“用三句话总结”或“以小学生能理解的方式总结”。
3.2 文本翻译与改写
翻译和改写任务对语言模型来说非常擅长。可以通过自然提示进行“翻译”或“用不同风格表达”。
🔸 翻译:
messages = [
{"role": "user", "content": "请把下面的文字翻译成英文:我今天学习了 OpenAI 的库,非常有趣!"}
]
🔸 改写(学术风格):
messages = [
{"role": "user", "content": "请将这段话改写为正式的学术风格:我觉得 AI 会改变很多行业。"}
]
📌 提示模板:
- “请以更加正式/简洁/口语化/文学化的风格改写:{原文}”
- “请改写为适合发在微博/LinkedIn 的内容”
3.3 信息抽取与结构化输出
模型也可以将非结构化文本变为结构化数据,例如从一段文本中提取人名、时间、地点、情绪等。
🔹 示例:从用户留言中提取关键信息
messages = [
{"role": "system", "content": "你是一个结构化信息抽取助手,返回 JSON 格式结果。"},
{"role": "user", "content": "我昨天在上海吃了一家很棒的餐厅,叫‘弄堂小馆’,价格适中,服务很好。"}
]
期望输出(模型会自动结构化):
{
"地点": "上海",
"餐厅名称": "弄堂小馆",
"评价": "价格适中,服务很好",
"时间": "昨天"
}
📌 技巧: 明确说明返回格式,如“请返回一个 JSON 对象,包含字段 X、Y、Z”。
3.4 情感分析与文本分类
你也可以用 ChatCompletion 实现轻量的情感分析、标签分类任务。
🔹 情感分析示例:
messages = [
{"role": "user", "content": "请判断下面评论的情绪倾向(正面/中立/负面):\n\n这次客服真的让我太失望了!"}
]
🔹 文本分类:
messages = [
{"role": "user", "content": "请将以下短文分类为以下类型之一:科技 / 娱乐 / 体育 / 财经 / 其他。\n\nOpenAI 推出了最新的 GPT-4 模型……"}
]
📌 技巧: 你也可以让模型返回结构化格式,例如 {"类别": "科技"}
,方便程序处理。
3.5 提示词工程技巧
🧠 提示工程小贴士:
- 先示例,后请求:先给模型看一两个示例,再提供新输入,会显著提升效果;
- 强调输出格式:在 system prompt 或 user prompt 中说明“请用 JSON 返回”或“只返回结论”;
- 逐步提示:如“第一步,找出关键词;第二步,总结成一句话”,可提升复杂任务的准确性;
- 避免模糊词汇:“详细”、“专业”这类词可以加上具体说明,比如“请详细到每个步骤的层级”。
✅ 本章小结
- 模型擅长处理总结、翻译、改写、信息抽取等任务;
- 自然语言提示即可完成复杂文本分析;
- 合理设计 prompt 可实现类结构化输出;
- 可结合 JSON 作为返回格式,提升自动处理能力;
🧪 本章练习
- 让模型总结一段你任意挑选的新闻报道;
- 提供一条用户评论,请模型判断其情感倾向;
- 编写一个函数,输入任意段文本,输出 JSON 格式的地点、人名、事件;
- 用模型将一段普通叙述改写为营销广告语风格。