提示
Chat模型的提示是围绕消息而建立的,而不仅仅是纯文本。
您可以使用MessagePromptTemplate
进行模板化。您可以从一个或多个MessagePromptTemplates
构建一个ChatPromptTemplate
。您可以使用ChatPromptTemplate
的format_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)