@@ -32,7 +32,12 @@ import {
3232 ExtractedFStringParams ,
3333} from "./prompt.js" ;
3434import { ImagePromptTemplate } from "./image.js" ;
35- import { TemplateFormat , parseFString } from "./template.js" ;
35+ import {
36+ ParsedTemplateNode ,
37+ TemplateFormat ,
38+ parseFString ,
39+ parseMustache ,
40+ } from "./template.js" ;
3641
3742/**
3843 * Abstract class that serves as a base for creating message prompt
@@ -495,13 +500,19 @@ class _StringImageMessagePromptTemplate<
495500 } else if ( typeof item . text === "string" ) {
496501 text = item . text ?? "" ;
497502 }
498- prompt . push ( PromptTemplate . fromTemplate ( text ) ) ;
503+ prompt . push ( PromptTemplate . fromTemplate ( text , additionalOptions ) ) ;
499504 } else if ( typeof item === "object" && "image_url" in item ) {
500505 let imgTemplate = item . image_url ?? "" ;
501506 let imgTemplateObject : ImagePromptTemplate < InputValues > ;
502507 let inputVariables : string [ ] = [ ] ;
503508 if ( typeof imgTemplate === "string" ) {
504- const parsedTemplate = parseFString ( imgTemplate ) ;
509+ let parsedTemplate : ParsedTemplateNode [ ] ;
510+ if ( additionalOptions ?. templateFormat === "mustache" ) {
511+ parsedTemplate = parseMustache ( imgTemplate ) ;
512+ } else {
513+ parsedTemplate = parseFString ( imgTemplate ) ;
514+ }
515+
505516 const variables = parsedTemplate . flatMap ( ( item ) =>
506517 item . type === "variable" ? [ item . name ] : [ ]
507518 ) ;
@@ -524,7 +535,13 @@ class _StringImageMessagePromptTemplate<
524535 } ) ;
525536 } else if ( typeof imgTemplate === "object" ) {
526537 if ( "url" in imgTemplate ) {
527- const parsedTemplate = parseFString ( imgTemplate . url ) ;
538+ let parsedTemplate : ParsedTemplateNode [ ] ;
539+ if ( additionalOptions ?. templateFormat === "mustache" ) {
540+ parsedTemplate = parseMustache ( imgTemplate . url ) ;
541+ } else {
542+ parsedTemplate = parseFString ( imgTemplate . url ) ;
543+ }
544+
528545 inputVariables = parsedTemplate . flatMap ( ( item ) =>
529546 item . type === "variable" ? [ item . name ] : [ ]
530547 ) ;
@@ -913,7 +930,12 @@ export class ChatPromptTemplate<
913930 imageUrl = item . image_url . url ;
914931 }
915932
916- const promptTemplatePlaceholder = PromptTemplate . fromTemplate ( imageUrl ) ;
933+ const promptTemplatePlaceholder = PromptTemplate . fromTemplate (
934+ imageUrl ,
935+ {
936+ templateFormat : this . templateFormat ,
937+ }
938+ ) ;
917939 const formattedUrl = await promptTemplatePlaceholder . format (
918940 inputValues
919941 ) ;
0 commit comments