01。
概述

02。
安装使用
安装
pip install prompt-poet
基础使用
import os
import getpass
from prompt_poet import Prompt
from langchain import ChatOpenAI
# Uncomment if you need to set OPENAI_API_KEY.
# os.environ["OPENAI_API_KEY"] = getpass.getpass()
raw_template = """
- name: system instructions
role: system
content: |
Your name is {{ character_name }} and you are meant to be helpful and never harmful to humans.
- name: user query
role: user
content: |
{{ username}}: {{ user_query }}
- name: response
role: user
content: |
{{ character_name }}:
"""
template_data = {
"character_name": "Character Assistant",
"username": "Jeff",
"user_query": "Can you help me with my homework?"
}
prompt = Prompt(
raw_template=raw_template,
template_data=template_data
)
model = ChatOpenAI(model="gpt-4o-mini")
response = model.invoke(prompt.messages)
03。
Prompt 模板
-
渲染:首先,Jinja2 对输入数据进行处理。在这个阶段,执行控制流程逻辑,对数据进行验证并适当绑定到变量,模板内的函数也得到恰当的评估。 -
加载:渲染之后,输出为结构化的 YAML 文件。这个 YAML 结构由重复的区块或部分构成,每个部分都被封装进 Python 数据结构。这些部分具有多个属性: -
名称:清晰易读的标识符,用于标识该部分。 -
内容:构成提示部分的实际字符串有效载荷。 -
角色(可选):指定参与者的角色,有助于区分不同的用户或系统组件。 -
截断优先级(可选):在必要时确定截断的顺序,具有相同优先级的部分将按照它们出现的顺序进行截断。
-
名称:为每个提示部分赋予一个清晰易读的名称,便于识别和管理。 -
内容:提示的核心,即构成提示的实际字符串。 -
角色(可选):为不同参与者指定角色,以区分用户或系统组件。 -
截断优先级(可选):在空间受限时,决定提示部分的截断顺序,确保信息传递的高效性。


