跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

大语言模型 Prompt 工程:从理论到实践

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

清心发布于 2025/2/7更新于 2026/9/449 浏览
大语言模型 Prompt 工程:从理论到实践

大语言模型 Prompt 工程:从理论到实践

什么是 Prompt 工程

Prompt Engineering(提示词工程)是自然语言处理(NLP)和机器学习中的一个重要领域,关注如何设计有效的提示词来引导大语言模型生成高质量的文本。良好的提示词可以帮助模型准确理解任务需求,显著提高生成文本的相关性、准确性和可用性。

在聊天机器人、文本生成、问答系统以及自动化工作流中,提示词工程对于提升用户体验和系统性能至关重要。它不仅仅是简单的提问,而是通过结构化、约束和引导,让模型发挥最大潜力。

为什么要写好 Prompt

大语言模型虽然具备强大的泛化能力,但其输出质量高度依赖于输入的质量。遵循"Garbage In, Garbage Out"原则,模糊或错误的指令会导致模型产生幻觉、逻辑混乱或偏离目标。优化 Prompt 可以:

  1. 减少幻觉:通过明确约束和知识库引用,降低模型编造事实的概率。
  2. 提高一致性:确保多次调用返回格式统一,便于程序解析。
  3. 增强可控性:精确控制输出风格、长度和语气。
  4. 降低成本:更精准的 Prompt 往往能用更少的 Token 获得更好的结果,节省 API 费用。

基本写作方法

掌握通用的 Prompt 框架能显著提升编写效率。以下是几种主流框架:

ICIO 框架

  • I (Instruction): 明确指令,告诉模型要做什么。
  • C (Context): 提供背景信息,帮助模型理解场景。
  • I (Input Data): 输入具体数据或待处理内容。
  • O (Output Indicator): 指定输出格式或示例。

APE 框架

  • A (Ask): 提出具体问题。
  • P (Provide): 提供必要的上下文或资源。
  • E (Example): 给出期望的输出示例(Few-Shot)。

BROKE 框架

  • B (Background): 设定角色和背景。
  • R (Request): 清晰表达请求。
  • O (Objective): 定义目标。
  • K (Key Constraints): 关键限制条件。
  • E (Evaluation): 评估标准。

ROSES 与 SCOPE 框架

这些框架进一步细化了角色设定、任务拆解和输出规范。例如,ROSES 强调 Role(角色)、Objective(目标)、Style(风格)、Example(示例)、Step(步骤),适合复杂任务规划。

高级写作技巧

善用分隔符

使用 ###, ---, """ 等符号将不同部分的内容隔开,有助于模型区分指令、数据和参考内容,避免混淆。

结构化输出

要求模型以 JSON、Markdown 表格或特定 XML 标签格式输出,便于后续代码解析和处理。

迭代优化

Prompt 设计通常不是一次性的。通过测试 - 反馈 - 修改的循环,逐步逼近最佳效果。

自带知识库解决幻觉

在 Prompt 中提供相关文档片段或事实依据,并指示模型仅基于这些信息回答,可大幅减少虚构内容。

CoT(思维链)

引导模型"一步步分析"(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"}

if __name__ == "__main__":
    result = get_flight_info("北京", "上海", "2025-03-01")
    print(json.dumps(result, ensure_ascii=False, indent=2))

总结

Prompt 工程是驾驭大语言模型的核心技能。通过理解基础框架、运用高级技巧并结合实际项目演练,开发者可以更高效地利用 AI 能力解决实际问题。随着模型能力的演进,Prompt 的设计模式也在不断迭代,保持学习和实践是关键。

在实际开发中,建议结合 RAG(检索增强生成)技术,将企业私有知识库融入 Prompt 流程,以进一步提升业务场景下的准确性和安全性。

目录

  1. 大语言模型 Prompt 工程:从理论到实践
  2. 什么是 Prompt 工程
  3. 为什么要写好 Prompt
  4. 基本写作方法
  5. ICIO 框架
  6. APE 框架
  7. BROKE 框架
  8. ROSES 与 SCOPE 框架
  9. 高级写作技巧
  10. 善用分隔符
  11. 结构化输出
  12. 迭代优化
  13. 自带知识库解决幻觉
  14. CoT(思维链)
  15. 自洽性
  16. 项目实战:机票助手
  17. 假设的 API 端点(实际使用时请替换为智谱清言或其他厂商的真实接口)
  18. 总结

更多推荐文章

查看全部
  • 二分算法详解:查找元素首尾位置及区间查询
  • AI绘画电商产品提示词撰写指南
  • Unix AI 发布第三代 Panther 机器人,聚焦真实场景交付能力
  • C++ 编程笔记:基础语法、核心特性与项目练习
  • 基于 Java 和 Spring Boot 的驾校在线学习与考试系统设计
  • 算法实战:课程表环检测与 Trie 前缀树实现
  • C++卡尔曼滤波库:原理与实战应用
  • 基于 OpenClaw 与 Claude 的自动化写作工作流搭建
  • 2026 年前端、后端及算法岗位 AI 技能清单
  • Flutter 三方库 flutter_cors 解决鸿蒙 Web 与混合开发跨域问题
  • 基于 OpenClaw 与 Open WebUI 的企业多部门 AI 平台搭建及 Docker 部署指南
  • PyCharm Linux 安装与使用指南
  • Java Object 类的方法有哪些
  • Java Map 常用方法与核心实现类详解
  • Ambari Blueprint 核心概念与高可用部署说明
  • 昇腾 A2 平台 Pi0 机器人 VLA 大模型测评
  • Python 实现 MCP 客户端调用高德地图天气查询
  • LLM 大模型应用开发:原理、实践与框架指南
  • 基于 WebGIS 与百度天气接口的复古天气预报系统构建
  • Spring Cloud Gateway 统一服务入口实战指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online