提示(Prompts)
Chat 模型的提示(Prompts)是围绕消息而构建的,而不仅仅是普通文本。
你可以使用 MessagePromptTemplate
来利用模板。你可以从一个或多个 MessagePromptTemplates
构建一个 ChatPromptTemplate
。您可以使用 ChatPromptTemplate
的 format_prompt
方法,这将返回一个 PromptValue
,您可以将其转换为字符串或消息对象,具体取决于您想要将格式化的值用作 LLM 或聊天模型的输入。
为方便起见,模板上还公开了一个 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])
# get a chat completion from the formatted messages
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)