ChatPromptTemplate.fromTemplates constructor
ChatPromptTemplate.fromTemplates(
- List<
(ChatMessageType, String)> messages, { - String? customRole,
- PartialValues? partialVariables,
- bool validateTemplate = true,
Creates a ChatPromptTemplate from a list of pairs of chat message prompt template type and template.
Example:
final promptTemplate = ChatPromptTemplate.fromTemplates([
(ChatMessageType.system, 'You are an assistant that translates {input_language} to {output_language}.'),
(ChatMessageType.human, '{text}'),
]);
final prompt = promptTemplate.formatPrompt({
'input_language': 'English',
'output_language': 'French',
'text': 'I love programming.',
});
final res = await chatModel.invoke(prompt);
messagesthe list of pairs of type and templates.customRolethe role of the message if type is ChatMessageType.custom.partialVariablesthe partial variables to use for the template.validateTemplatewhether to validate the template.
Implementation
factory ChatPromptTemplate.fromTemplates(
final List<(ChatMessageType, String)> messages, {
final String? customRole,
final PartialValues? partialVariables,
final bool validateTemplate = true,
}) {
final chatMessagePromptTemplates = messages
.map((final message) {
final (role, template) = message;
return switch (role) {
ChatMessageType.human =>
HumanChatMessagePromptTemplate.fromTemplate(
template,
partialVariables: partialVariables,
validateTemplate: false,
),
ChatMessageType.ai => AIChatMessagePromptTemplate.fromTemplate(
template,
partialVariables: partialVariables,
validateTemplate: false,
),
ChatMessageType.system =>
SystemChatMessagePromptTemplate.fromTemplate(
template,
partialVariables: partialVariables,
validateTemplate: false,
),
ChatMessageType.custom =>
CustomChatMessagePromptTemplate.fromTemplate(
template,
role: ArgumentError.checkNotNull(customRole, 'customRole'),
partialVariables: partialVariables,
validateTemplate: false,
),
ChatMessageType.messagePlaceholder => MessagePlaceholder(
variableName: template,
),
ChatMessageType.messagesPlaceholder => MessagesPlaceholder(
variableName: template,
),
};
})
.toList(growable: false);
return ChatPromptTemplate.fromPromptMessages(
chatMessagePromptTemplates,
validateTemplate: validateTemplate,
);
}