public class dev.langchain4j.chain.ConversationalChain extends java.lang.Object implements dev.langchain4j.chain.Chain
{
private final dev.langchain4j.model.chat.ChatLanguageModel chatLanguageModel;
private final dev.langchain4j.memory.ChatMemory chatMemory;
private void <init>(dev.langchain4j.model.chat.ChatLanguageModel, dev.langchain4j.memory.ChatMemory)
{
dev.langchain4j.memory.ChatMemory v;
java.lang.Object v, v;
dev.langchain4j.model.chat.ChatLanguageModel v;
dev.langchain4j.chain.ConversationalChain v;
v := @this: dev.langchain4j.chain.ConversationalChain;
v := @parameter: dev.langchain4j.model.chat.ChatLanguageModel;
v := @parameter: dev.langchain4j.memory.ChatMemory;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <dev.langchain4j.internal.ValidationUtils: java.lang.Object ensureNotNull(java.lang.Object,java.lang.String)>(v, "chatLanguageModel");
v.<dev.langchain4j.chain.ConversationalChain: dev.langchain4j.model.chat.ChatLanguageModel chatLanguageModel> = v;
if v != null goto label;
v = staticinvoke <dev.langchain4j.memory.chat.MessageWindowChatMemory: dev.langchain4j.memory.chat.MessageWindowChatMemory withMaxMessages(int)>(10);
goto label;
label:
v = v;
label:
v.<dev.langchain4j.chain.ConversationalChain: dev.langchain4j.memory.ChatMemory chatMemory> = v;
return;
}
public java.lang.String execute(java.lang.String)
{
dev.langchain4j.data.message.AiMessage v;
dev.langchain4j.model.output.Response v;
dev.langchain4j.model.chat.ChatLanguageModel v;
java.util.List v;
dev.langchain4j.data.message.UserMessage v;
dev.langchain4j.memory.ChatMemory v, v, v;
java.lang.Object v;
java.lang.String v, v, v;
dev.langchain4j.chain.ConversationalChain v;
v := @this: dev.langchain4j.chain.ConversationalChain;
v := @parameter: java.lang.String;
v = v.<dev.langchain4j.chain.ConversationalChain: dev.langchain4j.memory.ChatMemory chatMemory>;
v = staticinvoke <dev.langchain4j.internal.ValidationUtils: java.lang.String ensureNotBlank(java.lang.String,java.lang.String)>(v, "userMessage");
v = staticinvoke <dev.langchain4j.data.message.UserMessage: dev.langchain4j.data.message.UserMessage userMessage(java.lang.String)>(v);
interfaceinvoke v.<dev.langchain4j.memory.ChatMemory: void add(dev.langchain4j.data.message.ChatMessage)>(v);
v = v.<dev.langchain4j.chain.ConversationalChain: dev.langchain4j.model.chat.ChatLanguageModel chatLanguageModel>;
v = v.<dev.langchain4j.chain.ConversationalChain: dev.langchain4j.memory.ChatMemory chatMemory>;
v = interfaceinvoke v.<dev.langchain4j.memory.ChatMemory: java.util.List messages()>();
v = interfaceinvoke v.<dev.langchain4j.model.chat.ChatLanguageModel: dev.langchain4j.model.output.Response generate(java.util.List)>(v);
v = virtualinvoke v.<dev.langchain4j.model.output.Response: java.lang.Object content()>();
v = v.<dev.langchain4j.chain.ConversationalChain: dev.langchain4j.memory.ChatMemory chatMemory>;
interfaceinvoke v.<dev.langchain4j.memory.ChatMemory: void add(dev.langchain4j.data.message.ChatMessage)>(v);
v = virtualinvoke v.<dev.langchain4j.data.message.AiMessage: java.lang.String text()>();
return v;
}
public static dev.langchain4j.chain.ConversationalChain$ConversationalChainBuilder builder()
{
dev.langchain4j.chain.ConversationalChain$ConversationalChainBuilder v;
v = new dev.langchain4j.chain.ConversationalChain$ConversationalChainBuilder;
specialinvoke v.<dev.langchain4j.chain.ConversationalChain$ConversationalChainBuilder: void <init>()>();
return v;
}
}