public class dev.langchain4j.model.openai.OpenAiEmbeddingModel extends java.lang.Object implements dev.langchain4j.model.embedding.EmbeddingModel, dev.langchain4j.model.embedding.TokenCountEstimator
{
private final dev.ai4j.openai4j.OpenAiClient client;
private final java.lang.String modelName;
private final java.lang.Integer dimensions;
private final java.lang.String user;
private final java.lang.Integer maxRetries;
private final dev.langchain4j.model.Tokenizer tokenizer;
public void <init>(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.lang.String, java.time.Duration, java.lang.Integer, java.net.Proxy, java.lang.Boolean, java.lang.Boolean, dev.langchain4j.model.Tokenizer)
{
java.lang.Integer v, v, v;
java.net.Proxy v;
java.time.Duration v, v;
boolean v;
dev.ai4j.openai4j.OpenAiClient$Builder v, v, v, v, v, v, v, v, v, v, v;
dev.langchain4j.model.openai.OpenAiEmbeddingModel v;
dev.langchain4j.model.Tokenizer v;
java.util.function.Supplier v;
java.lang.Boolean v, v;
java.lang.String v, v, v, v, v, v;
dev.ai4j.openai4j.OpenAiClient v;
java.lang.Object v, v, v, v, v;
v := @this: dev.langchain4j.model.openai.OpenAiEmbeddingModel;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Integer;
v := @parameter: java.lang.String;
v := @parameter: java.time.Duration;
v := @parameter: java.lang.Integer;
v := @parameter: java.net.Proxy;
v := @parameter: java.lang.Boolean;
v := @parameter: java.lang.Boolean;
v := @parameter: dev.langchain4j.model.Tokenizer;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.Object getOrDefault(java.lang.Object,java.lang.Object)>(v, "https://api.openai.com/v1");
v = "demo";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = "http://langchain4j.dev/demo/openai/v1";
label:
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 = staticinvoke <dev.ai4j.openai4j.OpenAiClient: dev.ai4j.openai4j.OpenAiClient$Builder builder()>();
v = virtualinvoke v.<dev.ai4j.openai4j.OpenAiClient$Builder: dev.ai4j.openai4j.OpenAiClient$Builder openAiApiKey(java.lang.String)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.OpenAiClient$Builder: dev.ai4j.openai4j.OpenAiClient$Builder baseUrl(java.lang.String)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.OpenAiClient$Builder: dev.ai4j.openai4j.OpenAiClient$Builder organizationId(java.lang.String)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.OpenAiClient$Builder: dev.ai4j.openai4j.OpenAiClient$Builder callTimeout(java.time.Duration)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.OpenAiClient$Builder: dev.ai4j.openai4j.OpenAiClient$Builder connectTimeout(java.time.Duration)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.OpenAiClient$Builder: dev.ai4j.openai4j.OpenAiClient$Builder readTimeout(java.time.Duration)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.OpenAiClient$Builder: dev.ai4j.openai4j.OpenAiClient$Builder writeTimeout(java.time.Duration)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.OpenAiClient$Builder: dev.ai4j.openai4j.OpenAiClient$Builder proxy(java.net.Proxy)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.OpenAiClient$Builder: dev.ai4j.openai4j.OpenAiClient$Builder logRequests(java.lang.Boolean)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.OpenAiClient$Builder: dev.ai4j.openai4j.OpenAiClient$Builder logResponses(java.lang.Boolean)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.OpenAiClient$Builder: dev.ai4j.openai4j.OpenAiClient build()>();
v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel: dev.ai4j.openai4j.OpenAiClient client> = v;
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.Object getOrDefault(java.lang.Object,java.lang.Object)>(v, "text-embedding-ada-002");
v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel: java.lang.String modelName> = v;
v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel: java.lang.Integer dimensions> = v;
v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel: java.lang.String user> = 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.openai.OpenAiEmbeddingModel: java.lang.Integer maxRetries> = v;
v = staticinvoke <dev.langchain4j.model.openai.OpenAiEmbeddingModel$lambda_new_0__24: java.util.function.Supplier bootstrap$(dev.langchain4j.model.openai.OpenAiEmbeddingModel)>(v);
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.Object getOrDefault(java.lang.Object,java.util.function.Supplier)>(v, v);
v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel: dev.langchain4j.model.Tokenizer tokenizer> = v;
return;
}
public dev.langchain4j.model.output.Response embedAll(java.util.List)
{
dev.langchain4j.model.output.Response v;
java.util.function.Function v;
dev.langchain4j.model.openai.OpenAiEmbeddingModel v;
java.util.List v;
java.util.stream.Stream v, v;
java.lang.Object v;
java.util.stream.Collector v;
v := @this: dev.langchain4j.model.openai.OpenAiEmbeddingModel;
v := @parameter: java.util.List;
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.model.openai.OpenAiEmbeddingModel$text__25: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toList()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = specialinvoke v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel: dev.langchain4j.model.output.Response embedTexts(java.util.List)>(v);
return v;
}
private dev.langchain4j.model.output.Response embedTexts(java.util.List)
{
dev.langchain4j.model.output.TokenUsage v;
java.util.concurrent.Callable v;
java.lang.Integer v, v;
java.util.function.Function v;
int v;
java.lang.String v, v;
java.util.stream.Collector v;
dev.ai4j.openai4j.shared.Usage v;
dev.langchain4j.model.output.Response v;
dev.ai4j.openai4j.embedding.EmbeddingRequest$Builder v, v, v, v, v;
dev.langchain4j.model.openai.OpenAiEmbeddingModel v;
java.util.List v, v;
java.util.stream.Stream v, v;
dev.ai4j.openai4j.embedding.EmbeddingRequest v;
java.lang.Object v, v;
v := @this: dev.langchain4j.model.openai.OpenAiEmbeddingModel;
v := @parameter: java.util.List;
v = staticinvoke <dev.ai4j.openai4j.embedding.EmbeddingRequest: dev.ai4j.openai4j.embedding.EmbeddingRequest$Builder builder()>();
v = virtualinvoke v.<dev.ai4j.openai4j.embedding.EmbeddingRequest$Builder: dev.ai4j.openai4j.embedding.EmbeddingRequest$Builder input(java.util.List)>(v);
v = v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel: java.lang.String modelName>;
v = virtualinvoke v.<dev.ai4j.openai4j.embedding.EmbeddingRequest$Builder: dev.ai4j.openai4j.embedding.EmbeddingRequest$Builder model(java.lang.String)>(v);
v = v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel: java.lang.Integer dimensions>;
v = virtualinvoke v.<dev.ai4j.openai4j.embedding.EmbeddingRequest$Builder: dev.ai4j.openai4j.embedding.EmbeddingRequest$Builder dimensions(java.lang.Integer)>(v);
v = v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel: java.lang.String user>;
v = virtualinvoke v.<dev.ai4j.openai4j.embedding.EmbeddingRequest$Builder: dev.ai4j.openai4j.embedding.EmbeddingRequest$Builder user(java.lang.String)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.embedding.EmbeddingRequest$Builder: dev.ai4j.openai4j.embedding.EmbeddingRequest build()>();
v = staticinvoke <dev.langchain4j.model.openai.OpenAiEmbeddingModel$lambda_embedTexts_1__26: java.util.concurrent.Callable bootstrap$(dev.langchain4j.model.openai.OpenAiEmbeddingModel,dev.ai4j.openai4j.embedding.EmbeddingRequest)>(v, v);
v = v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel: 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.ai4j.openai4j.embedding.EmbeddingResponse: java.util.List data()>();
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.model.openai.OpenAiEmbeddingModel$lambda_embedTexts_2__27: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toList()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = virtualinvoke v.<dev.ai4j.openai4j.embedding.EmbeddingResponse: dev.ai4j.openai4j.shared.Usage usage()>();
v = staticinvoke <dev.langchain4j.model.openai.InternalOpenAiHelper: dev.langchain4j.model.output.TokenUsage tokenUsageFrom(dev.ai4j.openai4j.shared.Usage)>(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 int estimateTokenCount(java.lang.String)
{
dev.langchain4j.model.openai.OpenAiEmbeddingModel v;
int v;
dev.langchain4j.model.Tokenizer v;
java.lang.String v;
v := @this: dev.langchain4j.model.openai.OpenAiEmbeddingModel;
v := @parameter: java.lang.String;
v = v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel: dev.langchain4j.model.Tokenizer tokenizer>;
v = interfaceinvoke v.<dev.langchain4j.model.Tokenizer: int estimateTokenCountInText(java.lang.String)>(v);
return v;
}
public static dev.langchain4j.model.openai.OpenAiEmbeddingModel withApiKey(java.lang.String)
{
dev.langchain4j.model.openai.OpenAiEmbeddingModel v;
dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder v, v;
java.lang.String v;
v := @parameter: java.lang.String;
v = staticinvoke <dev.langchain4j.model.openai.OpenAiEmbeddingModel: dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder builder()>();
v = virtualinvoke v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder: dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder apiKey(java.lang.String)>(v);
v = virtualinvoke v.<dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder: dev.langchain4j.model.openai.OpenAiEmbeddingModel build()>();
return v;
}
public static dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder builder()
{
java.lang.Object v;
java.util.function.Supplier v;
v = staticinvoke <dev.langchain4j.model.openai.OpenAiEmbeddingModel$init__28: 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/openai/spi/OpenAiEmbeddingModelBuilderFactory;", v);
return v;
}
}