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

python中高效构建提示词

在做大模型应用项目时,经常需要处理system_prompt和user_prompt这两个提示词,对于样例、用户输入的query等需要填入。用最普通的拼接虽然很快,但是后期迭代会有些心智负担。

最近找了一个不错的方法,就是用python的.format方法,将内容动态填充到字符串中。

这个操作其实我们之前一定有过接触,就是形如类似的:

name = "golemon"
print(f"I'm {name}")
print("I'm {}".format(name))

只需要在字符串中用{}包裹即可进行填充。

name = "golemon"
age = 21
greeting = "Hello, my name is {} and I am {} years old.".format(name, age)print(greeting)

在提示词中会经常出现下面形式:

请按照一下格式输出:{"score":"打出的分","reason":"给出这个分数的原因"}
...
例子如下:{...}{...}

在上面形式中,我们只是将{}包裹的当作字符串,而不是要填充的内容,这个时候可以用{{}}进行包裹。{{}}在我理解,就是先用{}进行包裹,再用{}进行填充,例如:

name = "golemon"
age = 21
greeting = "Hello, my name is {} and I am {} years old.".format({name}, age)print(greeting)
# Hello, my name is {'golemon'} and I am 21 years old.
sentence = "输出格式:{{'score': 0.5, 'label': 'negative'}},输入的文本是:{}"
sentence = sentence.format("我今天很开心")
print(sentence)
# 输出格式:{'score': 0.5, 'label': 'negative'},输入的文本是:我今天很开心

字符串调用 .format()有非常多的使用方法,可以自行搜索了解。

在提示词构建中,通常用的是{xxx},xxx表示用其他变量动态填充到xxx这里。

sentence = "输出格式:{{'score': 0.5, 'label': 'negative'}},输入的文本是:{text}"
sentence = sentence.format(text="我今天很开心")
print(sentence)
# 输出格式:{'score': 0.5, 'label': 'negative'},输入的文本是:我今天很开心

还有format_map方法:

sentence = "输出格式:{{'score': 0.5, 'label': 'negative'}},输入的文本是:{text1}, {text2}"
data = {"text1": "我今天很开心","text2": "我今天很难过"
}
sentence = sentence.format_map(data)
print(sentence)
# 输出格式:{'score': 0.5, 'label': 'negative'},输入的文本是:我今天很开心, 我今天很难过

f-string也可以用来表示,但是对于提示词构建来说不如format好使,毕竟少个啥没有被动态填充难以直观看出来(

text = "我今天很开心"
sentence = f"输出格式:{{'score': 0.5, 'label': 'negative'}},输入的文本是:{text}"
print(sentence)
# 输出格式:{'score': 0.5, 'label': 'negative'},输入的文本是:我今天很开心
http://www.lryc.cn/news/605678.html

相关文章:

  • 关于PHP学习
  • 【BUG】nvm无法安装低版本Node.js:The system cannot find the file specified解决方案
  • iOS15及以后国际化如何设置.xcstrings文件默认语言
  • Jmeter全局变量跨线程组的使用
  • ShimetaPi M4-R1:国产高性能嵌入式平台的异构计算架构与OpenHarmony生态实践
  • Video Pixel Repetition
  • Spring AI MCP 技术从使用到项目实战深度解析
  • 数据结构:多项式加法(Polynomial Addition)
  • Linux多线程线程控制
  • PHP开发
  • 《质光相济:Three.js中3D视觉的底层交互逻辑》
  • Redis高频问题全解析
  • 深度理解 linux 系统内存分配
  • [特殊字符] 数字孪生 + 数据可视化:实战经验分享,让物理世界数据 “会说话”
  • Java【代码 21】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理
  • ubuntu24.04环境下树莓派Pico C/C++ SDK开发环境折腾记录
  • STM32学习记录--Day4
  • 云原生运维与混合云运维:如何选择及 Wisdom SSH 的应用
  • AI编程新工具!使用 LangGraph 构建复杂工作流
  • Cesium 快速入门(七)材质详解
  • 数据结构 ArrayList与顺序表
  • 计算机网络学习(一、Cisco Packet Tracer软件安装)
  • Redis线程模型讨论
  • 无人机飞控系统3D (C++)实践
  • 思途JSP学习 0731
  • Druid数据库连接池
  • MongoDB系列教程-第四章:MongoDB Compass可视化和管理MongoDB数据库
  • 使用 Elasticsearch 和 AI 构建智能重复项检测
  • Jmeter 命令行压测、HTML 报告、Jenkins 配置目录
  • HTML-取消div,a等标签点击效果