当前位置: 首页 > news >正文

提示词高级阶段学习day2.1-在提示词编写中对{}的使用教程

首先在 prompt engineering 中,使用 {} 通常是为了标识占位符变量

这些占位符可以在实际生成内容时被动态替换。

通过这种方式,prompt 可以更加通用和灵活,适用于不同的输入数据场景。

以下是一个体系化、结构化的教程,帮助理解如何在 prompt engineering 中使用 {}

1. 基本概念:占位符 {}

  • 占位符:在 prompt 中使用 {} 来表示需要替换的内容。例如,Hello, {name}! 这段 prompt 中的 {name} 就是一个占位符。
  • 目的:使用占位符可以创建一个模板,通过替换不同的内容生成不同的输出。

2. 占位符的应用场景

        1.动态内容插入

  • 将需要变动的部分用 {} 表示。
  • 例如:Generate a summary for the following article: {article_text}
  • 通过替换 {article_text},你可以快速为不同的文章生成总结。

        2.参数化生成

  • 可以将不同的变量传递给 prompt 来产生变化的结果。
  • 例如:Translate the following sentence from {source_language} to {target_language}: {sentence}

        3.数据驱动的输出

  • 如果有一个包含多个数据项的输入集,可以使用 {} 来创建更复杂的数据响应。
  • 例如:Create a personalized message for {customer_name}, who has a {subscription_plan} plan that expires on {expiry_date}.

3. 结构化的占位符使用方法

3.1 定义占位符模板

  • 定义 prompt 时,确保所有可能变化的内容都使用 {} 包裹。例如:

Generate a marketing email:
Subject: {email_subject}
Body: Dear {customer_name}, we have an amazing offer for you on {product}. Save {discount}%!
 

3.2 动态替换数据

  • 在实际使用时,通过代码或工具替换 {} 中的占位符。例如:

prompt = "Dear {customer_name}, we have an amazing offer for you on {product}. Save {discount}%!"
filled_prompt = prompt.format(customer_name="Alice", product="Laptop", discount=15)
print(filled_prompt)

输出:

Dear Alice, we have an amazing offer for you on Laptop. Save 15%!
 

3.3 多个占位符

  • Prompt 中可以使用多个占位符,根据需要插入不同的信息。例如:

Describe the main features of {product_name}, highlighting the benefits it brings to {target_audience}.
 

4. 高级应用技巧

4.1 条件占位符

  • 使用条件判断来决定哪些内容应该被插入。例如:

# 定义条件
is_active = True

# 根据条件设置替换内容
if is_active:
    status = "active"
    message = "Thank you for being a loyal customer!"
else:
    status = "inactive"
    message = "Please renew your subscription."

# 定义模板
prompt_template = "Your subscription is currently {status}. {message}"

# 进行替换
filled_prompt = prompt_template.format(status=status, message=message)

# 输出结果
print(filled_prompt)

4.2 循环与批量处理

  • 可以将一个 prompt 模板应用于多个数据集合,生成一批输出。例如:

customers = [
    {"name": "Alice", "plan": "Gold"},
    {"name": "Bob", "plan": "Silver"},
]

for customer in customers:
    print(f"Dear {customer['name']}, thank you for being a {customer['plan']} plan member.")
 

4.3 嵌套与递归

  • 复杂的 prompt 可能需要嵌套的占位符:

Create a detailed report for {region}:
- Market leader: {leader}
- Growth potential: {growth}%
- Key trends: {trends}
  - {trend_1}
  - {trend_2}
 

5. 实践中的常见误区

  1. 未定义占位符:确保 prompt 中的占位符与代码中的变量一致,避免未被替换的 {} 导致错误。
  2. 占位符命名问题:使用有意义、容易理解的占位符名称,避免混淆。例如,使用 {customer_name} 而不是 {name}
  3. 过度依赖变量插入:虽然 {} 能够灵活替换内容,但过多的占位符可能使 prompt 过于复杂,难以调试。

相关文章:

提示词高级阶段学习day2.1-在提示词编写中对{}的使用教程

首先在 prompt engineering 中,使用 {} 通常是为了标识占位符或变量, 这些占位符可以在实际生成内容时被动态替换。 通过这种方式,prompt 可以更加通用和灵活,适用于不同的输入数据场景。 以下是一个体系化、结构化的教程&…...

2024年,每一个大模型都躲不过容嬷嬷和紫薇

2024年还不上视频生成的大模型公司,还能上桌吃饭吗? 连最积极搞AI的李彦宏,在这件事上也迟疑了。 “百度不碰Sora类的视频生成方向。”李彦宏在近期的2024年Q3总监会上说道。原因在于,10年、20年都可能难以商业化应用。 从Open…...

SpringBoot之RedisTemplate基本配置

公司要求redis配置密码使用密文,但是程序使用的是spring默认的redisTemplate,那么就需要修改配置实现密码加解密。 先搞个加密工具类: public class SM2Encryptor {// 加密,使用公钥public static String encryptText(String pub…...

SparseRCNN 模型,用于目标检测任务

SparseRCNN 模型,用于目标检测任务 import logging import math from typing import Listimport numpy as np import torch import torch.distributed as dist import torch.nn.functional as F from torch import nn #项目完整代码下载链接:https://download.csdn.net/downl…...

【AIGC】第一性原理下的ChatGPT提示词Prompt设计:系统信息与用户信息的深度融合

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯第一性原理与ChatGPT提示词Prompt设计应用第一性原理于ChatGPT提示词Prompt设计系统信息和用户信息的融合实际应用结论 💯系统信息与用户信息的定义和重要性系…...

DeepSpeed性能调优与常见问题解决方案

1. 引言 什么是DeepSpeed? DeepSpeed是由微软开源的深度学习训练优化库,旨在帮助研究人员和工程师高效地训练大规模深度学习模型。基于PyTorch框架,DeepSpeed提供了一系列先进的技术,如ZeRO(Zero Redundancy Optimiz…...

【GESP】C++一级练习BCQM3052,鸡兔同笼

GESP一级知识点:for循环和if的应用。 题目题解详见:https://www.coderli.com/gesp-1-bcqm3052/ 【GESP】C一级练习BCQM3052,鸡兔同笼 | OneCoderGESP一级知识点:for循环和if的应用。https://www.coderli.com/gesp-1-bcqm3052/ …...

Android面试之5个性能优化相关的深度面试题

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”,和我一起每天进步一点点 面试题目1:如何优化Android应用的启动速度? 解答: 优化Android应用的启动速度可以从以下几个方面入手: 1、 减少主线程工…...

R语言机器学习算法实战系列(六)K-邻近算法 (K-Nearest Neighbors)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍教程下载数据加载R包导入数据数据预处理数据描述数据切割调节参数构建模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve保存模型总结系统信息介绍 K-邻…...

FPGA图像处理之构建3×3矩阵

免责声明:本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济…...

【Linux】进程间通信(匿名管道)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12625432.html 目录 进程间通信目的 进程间通信发展 进程间通信分类 管道 System V IPC POSI…...

memset()函数的实现

memset()函数的实现 _CRTIMP void* __cdecl memset (void*, int, size_t); memset()函数的实现 文章目录 memset()函数的实现memset()函数 memset()函数 _CRTIMP void* __cdecl memset (void*, int, size_t);void* memset(void* src, int val, size_t count) {char *char_src…...

STM32CUBEIDE FreeRTOS操作教程(七):queue队列

STM32CUBEIDE FreeRTOS操作教程(七):queue队列 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件,不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板为例&#xff…...

类型转换与字符串操作:数据的灵活变形!

Java中的隐式与强制类型转换:让你轻松驾驭数据 在编程的世界中,数据的类型如同游戏中的角色,赋予它们不同的特性与能力。而在Java中,隐式类型转换与强制类型转换就像是两把利剑,帮助我们在这个复杂的世界中游刃有余。…...

动态规划18:188. 买卖股票的最佳时机 IV

动态规划解题步骤: 1.确定状态表示:dp[i]是什么 2.确定状态转移方程:dp[i]等于什么 3.初始化:确保状态转移方程不越界 4.确定填表顺序:根据状态转移方程即可确定填表顺序 5.确定返回值 题目链接:188.…...

YOLOv8改进 - 注意力篇 - 引入ShuffleAttention注意力机制

一、本文介绍 作为入门性篇章,这里介绍了ShuffleAttention注意力在YOLOv8中的使用。包含ShuffleAttention原理分析,ShuffleAttention的代码、ShuffleAttention的使用方法、以及添加以后的yaml文件及运行记录。 二、ShuffleAttention原理分析 ShuffleA…...

基于Multisim的8路彩灯循环控制电路设计与仿真

1)由八个彩灯LED的明暗构成各种彩灯图形; 2)彩灯依次显示的图形: 彩灯从左至右渐亮至全亮(8个CP) 彩灯从左至右渐灭至全灭(8个CP) 彩灯从右至左渐亮至全亮(8个CP) 彩灯从右至左渐灭至全灭(8个CP) 彩灯全亮(1个CP) 彩灯全灭(1个CP) 彩灯全亮(1个CP) 彩灯全灭(1个CP) 3)彩灯图形循…...

完整的模型训练套路 pytorch

**前置知识: 1、 (1).train():将模型设置为训练模式 (2).eval():将模型设置为评估模式 不写也可以(只对特定网络模型有作用,如含有Dropout的) 2、 with…...

2024年十大前沿图像分割模型汇总:工作机制、优点和缺点介绍

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...

Notepad++将搜索内容所在行选中,并进行复制等操作

背景 Notepad在非常多的数据行内容中,按照指定内容检索,并定位到具体行,而后对内容行的数据进行复制、剪切、删除等处理动作。 操作说明 检索并标记所在行 弹出搜索框:按下 Ctrl F。 输入查找字符串:在搜索框中输入要…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

python打卡第47天

昨天代码中注意力热图的部分顺移至今天 知识点回顾: 热力图 作业:对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图,展示模…...

RFID推动新能源汽车零部件生产系统管理应用案例

RFID推动新能源汽车零部件生产系统管理应用案例 一、项目背景 新能源汽车零部件场景 在新能源汽车零部件生产领域,电子冷却水泵等关键部件的装配溯源需求日益增长。传统 RFID 溯源方案采用 “网关 RFID 读写头” 模式,存在单点位单独头溯源、网关布线…...

【Java基础】​​向上转型(Upcasting)和向下转型(Downcasting)

在面向对象编程中,转型(Casting) 是指改变对象的引用类型,主要涉及 继承关系 和 多态。 向上转型(Upcasting) ⬆️ 定义 将 子类对象 赋值给 父类引用(自动完成,无需强制转换&…...

数据库管理与高可用-MySQL故障排查与生产环境优化

目录 #1.1MySQL单案例故障排查 1.1.1MySQL常见的故障排查 1.1.2MySQL主从故障排查 #2.1MySQL优化 2.1.1硬件方面的优化 2.1.2进程方面的优化 #3.1MySQL存储引擎 3.1.1 MyISAM存储引擎 3.1.2 InnoDB存储引擎 1.1MySQL单案例故障排查 1.1.1MySQL常见的故障排查 (1&…...

RK3568项目(七)--uboot系统之外设与PMIC详解

目录 一、引言 二、按键 ------>2.1、按键种类 ------------>2.1.1、RESET ------------>2.1.2、UPDATE ------------>2.1.3、PWRON 部分 ------------>2.1.4、RK809 PMIC ------------>2.1.5、ADC按键 ------------>2.1.6、ADC按键驱动 ------…...

Python 解释器安装全攻略(适用于 Linux / Windows / macOS)

目录 一、Windows安装Python解释器1.1 下载并安装Python解释1.2 测试安装是否成功1.3 设置pip的国内镜像------永久配置 二、macOS安装Python解释器三、Linux下安装Python解释器3.1 Rocky8.10/Rocky9.5安装Python解释器3.2 Ubuntu2204/Ubuntu2404安装Python解释器3.3 设置pip的…...