python中高效构建提示词

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

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

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

python 复制代码
name = "golemon"
print(f"I'm {name}")
print("I'm {}".format(name))

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

python 复制代码
name = "golemon"
age = 21
greeting = "Hello, my name is {} and I am {} years old.".format(name, age)

print(greeting)

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

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

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

python 复制代码
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.
python 复制代码
sentence = "输出格式:{{'score': 0.5, 'label': 'negative'}},输入的文本是:{}"
sentence = sentence.format("我今天很开心")
print(sentence)
# 输出格式:{'score': 0.5, 'label': 'negative'},输入的文本是:我今天很开心

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

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

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

还有format_map方法:

python 复制代码
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好使,毕竟少个啥没有被动态填充难以直观看出来(

python 复制代码
text = "我今天很开心"
sentence = f"输出格式:{{'score': 0.5, 'label': 'negative'}},输入的文本是:{text}"
print(sentence)
# 输出格式:{'score': 0.5, 'label': 'negative'},输入的文本是:我今天很开心
相关推荐
Ulyanov几秒前
《PySide6 GUI开发指南:QML核心与实践》 第八篇:性能优化大师——QML应用性能调优实战
python·qt·ui·性能优化·qml·系统仿真
Irene1991几秒前
数据库“水位线”概念详解:Oracle数据库的数据文件空间管理 和 Flink/流处理中的事件时间处理
数据库·oracle
2501_914245931 分钟前
如何处理Java应用重启导致的Oracle死锁_应用异常中断未释放锁与PMON清理延迟
jvm·数据库·python
Gerardisite5 分钟前
私域运营新利器:RPA驱动外部群多模态互动
java·人工智能·python·微信·自动化
漫游的渔夫9 分钟前
RAG 落地 3 个月,我才发现排序(Rerank)比检索更重要
前端·人工智能
baidu_3409988210 分钟前
golang如何集成Keycloak身份认证_golang Keycloak身份认证集成技巧
jvm·数据库·python
abc123456sdggfd10 分钟前
为什么宝塔面板安装phpMyAdmin后打不开_检查PHP版本绑定与888端口是否放行
jvm·数据库·python
qq_4138474012 分钟前
SQL利用子查询实现复杂条件排序_嵌套逻辑实现业务规则
jvm·数据库·python
2201_7610405914 分钟前
Redis如何应对缓存服务器网络分区带来的雪崩
jvm·数据库·python
ZPC821015 分钟前
Ubuntu 实时性优化(专属定制版,适配 fast_shm 通信)
linux·数据库·postgresql