1. Prompt 工程(Prompt Engineering)

什么是 Prompt 工程?

Prompt 工程是一门设计和优化输入提示(Prompt)的学科,其目的是为了从大语言模型(LLM)中引导出更准确、相关和符合预期的输出。

你可以把 LLM 想象成一个学识渊博但需要引导的助手。如果你问得模糊(例如:“总结一下”),它可能不知道你要总结什么。但如果你问得具体(例如:“用三段话总结下面这篇文章的核心观点,目标读者是初学者:【文章内容】”),它就能给出高质量的回答。
crafting(精心设计)这个具体指令的过程,就是 Prompt 工程

核心目标:

  • 控制输出格式:让模型以 JSON、表格、列表、特定风格(正式、口语化)等格式输出。
  • 扮演角色:让模型扮演特定角色(如资深律师、编程专家、莎士比亚)来回答问题。
  • 提高准确性:通过提供示例(少样本学习,Few-Shot Learning)、步骤分解(Chain-of-Thought)等方式,减少模型“幻觉”,提高回答质量。
  • 执行复杂任务:通过一个复杂的 Prompt 让模型完成多步骤任务,例如:“1. 识别以下文本的情感;2. 提取关键词;3. 根据情感和关键词生成一封回复邮件。”

关键技术点:

  • 指令(Instruction):清晰、明确的命令。
  • 上下文(Context):提供相关的背景信息。
  • 输入数据(Input Data):需要模型处理的主体内容。
  • 输出指示器(Output Indicator):指定输出的格式或类型。
  • 少样本学习(Few-Shot Learning):提供几个输入-输出的例子,让模型模仿。

例子:

  • 差 Prompt:“写点关于牛顿的东西。” (输出可能泛泛而谈)
  • 好的 Prompt:“扮演一位物理学教授,向高中生用简单易懂的语言解释牛顿第一运动定律。请先给出定义,再举一个生活中的例子。输出不超过200字。”

2. RAG 工程(Retrieval-Augmented Generation,检索增强生成)

什么是 RAG 工程?

RAG 是一种将信息检索(Information Retrieval)系统大语言模型(LLM) 相结合的技术架构。它首先从外部知识源(如公司文档、数据库、网页等)检索出与问题相关的信息,然后将这些信息作为上下文(Context)与用户问题一起组成 Prompt,发送给 LLM 来生成答案。

核心思想: 弥补 LLM 的固有缺陷(知识可能过时、存在幻觉、无法获取私有数据)。

工作流程(三步走):

  1. 检索(Retrieval)

    • 用户提出问题(Query)。
    • 系统使用该问题去搜索专用的知识库(之前已处理并存入向量数据库的文档)。
    • 找出知识库中与问题最相关的若干文档片段(Chunks)。
  2. 增强(Augmentation)

    • 将检索到的相关文档片段(作为上下文)和用户的原始问题拼接在一起,形成一个增强后的、信息丰富的 Prompt。
  3. 生成(Generation)

    • 将这个增强后的 Prompt 发送给 LLM。
    • LLM 基于提供的上下文(而不仅仅是其内部训练知识)来生成更准确、更可靠的答案。

核心目标:

  • 知识更新:让 LLM 能够回答关于最新事件的问题(知识库可以随时更新)。
  • 减少幻觉:提供事实依据,让 LLM 的回答有据可查,降低编造信息的可能性。
  • 处理私有数据:让 LLM 能够基于公司内部的、非公开的文档(如产品手册、财务报表、代码库)进行问答。

例子:

  • 用户问题:“我们公司2024年的团建政策有什么新变化?”

  • RAG 流程

    1. 系统在公司内部的《2024年度人力资源政策.pdf》中检索与“团建”最相关的段落。
    2. 将检索到的政策原文和用户问题组合成 Prompt:“请根据以下公司政策文档片段,回答问题:【检索到的政策原文…】。问题:我们公司2024年的团建政策有什么新变化?”
    3. LLM 根据提供的政策原文生成一个摘要和解释作为回答。

对比与联系

特性 Prompt 工程 RAG 工程
核心焦点 优化输入指令,以更好地激发模型的内在知识。 引入外部知识源,扩展和修正模型的知识边界。
知识来源 完全依赖于 LLM 内部已有的(训练时的)知识。 结合 LLM 内部知识 + 外部检索到的实时/私有知识。
解决痛点 模型不听话、格式不对、答非所问。 模型知识陈旧、对私有领域知识一无所知、容易产生幻觉。
技术复杂度 相对较低,侧重于文本设计和实验。 相对较高,涉及向量数据库文本嵌入检索器等多个组件。
关系 是 RAG 的最后一环。RAG 中“生成”这一步的核心就是构建一个高质量的 Prompt(问题+上下文)。 是一种系统架构,它严重依赖于 Prompt 工程来将检索到的信息有效地传递给 LLM。

总结与比喻

  • Prompt 工程 就像是 学习如何向一个专家提问 的艺术。你问得越好,得到的答案就越棒。但这个专家只知道他过去学过的东西。

  • RAG 工程 就像是 给这个专家配了一个庞大的、随时更新的档案库。当他遇到问题时,会先让助手(检索系统)去档案库里找出相关的资料,他再结合自己的知识和这些资料给你一个更准确的答案。

在现代 AI 应用开发(如使用 Dify、Coze 等平台)中,两者结合使用是常态

  1. 用 RAG 来解决知识更新和准确性的问题。
  2. 用 Prompt 工程 来精心设计如何将检索到的上下文和用户问题组合起来,以引导模型生成最符合需求的最终答案。