【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)

import openaiopenai.api_key = "YOUR_API_KEY" #替换成自己的keydef 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.mzph.cn/pingmian/68469.shtml

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

相关文章

设计壁纸时,色彩选择是至关重要的一步

在设计壁纸时,色彩选择是至关重要的一步,它直接影响到壁纸的整体视觉效果和情感传达。以下是一些色彩选择的技巧,帮助你在设计中更好地运用色彩: 一、了解色彩理论 色彩轮: 基本颜色:红、黄、蓝是三原色&am…

Linux shell脚本笔记-One

前言 本文主要汇总有关shell脚本常用的知识点,有时候使用忘记某些用法指令,特此汇总方便后续查阅。 一.shell脚本编写的头部定义: 定义的shell脚本头部有多种写法,具体根基实际系统结构处理,如下: #!/bin/sh &#xff…

二次封装的方法

二次封装 我们开发中经常需要封装一些第三方组件,那么父组件应该怎么传值,怎么调用封装好的组件原有的属性、插槽、方法,一个个调用虽然可行,但十分麻烦,我们一起来看更简便的方法。 二次封装组件,属性怎…

c++多态

1.多态的概念 通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同 的状态。 2.多态的定义及实现 2.1多态的构成条件 多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为…

docker安装Redis:docker离线安装Redis、docker在线安装Redis、Redis镜像下载、Redis配置、Redis命令

一、镜像下载 1、在线下载 在一台能连外网的linux上执行docker镜像拉取命令 docker pull redis:7.4.0 2、离线包下载 两种方式: 方式一: -)在一台能连外网的linux上安装docker执行第一步的命令下载镜像 -)导出 # 导出镜像…

【仪器分析】FACTs-幅度

** 当然,这回是一篇没有插图的文章,但是有足够多的描述可以用来想象。 我拿这个系列当作前传试试水 引言。正弦信号可能会发生怎样的变化? ** 近日学FACTs,险些成为传函丁真, 如果从仪器角度考察正弦信号的测量&…

C语言-运算符

1. 按位与运算符(&) 按位与运算符对两个整数的每一位执行“与”操作。只有当两个相应位都为 1 时,结果才为 1 ;否则为 0。 // 示例 int a 5; // 二进制: 0101 int b 3; // 二进制: 0011 int result a & b; …

解决.NET程序通过网盘传到Linux和macOS不能运行的问题

问题描述:.net程序用U盘传到虚拟机macOS和Linux可以正常运行,但是网盘传过去就不行。 解决方法: 这是文件权限的问题。当你通过U盘将文件传输到虚拟机的macOS和Linux系统时,文件的权限和所有权可能得到了保留或正确设置。但如果…

TCP是怎么判断丢包的?

丢包在复杂的网络环境中,是一种常见的现象。 TCP(传输控制协议)作为一种可靠传输协议,内置了多种机制来检测和处理丢包现象,从而保证数据的完整性和传输的可靠性。本文将介绍TCP判断丢包的原理和机制。 一、TCP可靠传…

牛客周赛 Round 77 题解

文章目录 A-时间表B-数独数组D-隐匿社交网络E-1or0 A-时间表 签到题 #include <bits/stdc.h> using namespace std;int main() {int a[6] {20250121,20250123,20250126,20250206,20250208,20250211};int n; cin >> n;cout << a[n - 1];return 0; }B-数独数…

二分查找题目:寻找两个正序数组的中位数

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;寻找两个正序数组的中位数 出处&#xff1a;4. 寻找两个正序数组的中位数 难度 8 级 题目描述 要求 给定两个大…

【unity游戏开发之InputSystem——07】InputSystem+UGUI配合使用(基于unity6开发介绍)

文章目录 一、InputSystem+UGUI配合使用1、官方文档参考2、切换到新的输入模块二、UGUI中的新输入系统输入模块参数相关1、Send Pointer Hover To Parent2、Move Repeat Delay3、Move Repeat Rate4、XR Tracking Origin5、Deselect On Background CLick6、Pointer Behavior7、S…

uniapp使用uni.navigateBack返回页面时携带参数到上个页面

我们平时开发中也经常遇到这种场景&#xff0c;跳转一个页面会进行一些操作&#xff0c;操作完成后再返回上个页面同时要携带着一些参数 其实也很简单&#xff0c;也来记录一下吧 假设从A页面 跳转到 B页面 A页面 直接上完整代码了哈&#xff0c;很简单&#xff1a; <t…

国内优秀的FPGA设计公司主要分布在哪些城市?

近年来&#xff0c;国内FPGA行业发展迅速&#xff0c;随着5G通信、人工智能、大数据等新兴技术的崛起&#xff0c;FPGA设计企业的需求也迎来了爆发式增长。很多技术人才在求职时都会考虑城市的行业分布和发展潜力。因此&#xff0c;国内优秀的FPGA设计公司主要分布在哪些城市&a…

汇编基础语法及其示例

1.汇编指令 1.1汇编指令的基本格式 <opcode>{<cond>}{s} <Rd> , <Rn> , <shifter_operand> <功能码>{<条件码>}{cpsr影响位} <目标寄存器> , <第一操作寄存器> , <第二操作数> 注&#xff1a;第一操作寄存器…

Direct2D 极速教程(1) —— 画图形

极速导航 Direct2D 简介创建新项目&#xff1a;001-DrawGraphics弄一个白窗口在窗口上画图 Direct2D 简介 大家在学 WINAPI 的时候的时候有没有想过&#xff0c;怎么在一副窗口上画图呢&#xff1f;大家知道 Windows 系统是 GUI 图形用户界面 系统&#xff0c;以 Graphics 图形…

Android13源码下载和编译过程详解

前言 作为Android开发者人人都应该有一份自己Android源码,这样我们就可以随时对自己有疑惑的地方通过亲手调试来加强理解 一 源码下载 1.1 配置要求 官方推荐配置请参考&#xff1a;AOSP使用入门文档&#xff0c;重点有如下几项&#xff1a; 1.1.1 硬件配置要求 至少需要…

Linux之详谈——权限管理

目录 小 峰 编 程 ​编辑 一、权限概述 1、什么是权限 2、为什么要设置权限 3、Linux中的权限类别- 4、Linux中文件所有者 1&#xff09;所有者分类&#xff08;谁&#xff09; 2&#xff09;所有者的表示方法 ① u(the user who owns it)&#xff08;属主权限&…

python Flask-Redis 连接远程redis

当使用Flask-Redis连接远程Redis时&#xff0c;首先需要安装Flask-Redis库。可以通过以下命令进行安装&#xff1a; pip install Flask-Redis然后&#xff0c;你可以使用以下示例代码连接远程Redis&#xff1a; from flask import Flask from flask_redis import FlaskRedisa…

Go Fx 框架使用指南:深入理解 Provide 和 Invoke 的区别

1. 什么是 Fx 框架&#xff1f; Fx 是一个基于 Go 语言的依赖注入框架&#xff0c;专注于简化应用程序的生命周期管理和依赖的构建。在复杂的应用程序中&#xff0c;Fx 通过模块化的设计方式将组件连接起来&#xff0c;使开发者能够更高效地管理依赖关系。 Fx 的核心理念是&a…