大模型提示词初探

大模型提示词初探

在与大模型交互的过程中,提示词起着至关重要的作用,它犹如给模型下达的精准任务指令,直接影响着模型生成内容的准确性、高效性与合理性。合理运用提示词,能够有效减少模型出现错误和幻觉的情况,从而获取更符合期望的结果。

https://www.bilibili.com/video/BV1s24y1F7eq?vd_source=d4713a9f919d1c45d1bd18250fbe957c&spm_id_from=333.788.videopod.sections 视频教程(建议观看)

https://api-docs.deepseek.com/zh-cn/prompt-library/ deepseek 的一些例子
在这里插入图片描述

一、提示词的迭代优化

可能并不存在一个通用的完美提示词,能适用于所有应用场景。针对特定的应用,我们需要不断迭代提示词,以达到最佳效果。

二、编写清晰而具体的指示

  1. 策略 1:使用定界符
    • 定界符能够帮助大模型清晰地区分文本段信息和提示词内容。常见的定界符包括三重引号 (“”")、三重反引号 ()、三重破折号(---)、尖括号(<> )以及XML标签( <tag> </tag>)等。例如,在提供一段文本让模型进行处理时,使用定界符将文本包裹起来,如f"你好,请总结下这个句话{text}```",这样模型就能明确知道需要对定界符内的文本进行总结操作。
  2. 策略 2:要求结构化输出
    • 当我们期望模型的输出具有特定结构时,可以明确要求其以某种格式输出,例如 HTML、JSON 格式等。这有助于后续对输出结果的进一步处理和分析。比如,我们可以给出提示f"你好,请总结下这个句话```{text}```,并且使用json格式输出,包含原文和总结 ",这样模型就会按照 JSON 格式返回包含原文和总结内容的结果,方便我们进行数据提取和处理。
  3. 策略 3:检查条件是否满足
    • 在某些情况下,需要模型先检查完成任务所需的假设条件是否满足。例如,对于一段关于茶叶制作知识的文本,我们可以要求模型先判断是否为绿茶制作知识,如果是再进行总结。如prompt = (f"你好,请总结下面这段绿茶知识的制作步骤,首先要先检查这段内容包含绿茶制作的知识,不包含就不总结" f"1,第一步" f"2,第二步" f"n,弟n歩" f"```{text2}```),这里的text2是需要检查和总结的茶叶制作相关文本。
  4. 策略 4:少样本提示
    • 通过给出成功完成任务的示例,能引导模型更好地理解任务要求并执行任务。例如,对于总结绿茶制作步骤的任务,我们可以先提供一个成功的示例,如prompt = (f"你好,请总结下面这段绿茶知识的制作步骤,按照成功的示例总结" f"```{text}```" f"成功的示例:" f"第一步:购买原料" f"第二步:化工加工 "),其中text是绿茶制作步骤的文本,模型会参考示例的格式和思路来总结给定文本中的绿茶制作步骤。

三、给模型思考的时间

  1. 策略 1:指定完成任务的步骤
    • 明确列出完成任务的具体步骤,有助于模型按部就班地进行思考和处理。例如,对于判断一个公式是否正确的任务,我们可以指定步骤:prompt = (f"你好,请计算如下的公式是否正确" f"第一步:你需要确认这是一个加法运算,如果是输出:yes" f"第二步:输出加法左边的值和右边的值" f"第三步:计算加法是否正确" f"再你确认这个公式是否正确前,你需要自己先计算下" f"```{text}```),这里text为公式1 + 256 = 258,模型会按照这些步骤进行计算和判断。
  2. 策略 2:指示模型在得出结论前自行想出解决方案
    • 让模型在给出最终结论之前,先自行思考并尝试找出解决方案,有助于提高模型处理问题的准确性和可靠性。例如在上述判断公式是否正确的例子中,我们要求模型在确认公式是否正确之前先自行计算,这就是给模型留出思考空间,让其基于自身的计算和分析来给出最终结论。

四、代码示例及测试

以下是使用openai库(这里假设与deepseek - chat模型交互)来测试不同提示词策略的代码示例:

from openai import OpenAI
# for backward compatibility, you can still use `https://api.deepseek.com/v1` as `base_url`.
client = OpenAI(api_key="<your api key>", base_url="https://api.deepseek.com")

# 分割提示词和实际的文本内容
text = f"""
你好,加油\
时间机器
"""
prompt = f"你好,请总结下这个句话```{text}```"

# 结构化输出
prompt = f"你好,请总结下这个句话```{text}```,并且使用json格式输出 ,原文和总结 "

# 检查条件是否满足
text = f"""
这个是一份绿茶,需要先采摘,再人工烘焙,包装才能售卖
"""
# 验证
text2 = f"""
这个是一份红茶,需要先采摘,再人工烘焙,包装才能售卖
"""
prompt = (f"你好,请总结下面这段绿茶知识的制作步骤,首先要先检查这段内容包含绿茶制作的知识,不包含就不总结"
          f"1,第一步"
          f"2,第二步"
          f"n,弟n歩"
          f"```{text2}```")

# 少样本提示
text = f"""
这个是一份绿茶,需要先采摘,再人工烘焙,包装才能售卖
"""
prompt = (f"你好,请总结下面这段绿茶知识的制作步骤,按照成功的示例总结"
          f"```{text}```"
          f"成功的示例:"
          f"第一步:购买原料"
          f"第二步:化工加工 ")

# 指定完成任务的步骤
# 指示模型在得出结论前先让模型自行想出解决方案
text = "1 + 256 = 258"
prompt = (f"你好,请计算如下的公式是否正确"
          f"第一步:你需要确认这是一个加法运算,如果是输出:yes"
          f"第二步:输出加法左边的值和右边的值"
          f"第三步:计算加法是否正确"
          f"再你确认这个公式是否正确前,你需要自己先计算下"
          f"```{text}```")

response = client.chat.completions.create(
    model="deepseek - chat",
    messages=[
        {"role": "system", "content": "你是一名资深的编辑作者"},
        {"role": "user", "content": prompt},
    ],
    max_tokens=1024,
    temperature=0.7,
    stream=False
)
print(response)
print(response.choices[0].message.content)

通过运行上述代码,我们可以针对不同的提示词策略进行测试,观察模型在不同指令下的输出效果,从而不断优化提示词,使其更好地满足我们的需求。需要注意的是,在实际应用中,我们需要根据具体任务和模型的表现,灵活调整和完善提示词,以实现最佳的交互效果。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Navicat 连接 SQL Server 详尽指南

Navicat 是一款功能强大的数据库管理工具&#xff0c;它提供了直观的图形界面&#xff0c;使用户能够轻松地管理和操作各种类型的数据库&#xff0c;包括 SQL Server。本文将详尽介绍如何使用 Navicat 连接到 SQL Server 数据库&#xff0c;包括安装设置、连接配置、常见问题排…

【Linux】进程间通信-> 共享内存

共享内存原理 在C语言/C中&#xff0c;malloc也可以在物理内存申请空间&#xff0c;将申请的物理内存空间通过页表映射到进程地址空间&#xff0c;将内存空间的起始地址&#xff08;虚拟地址&#xff09;返回&#xff0c;进而进程可以使用虚拟地址通过页表映射到物理内存的方式…

高仿CSDN编辑器,前端博客模板

高仿CSDN编辑器纯前端模板&#xff0c;使用的js、html、vue、axios等技术&#xff0c;网络请求库已进行封装&#xff0c;可以按需调整界面,需要源码联系(4k左右)。 1.支持代码高亮 2.支持目录点击定位 3.支持文件上传、图片上传&#xff08;需要自己写后端接口&#xff09; 4.M…

国产低代码框架zdppy开发笔记002 标准的接口响应

前言 通过前面的学习, 我们已经知道了zdppy_api和zdppy_req的基本用法, 接下来我们会在学习中多次用到这两个框架. 我们已经知道了该如何响应一个字符串,但是我们该如何响应json数据呢? 在zdppy_api中,我们定义了一组规范的API响应, 我们慢慢来看看. 规范的响应 首先来看…

实用技巧:关于 AD修改原理图库如何同步更新到有原理图 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/144738332 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

牛客周赛 Round 74

D. 预知 题目链接 题意有点绕&#xff0c;简单来说是其中一堆牌&#xff0c;问最少预知几张才能保证任取两张都不会导致种类重复。一开始对每张牌种类不是已知的&#xff0c;已知的是每种牌的牌数。 思路就是相当于把其中一种明牌&#xff0c;保证任取两张都不会导致种类重复…

【linux学习指南】SIGCHLD信号

文章目录 &#x1f4dd;SIGCHLD信号&#x1f6a9;总结 &#x1f4dd;SIGCHLD信号 进程⼀章讲过⽤wait和waitpid函数清理僵⼫进程,⽗进程可以阻塞等待⼦进程结束,也可以⾮阻塞地查询是否有⼦进程结束等待清理(也就是轮询的⽅式)。采⽤第⼀种⽅式,⽗进程阻塞了就不能处理⾃⼰的⼯…

AI助力SEO优化的关键词策略解析

内容概要 在数字营销的快速发展中&#xff0c;人工智能&#xff08;AI&#xff09;正逐步成为提升搜索引擎优化&#xff08;SEO&#xff09;效果的重要工具。关键词策略是SEO成功的关键要素之一&#xff0c;而AI技术的应用使得这一过程更加高效和精准。在关键词研究中&#xf…

PHP-Casbin v4.0.0 发布,支持 ACL、RBAC、ABAC 等模型的访问控制框架

PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架&#xff0c;支持 ACL、RBAC、ABAC 多种模型。它采用了元模型的设计思想&#xff0c;支持多种经典的访问控制方案&#xff0c;如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。 更新内容&#xff1a; http…

解决Git中没有小绿勾与红叉叉的问题

一、检查自己的软件 必须安装Git和Tortoisegit&#xff08;也就是俗称的小乌龟&#xff09;这两个软件。 Git的下载地址&#xff1a; CNPM Binaries Mirrorhttps://registry.npmmirror.com/binary.html?pathgit-for-windows/ 寻找与自己电脑相配的软件版本就可以了。 Tor…

搭建跨境电商企业博客的指南

在跨境电商领域&#xff0c;企业博客不仅是展示品牌形象的窗口&#xff0c;也是连接全球客户的重要桥梁。一个精心搭建的企业博客能够提升品牌知名度、增强客户信任&#xff0c;并促进销售。 搭建企业博客的必要性 1. 建立品牌权威&#xff1a;通过高质量的内容&#xff0c;企…

渗透学习笔记(十一)Burp Suite 总结

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…

课设CLion连接Ubuntu14makeQt项目出错解决汇总

在这之前需要注意以下几点&#xff1a; 1、需要 确保CLion能连接Ubuntu14 2、cmakelist.txt文件配置 3、知道部署路径&#xff1a; 问题一&#xff1a;/usr/bin/ld: cannot open output file GreedySnake: Is a directory 否则就会出现make以后应该生成一个可执行文件&…

【GO基础学习】gin的使用

文章目录 模版使用流程参数传递路由分组数据解析和绑定gin中间件 模版使用流程 package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {// 1.创建路由r : gin.Default()// 2.绑定路由规则&#xff0c;执行的函数// gin.Context&#x…

磁编码器(Magnetic Encoder)

磁编码器&#xff08;Magnetic Encoder&#xff09;是一种传感器&#xff0c;它通过检测磁性材料的磁场变化来测量旋转或线性位置。编写用于读取磁编码器数据的C语言程序时&#xff0c;您需要根据具体的硬件接口和编码器类型进行调整。以下是一个基本的框架&#xff0c;假设我们…

Qt Creator项目构建配置说明

QT安装好之后&#xff0c;在安装目录的Tools\QtCreator\bin下找到qtcreator.exe文件并双击打开 点击文件-新建文件或项目 选择Qt Widgets Application 设置项目名称以及路径 make工具选择qmake&#xff08;cmake还未尝试过&#xff09; 设置主界面对应类的名称、父类&#…

智能边缘计算×软硬件一体化:开启全场景效能革命新征程(企业开发者作品)

边缘智能技术快速迭代&#xff0c;并与行业深度融合。它正重塑产业格局&#xff0c;催生新产品、新体验&#xff0c;带动终端需求增长。为促进边缘智能技术的进步与发展&#xff0c;拓展开发者的思路与能力&#xff0c;挖掘边缘智能应用的创新与潜能&#xff0c;高通技术公司联…

【React】- 跨域PDF预览、下载(改文件名)、打印

我们经常会碰到跨域来方位PDF&#xff0c;同时需要下载、打印的需求&#xff0c;通常由于浏览器的安全策略&#xff0c;可以预览&#xff0c;但是下载和打印可能会受限&#xff0c;这时候怎么办呢&#xff1f; 1.创建一个隐藏的标签 要下载 iframe 中的 PDF 文件&#xff0c;…

Ps:创建数据驱动的图像

在设计实践中&#xff0c;常常需要处理大量内容变化但设计格式统一的任务&#xff0c;例如批量生成名片、工作证、学生证、胸牌、奖状或证书甚至图册。这些工作如果逐一手动制作&#xff0c;不仅耗时费力&#xff0c;还容易出错。 为解决这一问题&#xff0c;Photoshop 提供了强…

Kotlin 协程基础知识总结六 —— 协程 Flow 的综合应用

1、项目描述与搭建 &#xff08;P92~P94&#xff09;我们会将几个 Flow 的应用实例放在同一个 Demo 中&#xff0c;主页就是一个 Activity 里包含一个按钮&#xff0c;点击按钮跳转到对应的功能展示页面上。整体架构采用一个 Activity 多个 Fragment 的结构&#xff0c;结合 J…