大语言模型 Prompt 工程:从理论到实践
Prompt 工程是引导大语言模型生成高质量文本的关键技术。 Prompt 的定义、重要性及多种写作框架如 ICIO、APE、BROKE 等,阐述了分隔符、结构化输出、CoT 思维链等高级技巧,并通过 Python 代码示例演示了基于 API 构建机票助手的实战流程,旨在帮助开发者掌握有效的人机交互策略以提升应用性能。

Prompt 工程是引导大语言模型生成高质量文本的关键技术。 Prompt 的定义、重要性及多种写作框架如 ICIO、APE、BROKE 等,阐述了分隔符、结构化输出、CoT 思维链等高级技巧,并通过 Python 代码示例演示了基于 API 构建机票助手的实战流程,旨在帮助开发者掌握有效的人机交互策略以提升应用性能。

Prompt Engineering(提示词工程)是自然语言处理(NLP)和机器学习中的一个重要领域,关注如何设计有效的提示词来引导大语言模型生成高质量的文本。良好的提示词可以帮助模型准确理解任务需求,显著提高生成文本的相关性、准确性和可用性。
在聊天机器人、文本生成、问答系统以及自动化工作流中,提示词工程对于提升用户体验和系统性能至关重要。它不仅仅是简单的提问,而是通过结构化、约束和引导,让模型发挥最大潜力。
大语言模型虽然具备强大的泛化能力,但其输出质量高度依赖于输入的质量。遵循"Garbage In, Garbage Out"原则,模糊或错误的指令会导致模型产生幻觉、逻辑混乱或偏离目标。优化 Prompt 可以:
掌握通用的 Prompt 框架能显著提升编写效率。以下是几种主流框架:
这些框架进一步细化了角色设定、任务拆解和输出规范。例如,ROSES 强调 Role(角色)、Objective(目标)、Style(风格)、Example(示例)、Step(步骤),适合复杂任务规划。
使用 ###, ---, """ 等符号将不同部分的内容隔开,有助于模型区分指令、数据和参考内容,避免混淆。
要求模型以 JSON、Markdown 表格或特定 XML 标签格式输出,便于后续代码解析和处理。
Prompt 设计通常不是一次性的。通过测试 - 反馈 - 修改的循环,逐步逼近最佳效果。
在 Prompt 中提供相关文档片段或事实依据,并指示模型仅基于这些信息回答,可大幅减少虚构内容。
引导模型"一步步分析"(Let's think step by step),在处理数学推理或逻辑问题时,能显著提升准确率。
让模型对同一问题生成多个答案并进行投票或一致性检查,选择最合理的结果。
本部分演示如何基于大模型 API 实现一个机票查询助手。以下是一个基于 Python 的简单实现示例,展示了如何构建 Prompt 并处理响应。
import requests
import json
# 假设的 API 端点(实际使用时请替换为智谱清言或其他厂商的真实接口)
API_URL = "https://open.bigmodel.cn/api/paas/v4/chat/completions"
API_KEY = "YOUR_API_KEY"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
def get_flight_info(departure, destination, date):
prompt = f"""
你是一个专业的机票助手。请根据用户提供的信息查询航班。
出发地:{departure}
目的地:{destination}
日期:{date}
请严格按照以下 JSON 格式返回结果,不要包含其他解释:
{{
"flights": [
{{
"flight_number": "CA123",
"departure_time": "08:00",
"arrival_time": "10:30",
"price": 1200,
"airline": "Air China"
}}
]
}}
"""
payload = {
"model": "glm-4",
"messages": [{"role": "user", "content": prompt}],
"temperature": 0.1
}
response = requests.post(API_URL, headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
content = data['choices'][0]['message']['content']
# 清理可能存在的 Markdown 标记
content = content.replace("```json", "").replace("```", "")
return json.loads(content)
else:
return {"error": "API request failed"}
__name__ == :
result = get_flight_info(, , )
(json.dumps(result, ensure_ascii=, indent=))
Prompt 工程是驾驭大语言模型的核心技能。通过理解基础框架、运用高级技巧并结合实际项目演练,开发者可以更高效地利用 AI 能力解决实际问题。随着模型能力的演进,Prompt 的设计模式也在不断迭代,保持学习和实践是关键。
在实际开发中,建议结合 RAG(检索增强生成)技术,将企业私有知识库融入 Prompt 流程,以进一步提升业务场景下的准确性和安全性。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online