基于prompt-poet进行了灵活的提示词模版管理
以前简单介绍过prompt-poet的使用,同时也进行了一些扩展(比如支持s3,oss,等加载的loader 集成)
实际上使用好prompt-poet 可以简化不少我们的提示词管理能力,实现灵活的个性化提示词能力,以下是一个简单的
使用说明
参考结构管理
prompt-poet 默认支持加载本地文件系统进行模版的处理,基于本地文件夹的组织管理我们可以实现灵活的基于业务的提示词拆分,如下图,比如每个编码可能是不同的业务类型,每个业务都会有自己的提示词模版,同时我们会结合实际业务差传递不同的
上下文数据
代码使用(简单示例)
from prompt_poet import Prompt
def mydemo():
return "demo"
template_data = {
"character_name": "Character Assistant",
"username": "dalong",
"mydemo": mydemo
}
# 此处基于不同的业务编码加载不同的提示词模版,对于上下文数据可以结合实际业务生成
prompt = Prompt(
template_path="prompt/00001/app.yaml.j2",
template_data=template_data
)
print(prompt.messages)
因为prompt-poet基于了jinja2 模版引擎,我们可以灵活的通过include 导入特定规则的提示词模版
对于模版我们可以提供基于业务完全隔离的,当然也可以提供直接基于业务分层的模式(比如包含common 层,特定业务层)
说明
目前prompt-poet 缺少macro 的能力,同时对于自定义loader 也缺少支持,暂时支持的loader 只有package 以及fs 模式的,对于简单业务玩法,目前已经够用了,对于希望自由灵活生成提示词管理的prompt-poet 的思路还是很值得学习借鉴的