Skip to main content

提示

Chat模型的提示是围绕消息而建立的,而不仅仅是纯文本。

您可以使用MessagePromptTemplate进行模板化。您可以从一个或多个MessagePromptTemplates构建一个ChatPromptTemplate。您可以使用ChatPromptTemplateformat_prompt方法,它返回一个PromptValue,您可以将其转换为字符串或消息对象,具体取决于您是否希望将格式化的值用作llm或chat模型的输入。

为了方便起见,模板上暴露了一个from_template方法。如果您要使用此模板,它将如下所示:

from langchain import PromptTemplate  
from langchain.prompts.chat import (
ChatPromptTemplate,
SystemMessagePromptTemplate,
AIMessagePromptTemplate,
HumanMessagePromptTemplate,
)

template="You are a helpful assistant that translates {input_language} to {output_language}."
system_message_prompt = SystemMessagePromptTemplate.from_template(template)
human_template="{text}"
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)

chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])

# 从格式化的消息中获取聊天完成
chat(chat_prompt.format_prompt(input_language="English", output_language="French", text="I love programming.").to_messages())

AIMessage(content="J'adore la programmation.", additional_kwargs={})

如果您想更直接地构建MessagePromptTemplate,可以在外部创建一个PromptTemplate,然后将其传递进去,例如:

prompt=PromptTemplate(  
template="You are a helpful assistant that translates {input_language} to {output_language}.",
input_variables=["input_language", "output_language"],
)
system_message_prompt = SystemMessagePromptTemplate(prompt=prompt)