【llm对话系统】LLM 大模型Prompt 怎么写?

如果说 LLM 是一个强大的工具,那么 Prompt 就是使用这个工具的"说明书"。一份好的 Prompt 可以引导 LLM 生成更准确、更相关、更符合你期望的输出。

今天,我们就来聊聊 LLM Prompt 的编写技巧,掌握这把解锁 LLM 潜能的钥匙!

一、什么是 Prompt?

简单来说,Prompt 就是你给 LLM 的指令或输入,它可以是一个问题、一句话、一段描述,甚至是几个词。LLM 会根据你提供的 Prompt 来理解你的意图,并生成相应的输出。

Prompt 的重要性:

  • 引导 LLM 理解任务: Prompt 明确了你希望 LLM 完成的任务。
  • 控制 LLM 的输出: Prompt 可以限定 LLM 生成内容的范围、格式、风格等。
  • 激发 LLM 的潜能: 好的 Prompt 可以激发 LLM 的创造力,生成更有创意、更有价值的内容。

二、Prompt 的基本组成

一个完整的 Prompt 通常包含以下几个部分:

  1. 指令 (Instruction): 明确指示 LLM 要做什么,例如"总结"、"翻译"、"写一首诗"等。
  2. 上下文 (Context): 提供 LLM 需要的背景信息,例如相关的文本、数据等。
  3. 输入数据 (Input Data): 需要被处理的具体内容,例如需要被翻译的句子、需要被总结的文章等。
  4. 输出指示 (Output Indicator): 指定输出的格式、长度、风格等要求。

并非所有 Prompt 都需要包含以上所有部分,可以根据具体任务进行调整。

三、Prompt 编写技巧:从入门到精通

1. 清晰明确的指令

指令是 Prompt 的核心,要让 LLM 准确理解你的意图,指令必须清晰明确,避免使用模糊或有歧义的措辞。

Bad: "告诉我关于这个的内容。" (不明确,LLM 不知道要告诉你关于什么的)

Good: "请总结一下这篇文章的主要内容。" (明确指示 LLM 进行总结)

Good: "写一段代码实现快速排序"

2. 提供必要的上下文

对于需要背景知识的任务,提供必要的上下文可以帮助 LLM 更好地理解任务,并生成更相关的输出。

示例:

Prompt: "请写一篇关于人工智能的博客文章,目标读者是 AI 初学者。"

在这个 Prompt 中,"目标读者是 AI 初学者"就是上下文信息,它限定了文章的写作风格和深度。

3. 指定输出格式

通过指定输出格式,你可以控制 LLM 生成内容的结构、样式和长度。

示例:

Prompt: "请将以下英文句子翻译成中文,并用表格的形式输出:This is a cat."

输出指示: 用表格形式输出

输出(可能):

英文 中文
This is a cat. 这是一只猫.

Prompt: "请列举 5 个提高工作效率的方法,并用编号列表的形式输出。"
输出指示: 用编号列表输出,并举出5个方法

4. 使用示例引导 (Few-Shot Learning)

通过提供一些示例,可以让 LLM 更好地理解你的期望,并生成符合要求的输出。

示例:

Prompt: "请将以下句子改写成更正式的表达:

  1. 我觉得这个想法不错。-> 我认为这个想法是可取的。
  2. 这个东西很好用。-> 这个工具非常实用。
  3. 你的方案是什么? -> 你的方案具体是什么样的?"

通过提供几个示例,LLM 可以学习到如何将非正式的表达改写成更正式的表达。

5. 逐步引导 (Chain-of-Thought)

对于复杂的任务,可以将任务分解成多个步骤,逐步引导 LLM 完成任务。

示例:

任务: 解答一个数学应用题

Prompt: "一辆汽车以每小时 60 公里的速度行驶,行驶 240 公里需要多少小时?请逐步解释你的解题思路。"

LLM 输出 (可能):

  1. 首先,我们需要计算汽车行驶的时间。
  2. 已知汽车的速度是每小时 60 公里,行驶的距离是 240 公里。
  3. 根据公式:时间 = 距离 / 速度,我们可以计算出汽车行驶的时间。
  4. 将数据代入公式:时间 = 240 公里 / 60 公里/小时 = 4 小时。
  5. 因此,汽车行驶 240 公里需要 4 小时。

6. 尝试不同的 Prompt

同一个任务,可以用不同的 Prompt 来实现。尝试不同的 Prompt,比较它们的输出结果,可以帮助你找到最佳的 Prompt。

7. 使用 Prompt 模板

针对常见的任务,可以总结出一些常用的 Prompt 模板,以便重复使用。

例如,一个通用的总结模板:

复制代码
请总结以下文本的主要内容,并用 [输出格式] 输出:

[输入文本]

四、常见任务的 Prompt 最佳实践

1. 文本生成

  • 写一篇文章: "请写一篇关于 [主题] 的文章,目标读者是 [目标读者],文章要包含 [要点],文章字数在 [字数] 字左右。"
  • 写一首诗: "请写一首关于 [主题] 的 [诗歌类型],例如五言绝句或七言律诗。"
  • 写一个故事: "请写一个关于 [主题] 的故事,故事的主角是 [角色],故事发生在 [地点],故事的结局是 [结局]。"

2. 问答系统

  • 简单问题: "请回答以下问题:[问题]"
  • 需要推理的问题: "请根据以下信息,回答这个问题:[信息] 问题:[问题]"
  • 开放性问题: "对于 [话题],你有什么看法?"

3. 机器翻译

  • 指定源语言和目标语言: "请将以下 [源语言] 翻译成 [目标语言]:[文本]"
  • 指定翻译风格: "请将以下英文句子翻译成中文,要求翻译风格正式/口语化:[文本]"

4. 文本摘要

  • 指定摘要长度: "请总结以下文本的主要内容,摘要长度不超过 100 字:[文本]"
  • 指定摘要要点: "请总结以下文本的主要内容,并重点突出 [要点]:[文本]"

5. 代码生成

  • 指定编程语言和功能: "请使用 [编程语言] 编写一个函数,实现 [功能]:"
  • 提供示例代码: "请参考以下示例代码,实现类似的功能:[示例代码]"

五、代码示例 (使用 OpenAI API)

python 复制代码
import openai

openai.api_key = "YOUR_API_KEY" #替换成自己的key

def get_completion(prompt, model="gpt-3.5-turbo"):
    messages = [{"role": "user", "content": prompt}]
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=0, # 控制生成结果的随机性
    )
    return response.choices[0].message["content"]

# 示例:翻译
prompt = "请将以下英文句子翻译成中文:This is an example."
response = get_completion(prompt)
print(response)

# 示例:总结
text = """
(这里放入需要总结的文本)
"""
prompt = f"""
请总结以下文本的主要内容,并用一句话概括:

{text}
"""
response = get_completion(prompt)
print(response)
相关推荐
AI_Gump4 分钟前
WhisperLiveKit上手及主观评测
人工智能·whisper
京东零售技术27 分钟前
用AI重塑电商,京东零售发布电商创新AI架构体系Oxygen
大数据·人工智能
love530love28 分钟前
Windows 系统部署 阿里团队开源的先进大规模视频生成模型 Wan2.2 教程——基于 EPGF 架构
运维·人工智能·windows·python·架构·开源·大模型
档案宝档案管理30 分钟前
零售企业档案检索慢?档案管理系统解决档案管理痛点
大数据·人工智能·档案·档案管理
说私域31 分钟前
定制开发开源AI智能名片S2B2C商城小程序在智慧零售价值链重构中的价值研究
人工智能·小程序·开源
41号学员44 分钟前
构建神经网络的两大核心工具
人工智能·pytorch·深度学习
无风听海1 小时前
神经网络之仿射变换
人工智能·深度学习·神经网络
37手游后端团队1 小时前
如何利用cursor高效重构代码
人工智能·后端
lihuayong1 小时前
从“链”到“图”:LangGraph如何终结LangChain的线性智能体
人工智能·langchain·langgraph