import { BaseMessage, BaseMessageLike, MessageContent } from "../messages/base.js"; import { AIMessage } from "../messages/ai.js"; import { ChatMessage } from "../messages/chat.js"; import { HumanMessage } from "../messages/human.js"; import { SystemMessage } from "../messages/system.js"; import { MessageStructure, MessageToolSet, MessageType } from "../messages/message.js"; import { InputValues, PartialValues } from "../utils/types/index.js"; import { BaseCallbackConfig } from "../callbacks/manager.js"; import { Runnable } from "../runnables/base.js"; import { ChatPromptValueInterface } from "../prompt_values.js"; import { BasePromptTemplate, BasePromptTemplateInput, TypedPromptInputValues } from "./base.js"; import { BaseStringPromptTemplate } from "./string.js"; import { TemplateFormat } from "./template.js"; import { ExtractedFStringParams, PromptTemplateInput } from "./prompt.js"; import { ImagePromptTemplate } from "./image.js"; import { DictPromptTemplate } from "./dict.js"; //#region src/prompts/chat.d.ts /** * Abstract class that serves as a base for creating message prompt * templates. It defines how to format messages for different roles in a * conversation. */ declare abstract class BaseMessagePromptTemplate extends Runnable { lc_namespace: string[]; lc_serializable: boolean; abstract inputVariables: Array>; /** * Method that takes an object of TypedPromptInputValues and returns a * promise that resolves to an array of BaseMessage instances. * @param values Object of TypedPromptInputValues * @returns Formatted array of BaseMessages */ abstract formatMessages(values: TypedPromptInputValues): Promise; /** * Calls the formatMessages method with the provided input and options. * @param input Input for the formatMessages method * @param options Optional BaseCallbackConfig * @returns Formatted output messages */ invoke(input: RunInput, options?: BaseCallbackConfig): Promise; } /** * Interface for the fields of a MessagePlaceholder. */ interface MessagesPlaceholderFields { variableName: T; optional?: boolean; } /** * Class that represents a placeholder for messages in a chat prompt. It * extends the BaseMessagePromptTemplate. */ declare class MessagesPlaceholder extends BaseMessagePromptTemplate implements MessagesPlaceholderFields> { static lc_name(): string; variableName: Extract; optional: boolean; constructor(variableName: Extract); constructor(fields: MessagesPlaceholderFields>); get inputVariables(): Extract[]; formatMessages(values: TypedPromptInputValues): Promise; } /** * Interface for the fields of a MessageStringPromptTemplate. */ interface MessageStringPromptTemplateFields { prompt: BaseStringPromptTemplate; } /** * Abstract class that serves as a base for creating message string prompt * templates. It extends the BaseMessagePromptTemplate. */ declare abstract class BaseMessageStringPromptTemplate extends BaseMessagePromptTemplate { prompt: BaseStringPromptTemplate>, string>; constructor(prompt: BaseStringPromptTemplate>>); constructor(fields: MessageStringPromptTemplateFields>>); get inputVariables(): Extract, string>[]; abstract format(values: TypedPromptInputValues): Promise; formatMessages(values: TypedPromptInputValues): Promise; } /** * Abstract class that serves as a base for creating chat prompt * templates. It extends the BasePromptTemplate. */ declare abstract class BaseChatPromptTemplate extends BasePromptTemplate { constructor(input: BasePromptTemplateInput); abstract formatMessages(values: TypedPromptInputValues): Promise; format(values: TypedPromptInputValues): Promise; formatPromptValue(values: TypedPromptInputValues): Promise; } /** * Interface for the fields of a ChatMessagePromptTemplate. */ interface ChatMessagePromptTemplateFields extends MessageStringPromptTemplateFields { role: string; } /** * Class that represents a chat message prompt template. It extends the * BaseMessageStringPromptTemplate. */ declare class ChatMessagePromptTemplate extends BaseMessageStringPromptTemplate { static lc_name(): string; role: string; constructor(prompt: BaseStringPromptTemplate>>, role: string); constructor(fields: ChatMessagePromptTemplateFields>>); format(values: RunInput): Promise; static fromTemplate(template: T, role: string, options?: { templateFormat?: TemplateFormat; }): ChatMessagePromptTemplate>; } interface _TextTemplateParam { text?: string | Record; } interface _ImageTemplateParam { image_url?: string | Record; } type MessageClass = typeof HumanMessage | typeof AIMessage | typeof SystemMessage; type ChatMessageClass = typeof ChatMessage; interface _StringImageMessagePromptTemplateOptions extends Record { templateFormat?: Format; } declare class _StringImageMessagePromptTemplate extends BaseMessagePromptTemplate { lc_namespace: string[]; lc_serializable: boolean; inputVariables: Array>; additionalOptions: _StringImageMessagePromptTemplateOptions; prompt: BaseStringPromptTemplate>, string> | Array>, string> | ImagePromptTemplate>, string> | MessageStringPromptTemplateFields>> | DictPromptTemplate>>>; protected messageClass?: MessageClass; static _messageClass(): MessageClass; protected chatMessageClass?: ChatMessageClass; constructor(/** @TODO When we come up with a better way to type prompt templates, fix this */ fields: any, additionalOptions?: _StringImageMessagePromptTemplateOptions); createMessage(content: MessageContent): any; getRoleFromMessageClass(name: string): "ai" | "chat" | "human" | "system"; static fromTemplate(template: string | Array>, additionalOptions?: _StringImageMessagePromptTemplateOptions): _StringImageMessagePromptTemplate, MessageType>[]>; format(input: TypedPromptInputValues): Promise; formatMessages(values: RunInput): Promise; } /** * Class that represents a human message prompt template. It extends the * BaseMessageStringPromptTemplate. * @example * ```typescript * const message = HumanMessagePromptTemplate.fromTemplate("{text}"); * const formatted = await message.format({ text: "Hello world!" }); * * const chatPrompt = ChatPromptTemplate.fromMessages([message]); * const formattedChatPrompt = await chatPrompt.invoke({ * text: "Hello world!", * }); * ``` */ declare class HumanMessagePromptTemplate extends _StringImageMessagePromptTemplate { static _messageClass(): typeof HumanMessage; static lc_name(): string; } /** * Class that represents an AI message prompt template. It extends the * BaseMessageStringPromptTemplate. */ declare class AIMessagePromptTemplate extends _StringImageMessagePromptTemplate { static _messageClass(): typeof AIMessage; static lc_name(): string; } /** * Class that represents a system message prompt template. It extends the * BaseMessageStringPromptTemplate. * @example * ```typescript * const message = SystemMessagePromptTemplate.fromTemplate("{text}"); * const formatted = await message.format({ text: "Hello world!" }); * * const chatPrompt = ChatPromptTemplate.fromMessages([message]); * const formattedChatPrompt = await chatPrompt.invoke({ * text: "Hello world!", * }); * ``` */ declare class SystemMessagePromptTemplate extends _StringImageMessagePromptTemplate { static _messageClass(): typeof SystemMessage; static lc_name(): string; } /** * Interface for the input of a ChatPromptTemplate. */ interface ChatPromptTemplateInput extends BasePromptTemplateInput { /** * The prompt messages */ promptMessages: Array; /** * Whether to try validating the template on initialization * * @defaultValue `true` */ validateTemplate?: boolean; /** * The formatting method to use on the prompt. * @default "f-string" */ templateFormat?: TemplateFormat; } type BaseMessagePromptTemplateLike = BaseMessagePromptTemplate | BaseMessageLike; /** * Class that represents a chat prompt. It extends the * BaseChatPromptTemplate and uses an array of BaseMessagePromptTemplate * instances to format a series of messages for a conversation. * @example * ```typescript * const message = SystemMessagePromptTemplate.fromTemplate("{text}"); * const chatPrompt = ChatPromptTemplate.fromMessages([ * ["ai", "You are a helpful assistant."], * message, * ]); * const formattedChatPrompt = await chatPrompt.invoke({ * text: "Hello world!", * }); * ``` */ declare class ChatPromptTemplate extends BaseChatPromptTemplate implements ChatPromptTemplateInput { static lc_name(): string; get lc_aliases(): Record; promptMessages: Array; validateTemplate: boolean; templateFormat: TemplateFormat; constructor(input: ChatPromptTemplateInput); _getPromptType(): "chat"; private _parseImagePrompts; formatMessages(values: TypedPromptInputValues): Promise; partial(values: PartialValues): Promise, NewPartialVariableName>>, any>>; /** * Load prompt template from a template f-string */ static fromTemplate(template: T, options?: Omit, "template" | "inputVariables">): ChatPromptTemplate>; static fromTemplate(template: T, options?: Omit, "template" | "inputVariables">): ChatPromptTemplate>; static fromTemplate(template: T, options?: Omit, "template" | "inputVariables">): ChatPromptTemplate; /** * Create a chat model-specific prompt from individual chat messages * or message-like tuples. * @param promptMessages Messages to be passed to the chat model * @returns A new ChatPromptTemplate */ static fromMessages = ChatPromptTemplateInput>(promptMessages: (ChatPromptTemplate | BaseMessagePromptTemplateLike)[], extra?: Omit): ChatPromptTemplate; } //#endregion export { AIMessagePromptTemplate, BaseChatPromptTemplate, BaseMessagePromptTemplate, BaseMessagePromptTemplateLike, BaseMessageStringPromptTemplate, ChatMessagePromptTemplate, ChatMessagePromptTemplateFields, ChatPromptTemplate, ChatPromptTemplateInput, HumanMessagePromptTemplate, MessageStringPromptTemplateFields, MessagesPlaceholder, MessagesPlaceholderFields, SystemMessagePromptTemplate }; //# sourceMappingURL=chat.d.ts.map