public class dev.langchain4j.model.input.PromptTemplate extends java.lang.Object
{
private static final dev.langchain4j.spi.prompt.PromptTemplateFactory FACTORY;
static final java.lang.String CURRENT_DATE;
static final java.lang.String CURRENT_TIME;
static final java.lang.String CURRENT_DATE_TIME;
private final java.lang.String templateString;
private final dev.langchain4j.spi.prompt.PromptTemplateFactory$Template template;
private final java.time.Clock clock;
public void <init>(java.lang.String)
{
dev.langchain4j.model.input.PromptTemplate v;
java.time.Clock v;
java.lang.String v;
v := @this: dev.langchain4j.model.input.PromptTemplate;
v := @parameter: java.lang.String;
v = staticinvoke <java.time.Clock: java.time.Clock systemDefaultZone()>();
specialinvoke v.<dev.langchain4j.model.input.PromptTemplate: void <init>(java.lang.String,java.time.Clock)>(v, v);
return;
}
void <init>(java.lang.String, java.time.Clock)
{
dev.langchain4j.model.input.PromptTemplate v;
dev.langchain4j.spi.prompt.PromptTemplateFactory$Template v;
dev.langchain4j.spi.prompt.PromptTemplateFactory v;
dev.langchain4j.spi.prompt.PromptTemplateFactory$Input v;
java.time.Clock v;
java.lang.Object v;
java.lang.String v, v;
v := @this: dev.langchain4j.model.input.PromptTemplate;
v := @parameter: java.lang.String;
v := @parameter: java.time.Clock;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <dev.langchain4j.internal.ValidationUtils: java.lang.String ensureNotBlank(java.lang.String,java.lang.String)>(v, "template");
v.<dev.langchain4j.model.input.PromptTemplate: java.lang.String templateString> = v;
v = <dev.langchain4j.model.input.PromptTemplate: dev.langchain4j.spi.prompt.PromptTemplateFactory FACTORY>;
v = staticinvoke <dev.langchain4j.model.input.PromptTemplate$lambda_new_0__19: dev.langchain4j.spi.prompt.PromptTemplateFactory$Input bootstrap$(java.lang.String)>(v);
v = interfaceinvoke v.<dev.langchain4j.spi.prompt.PromptTemplateFactory: dev.langchain4j.spi.prompt.PromptTemplateFactory$Template create(dev.langchain4j.spi.prompt.PromptTemplateFactory$Input)>(v);
v.<dev.langchain4j.model.input.PromptTemplate: dev.langchain4j.spi.prompt.PromptTemplateFactory$Template template> = v;
v = staticinvoke <dev.langchain4j.internal.ValidationUtils: java.lang.Object ensureNotNull(java.lang.Object,java.lang.String)>(v, "clock");
v.<dev.langchain4j.model.input.PromptTemplate: java.time.Clock clock> = v;
return;
}
public java.lang.String template()
{
dev.langchain4j.model.input.PromptTemplate v;
java.lang.String v;
v := @this: dev.langchain4j.model.input.PromptTemplate;
v = v.<dev.langchain4j.model.input.PromptTemplate: java.lang.String templateString>;
return v;
}
public dev.langchain4j.model.input.Prompt apply(java.lang.Object)
{
dev.langchain4j.model.input.PromptTemplate v;
java.util.Map v;
dev.langchain4j.model.input.Prompt v;
java.lang.Object v;
v := @this: dev.langchain4j.model.input.PromptTemplate;
v := @parameter: java.lang.Object;
v = staticinvoke <java.util.Collections: java.util.Map singletonMap(java.lang.Object,java.lang.Object)>("it", v);
v = virtualinvoke v.<dev.langchain4j.model.input.PromptTemplate: dev.langchain4j.model.input.Prompt apply(java.util.Map)>(v);
return v;
}
public dev.langchain4j.model.input.Prompt apply(java.util.Map)
{
dev.langchain4j.model.input.PromptTemplate v;
dev.langchain4j.spi.prompt.PromptTemplateFactory$Template v;
java.util.Map v, v;
dev.langchain4j.model.input.Prompt v;
java.lang.String v;
v := @this: dev.langchain4j.model.input.PromptTemplate;
v := @parameter: java.util.Map;
staticinvoke <dev.langchain4j.internal.ValidationUtils: java.lang.Object ensureNotNull(java.lang.Object,java.lang.String)>(v, "variables");
v = v.<dev.langchain4j.model.input.PromptTemplate: dev.langchain4j.spi.prompt.PromptTemplateFactory$Template template>;
v = specialinvoke v.<dev.langchain4j.model.input.PromptTemplate: java.util.Map injectDateTimeVariables(java.util.Map)>(v);
v = interfaceinvoke v.<dev.langchain4j.spi.prompt.PromptTemplateFactory$Template: java.lang.String render(java.util.Map)>(v);
v = staticinvoke <dev.langchain4j.model.input.Prompt: dev.langchain4j.model.input.Prompt 'from'(java.lang.String)>(v);
return v;
}
private java.util.Map injectDateTimeVariables(java.util.Map)
{
dev.langchain4j.model.input.PromptTemplate v;
java.time.LocalDateTime v;
java.util.HashMap v;
java.time.LocalDate v;
java.util.Map v;
java.time.LocalTime v;
java.time.Clock v, v, v;
v := @this: dev.langchain4j.model.input.PromptTemplate;
v := @parameter: java.util.Map;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>(java.util.Map)>(v);
v = v.<dev.langchain4j.model.input.PromptTemplate: java.time.Clock clock>;
v = staticinvoke <java.time.LocalDate: java.time.LocalDate now(java.time.Clock)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("current_date", v);
v = v.<dev.langchain4j.model.input.PromptTemplate: java.time.Clock clock>;
v = staticinvoke <java.time.LocalTime: java.time.LocalTime now(java.time.Clock)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("current_time", v);
v = v.<dev.langchain4j.model.input.PromptTemplate: java.time.Clock clock>;
v = staticinvoke <java.time.LocalDateTime: java.time.LocalDateTime now(java.time.Clock)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("current_date_time", v);
return v;
}
public static dev.langchain4j.model.input.PromptTemplate 'from'(java.lang.String)
{
dev.langchain4j.model.input.PromptTemplate v;
java.lang.String v;
v := @parameter: java.lang.String;
v = new dev.langchain4j.model.input.PromptTemplate;
specialinvoke v.<dev.langchain4j.model.input.PromptTemplate: void <init>(java.lang.String)>(v);
return v;
}
static void <clinit>()
{
java.lang.Object v;
java.util.function.Supplier v;
v = staticinvoke <dev.langchain4j.model.input.PromptTemplate$init__20: java.util.function.Supplier bootstrap$()>();
v = staticinvoke <dev.langchain4j.spi.ServiceHelper: java.lang.Object loadService(java.lang.Class,java.util.function.Supplier)>(class "Ldev/langchain4j/spi/prompt/PromptTemplateFactory;", v);
<dev.langchain4j.model.input.PromptTemplate: dev.langchain4j.spi.prompt.PromptTemplateFactory FACTORY> = v;
return;
}
}