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

news2025/1/30 16:37:24

如果说 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)

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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2284975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【现代深度学习技术】深度学习计算 | 参数管理

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…

c++ 定点 new

&#xff08;1&#xff09; 代码距离&#xff1a; #include <new> // 需要包含这个头文件 #include <iostream>int main() {char buffer[sizeof(int)]; // 分配一个足够大的字符数组作为内存池int* p new(&buffer) int(42); // 使用 placement new…

宫本茂的游戏设计思想:有趣与风格化

作为独立游戏开发者之一&#xff0c;看到任天堂宫本茂20年前的言论后&#xff0c;深感认同。 游戏研发思想&#xff0c;与企业战略是互为表里的&#xff0c;游戏是企业战略的具体战术体现&#xff0c;虚空理念的有形载体。 任天堂长盛不衰的关键就是靠简单有趣的游戏&#xf…

【AI论文】扩散对抗后训练用于一步视频生成总结

摘要&#xff1a;扩散模型被广泛应用于图像和视频生成&#xff0c;但其迭代生成过程缓慢且资源消耗大。尽管现有的蒸馏方法已显示出在图像领域实现一步生成的潜力&#xff0c;但它们仍存在显著的质量退化问题。在本研究中&#xff0c;我们提出了一种在扩散预训练后针对真实数据…

在线可编辑Excel

1. Handsontable 特点&#xff1a; 提供了类似 Excel 的表格编辑体验&#xff0c;包括单元格样式、公式计算、数据验证等功能。 支持多种插件&#xff0c;如筛选、排序、合并单元格等。 轻量级且易于集成到现有项目中。 具备强大的自定义能力&#xff0c;可以调整外观和行为…

【javaweb项目idea版】蛋糕商城(可复用成其他商城项目)

该项目虽然是蛋糕商城项目&#xff0c;但是可以复用成其他商城项目或者购物车项目 想要源码的uu可点赞后私聊 技术栈 主要为&#xff1a;javawebservletmvcc3p0idea运行 功能模块 主要分为用户模块和后台管理员模块 具有商城购物的完整功能 基础模块 登录注册个人信息编辑…

langchain基础(三)

Chain&#xff1a; 关于三个invoke&#xff1a; 提示模板、聊天模型和输出解析器都实现了langchain的runnable接口&#xff0c; 都具有invoke方法&#xff08;因为invoke方法是Runnable的通用调用方法&#xff09; 所以可以一次性调用多次invoke直接得到最终结果&#xff1a;…

Kafka 深入服务端 — 时间轮

Kafka中存在大量的延迟操作&#xff0c;比如延时生产、延时拉取和延时删除等。Kafka基于时间轮概念自定义实现了一个用于延时功能的定时器&#xff0c;来完成这些延迟操作。 1 时间轮 Kafka没有使用基于JDK自带的Timer或DelayQueue来实现延迟功能&#xff0c;因为它们的插入和…

一文掌握ADB的安装及使用

文章目录 一、什么是ADB&#xff1f;二、 安装ADB2.1 下载ADB2.2 配置环境变量 三、连接Android设备四、 常用ADB命令五、ADB高级功能5.1 屏幕截图和录制5.2 模拟按键输入5.3 文件管理5.4 系统设置管理5.5 系统操作指令5.6 日志操作指令5.7 APK操作指令5.8 设备重启和恢复 六、…

Linux系统下速通stm32的clion开发环境配置

陆陆续续搞这个已经很久了。 因为自己新电脑是linux系统无法使用keil&#xff0c;一开始想使用vscode里的eide但感觉不太好用&#xff1b;后面想直接使用cudeide但又不想妥协&#xff0c;想趁着这个机会把linux上的其他单片机开发配置也搞明白&#xff1b;而且非常想搞懂cmake…

OpenCSG月度更新2025.1

1月的OpenCSG取得了一些亮眼的成绩 在2025年1月&#xff0c;OpenCSG在产品和社区方面继续取得了显著进展。产品方面&#xff0c;推出了AutoHub浏览器自动化助手&#xff0c;帮助用户提升浏览体验&#xff1b;CSGHub企业版功能全面升级&#xff0c;现已开放试用申请&#xff0c…

AWTK 骨骼动画控件发布

Spine 是一款广泛使用的 2D 骨骼动画工具&#xff0c;专为游戏开发和动态图形设计设计。它通过基于骨骼的动画系统&#xff0c;帮助开发者创建流畅、高效的角色动画。本项目是基于 Spine 实现的 AWTK 骨骼动画控件。 代码&#xff1a;https://gitee.com/zlgopen/awtk-widget-s…

go到底是什么意思:对go的猜测或断言

go这个单词&#xff0c;简单地讲&#xff0c;表示“走或去”的意思&#xff1a; go v.去&#xff1b;走 认真想想&#xff0c;go是一个非常神秘的单词&#xff0c;g-和o-这两个字母&#xff0c;为什么就会表达“去&#xff1b;走”的意思呢&#xff1f;它的字面义或本质&…

学习数据结构(2)空间复杂度+顺序表

1.空间复杂度 &#xff08;1&#xff09;概念 空间复杂度也是一个数学表达式&#xff0c;表示一个算法在运行过程中根据算法的需要额外临时开辟的空间。 空间复杂度不是指程序占用了多少bytes的空间&#xff0c;因为常规情况每个对象大小差异不会很大&#xff0c;所以空间复杂…

DeepSeek--通向通用人工智能的深度探索者

一、词源与全称 “DeepSeek"由"Deep”&#xff08;深度&#xff09;与"Seek"&#xff08;探索&#xff09;组合而成&#xff0c;中文译名为"深度求索"。其全称为"深度求索人工智能基础技术研究有限公司"&#xff0c;英文对应"De…

Unity游戏(Assault空对地打击)开发(1) 创建项目和选择插件

目录 前言 创建项目 插件导入 地形插件 前言 这是游戏开发第一篇&#xff0c;进行开发准备。 创作不易&#xff0c;欢迎支持。 我的编辑器布局是【Tall】&#xff0c;建议调整为该布局&#xff0c;如下。 创建项目 首先创建一个项目&#xff0c;过程略&#xff0c;名字请勿…

(三)Session和Cookie讲解

目录 一、前备知识点 &#xff08;1&#xff09;静态网页 &#xff08;2&#xff09;动态网页 &#xff08;3&#xff09;无状态HTTP 二、Session和Cookie 三、Session 四、Cookie &#xff08;1&#xff09;维持过程 &#xff08;2&#xff09;结构 正式开始说 Sessi…

1.Template Method 模式

模式定义 定义一个操作中的算法的骨架&#xff08;稳定&#xff09;&#xff0c;而将一些步骤延迟&#xff08;变化)到子类中。Template Method 使得子类可以不改变&#xff08;复用&#xff09;一个算法的结构即可重定义&#xff08;override 重写&#xff09;该算法的某些特…

【PyTorch】5.张量索引操作

目录 1. 简单行、列索引 2. 列表索引 3. 范围索引 4. 布尔索引 5. 多维索引 个人主页&#xff1a;Icomi 在深度学习蓬勃发展的当下&#xff0c;PyTorch 是不可或缺的工具。它作为强大的深度学习框架&#xff0c;为构建和训练神经网络提供了高效且灵活的平台。神经网络作为…

[EAI-023] FAST: Efficient Action Tokenization for Vision-Language-Action Models

Paper Card 论文标题&#xff1a;FAST: Efficient Action Tokenization for Vision-Language-Action Models 论文作者&#xff1a;Karl Pertsch, Kyle Stachowicz, Brian Ichter, Danny Driess, Suraj Nair, Quan Vuong, Oier Mees, Chelsea Finn, Sergey Levine 论文链接&…