在langchain中,可以通过两种方式部分格式化提示模板:
1.使用字符串值进行部分格式化。
2.使用返回字符串值的函数进行部分格式化。
一、字符串值进行部分格式化
假设,你有一个提示模板有两个变量,如果一个变量已经确定,仅需获得其中一个变量。
from langchain_core.prompts import PromptTemplate
prompt = PromptTemplate.from_template("我喜欢吃{蔬菜}和{水果}")
partial_prompt = prompt.partial(蔬菜="蔬菜")
print(partial_prompt.format(水果="香蕉")) # 我喜欢吃蔬菜和香蕉
或者
prompt = PromptTemplate(
template="我喜欢吃{蔬菜}和{水果}", input_variables=["水果"], partial_variables={"蔬菜": "蔬菜"}
)
print(prompt.format(水果="香蕉")) # 我喜欢吃蔬菜和香蕉
二、函数进行部分格式化
假如第一节中,已确定的变量为一个函数
from datetime import datetime
def _get_datetime():
now = datetime.now()
return now.strftime("%m/%d/%Y, %H:%M:%S")
prompt = PromptTemplate(
template="请告诉我{地方}的时间为:{时间}",
input_variables=["地方", "时间"],
)
partial_prompt = prompt.partial(时间=_get_datetime)
print(partial_prompt.format(地方="北京"))
# 请告诉我北京的时间为:08/28/2024, 15:46:41
或者
prompt = PromptTemplate(
template="请告诉我{地方}的时间为:{时间}",
input_variables=["地方"],
partial_variables={"时间": _get_datetime},
)
print(prompt.format(地方="北京"))