public class dev.langchain4j.model.ollama.OllamaChatModel extends java.lang.Object implements dev.langchain4j.model.chat.ChatLanguageModel
{
private final dev.langchain4j.model.ollama.OllamaClient client;
private final java.lang.String modelName;
private final dev.langchain4j.model.ollama.Options options;
private final java.lang.String format;
private final java.lang.Integer maxRetries;
public void <init>(java.lang.String, java.lang.String, java.lang.Double, java.lang.Integer, java.lang.Double, java.lang.Double, java.lang.Integer, java.lang.Integer, java.util.List, java.lang.String, java.time.Duration, java.lang.Integer)
{
java.lang.Double v, v, v;
java.lang.Integer v, v, v, v, v;
java.time.Duration v, v;
dev.langchain4j.model.ollama.OllamaClient v;
dev.langchain4j.model.ollama.OllamaClient$OllamaClientBuilder v, v, v;
java.lang.String v, v, v, v;
dev.langchain4j.model.ollama.Options v;
dev.langchain4j.model.ollama.OllamaChatModel v;
java.util.List v;
java.lang.Object v, v;
dev.langchain4j.model.ollama.Options$OptionsBuilder v, v, v, v, v, v, v, v;
v := @this: dev.langchain4j.model.ollama.OllamaChatModel;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Double;
v := @parameter: java.lang.Integer;
v := @parameter: java.lang.Double;
v := @parameter: java.lang.Double;
v := @parameter: java.lang.Integer;
v := @parameter: java.lang.Integer;
v := @parameter: java.util.List;
v := @parameter: java.lang.String;
v := @parameter: java.time.Duration;
v := @parameter: java.lang.Integer;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <dev.langchain4j.model.ollama.OllamaClient: dev.langchain4j.model.ollama.OllamaClient$OllamaClientBuilder builder()>();
v = virtualinvoke v.<dev.langchain4j.model.ollama.OllamaClient$OllamaClientBuilder: dev.langchain4j.model.ollama.OllamaClient$OllamaClientBuilder baseUrl(java.lang.String)>(v);
v = staticinvoke <java.time.Duration: java.time.Duration ofSeconds(long)>(60L);
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.Object getOrDefault(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.OllamaClient$OllamaClientBuilder: dev.langchain4j.model.ollama.OllamaClient$OllamaClientBuilder timeout(java.time.Duration)>(v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.OllamaClient$OllamaClientBuilder: dev.langchain4j.model.ollama.OllamaClient build()>();
v.<dev.langchain4j.model.ollama.OllamaChatModel: dev.langchain4j.model.ollama.OllamaClient client> = v;
v = staticinvoke <dev.langchain4j.internal.ValidationUtils: java.lang.String ensureNotBlank(java.lang.String,java.lang.String)>(v, "modelName");
v.<dev.langchain4j.model.ollama.OllamaChatModel: java.lang.String modelName> = v;
v = staticinvoke <dev.langchain4j.model.ollama.Options: dev.langchain4j.model.ollama.Options$OptionsBuilder builder()>();
v = virtualinvoke v.<dev.langchain4j.model.ollama.Options$OptionsBuilder: dev.langchain4j.model.ollama.Options$OptionsBuilder temperature(java.lang.Double)>(v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.Options$OptionsBuilder: dev.langchain4j.model.ollama.Options$OptionsBuilder topK(java.lang.Integer)>(v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.Options$OptionsBuilder: dev.langchain4j.model.ollama.Options$OptionsBuilder topP(java.lang.Double)>(v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.Options$OptionsBuilder: dev.langchain4j.model.ollama.Options$OptionsBuilder repeatPenalty(java.lang.Double)>(v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.Options$OptionsBuilder: dev.langchain4j.model.ollama.Options$OptionsBuilder seed(java.lang.Integer)>(v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.Options$OptionsBuilder: dev.langchain4j.model.ollama.Options$OptionsBuilder numPredict(java.lang.Integer)>(v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.Options$OptionsBuilder: dev.langchain4j.model.ollama.Options$OptionsBuilder stop(java.util.List)>(v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.Options$OptionsBuilder: dev.langchain4j.model.ollama.Options build()>();
v.<dev.langchain4j.model.ollama.OllamaChatModel: dev.langchain4j.model.ollama.Options options> = v;
v.<dev.langchain4j.model.ollama.OllamaChatModel: java.lang.String format> = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(3);
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.Object getOrDefault(java.lang.Object,java.lang.Object)>(v, v);
v.<dev.langchain4j.model.ollama.OllamaChatModel: java.lang.Integer maxRetries> = v;
return;
}
public dev.langchain4j.model.output.Response generate(java.util.List)
{
dev.langchain4j.model.output.TokenUsage v;
java.util.concurrent.Callable v;
dev.langchain4j.model.ollama.ChatRequest v;
java.lang.Integer v, v, v;
int v;
java.lang.Boolean v;
java.lang.String v, v, v;
dev.langchain4j.model.ollama.Message v;
dev.langchain4j.model.ollama.Options v;
dev.langchain4j.data.message.AiMessage v;
dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder v, v, v, v, v, v;
dev.langchain4j.model.output.Response v;
dev.langchain4j.model.ollama.OllamaChatModel v;
java.util.List v, v;
java.lang.Object v;
v := @this: dev.langchain4j.model.ollama.OllamaChatModel;
v := @parameter: java.util.List;
staticinvoke <dev.langchain4j.internal.ValidationUtils: java.util.Collection ensureNotEmpty(java.util.Collection,java.lang.String)>(v, "messages");
v = staticinvoke <dev.langchain4j.model.ollama.ChatRequest: dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder builder()>();
v = v.<dev.langchain4j.model.ollama.OllamaChatModel: java.lang.String modelName>;
v = virtualinvoke v.<dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder: dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder model(java.lang.String)>(v);
v = staticinvoke <dev.langchain4j.model.ollama.OllamaMessagesUtils: java.util.List toOllamaMessages(java.util.List)>(v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder: dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder messages(java.util.List)>(v);
v = v.<dev.langchain4j.model.ollama.OllamaChatModel: dev.langchain4j.model.ollama.Options options>;
v = virtualinvoke v.<dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder: dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder options(dev.langchain4j.model.ollama.Options)>(v);
v = v.<dev.langchain4j.model.ollama.OllamaChatModel: java.lang.String format>;
v = virtualinvoke v.<dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder: dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder format(java.lang.String)>(v);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
v = virtualinvoke v.<dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder: dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder stream(java.lang.Boolean)>(v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.ChatRequest$ChatRequestBuilder: dev.langchain4j.model.ollama.ChatRequest build()>();
v = staticinvoke <dev.langchain4j.model.ollama.OllamaChatModel$lambda_generate_0__7: java.util.concurrent.Callable bootstrap$(dev.langchain4j.model.ollama.OllamaChatModel,dev.langchain4j.model.ollama.ChatRequest)>(v, v);
v = v.<dev.langchain4j.model.ollama.OllamaChatModel: java.lang.Integer maxRetries>;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = staticinvoke <dev.langchain4j.internal.RetryUtils: java.lang.Object withRetry(java.util.concurrent.Callable,int)>(v, v);
v = virtualinvoke v.<dev.langchain4j.model.ollama.ChatResponse: dev.langchain4j.model.ollama.Message getMessage()>();
v = virtualinvoke v.<dev.langchain4j.model.ollama.Message: java.lang.String getContent()>();
v = staticinvoke <dev.langchain4j.data.message.AiMessage: dev.langchain4j.data.message.AiMessage 'from'(java.lang.String)>(v);
v = new dev.langchain4j.model.output.TokenUsage;
v = virtualinvoke v.<dev.langchain4j.model.ollama.ChatResponse: java.lang.Integer getPromptEvalCount()>();
v = virtualinvoke v.<dev.langchain4j.model.ollama.ChatResponse: java.lang.Integer getEvalCount()>();
specialinvoke v.<dev.langchain4j.model.output.TokenUsage: void <init>(java.lang.Integer,java.lang.Integer)>(v, v);
v = staticinvoke <dev.langchain4j.model.output.Response: dev.langchain4j.model.output.Response 'from'(java.lang.Object,dev.langchain4j.model.output.TokenUsage)>(v, v);
return v;
}
public static dev.langchain4j.model.ollama.OllamaChatModel$OllamaChatModelBuilder builder()
{
java.lang.Object v;
java.util.function.Supplier v;
v = staticinvoke <dev.langchain4j.model.ollama.OllamaChatModel$init__8: java.util.function.Supplier bootstrap$()>();
v = staticinvoke <dev.langchain4j.spi.ServiceHelper: java.lang.Object loadFactoryService(java.lang.Class,java.util.function.Supplier)>(class "Ldev/langchain4j/model/ollama/spi/OllamaChatModelBuilderFactory;", v);
return v;
}
}