public class dev.langchain4j.model.qianfan.client.QianfanClient extends java.lang.Object
{
private static final org.slf4j.Logger log;
private final java.lang.String baseUrl;
private java.lang.String token;
private final okhttp.OkHttpClient okHttpClient;
private final dev.langchain4j.model.qianfan.client.QianfanApi qianfanApi;
private final java.lang.String apiKey;
private final java.lang.String secretKey;
private final boolean logStreamingResponses;
public static final java.lang.String GRANT_TYPE;
public void <init>(java.lang.String, java.lang.String)
{
dev.langchain4j.model.qianfan.client.QianfanClient v;
dev.langchain4j.model.qianfan.client.QianfanClient$Builder v, v, v;
java.lang.String v, v;
v := @this: dev.langchain4j.model.qianfan.client.QianfanClient;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = staticinvoke <dev.langchain4j.model.qianfan.client.QianfanClient: dev.langchain4j.model.qianfan.client.QianfanClient$Builder builder()>();
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: dev.langchain4j.model.qianfan.client.QianfanClient$Builder apiKey(java.lang.String)>(v);
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: dev.langchain4j.model.qianfan.client.QianfanClient$Builder secretKey(java.lang.String)>(v);
specialinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient: void <init>(dev.langchain4j.model.qianfan.client.QianfanClient$Builder)>(v);
return;
}
private void <init>(dev.langchain4j.model.qianfan.client.QianfanClient$Builder)
{
dev.langchain4j.model.qianfan.client.RequestLoggingInterceptor v;
dev.langchain4j.model.qianfan.client.ResponseLoggingInterceptor v;
dev.langchain4j.model.qianfan.client.AuthorizationHeaderInjector v;
java.net.Proxy v, v;
com.google.gson.Gson v;
java.time.Duration v, v, v, v;
boolean v, v, v;
retrofit.Retrofit v;
okhttp.OkHttpClient$Builder v, v, v, v, v;
dev.langchain4j.model.qianfan.client.QianfanClient$Builder v;
retrofit.converter.gson.GsonConverterFactory v;
java.lang.String v, v, v, v, v, v, v, v;
retrofit.Retrofit$Builder v, v, v, v;
java.lang.IllegalArgumentException v, v;
dev.langchain4j.model.qianfan.client.QianfanClient v;
okhttp.OkHttpClient v, v;
java.lang.Object v;
v := @this: dev.langchain4j.model.qianfan.client.QianfanClient;
v := @parameter: dev.langchain4j.model.qianfan.client.QianfanClient$Builder;
specialinvoke v.<java.lang.Object: void <init>()>();
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.lang.String baseUrl>;
v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String baseUrl> = v;
v = new okhttp.OkHttpClient$Builder;
specialinvoke v.<okhttp.OkHttpClient$Builder: void <init>()>();
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.time.Duration callTimeout>;
v = virtualinvoke v.<okhttp.OkHttpClient$Builder: okhttp.OkHttpClient$Builder callTimeout(java.time.Duration)>(v);
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.time.Duration connectTimeout>;
v = virtualinvoke v.<okhttp.OkHttpClient$Builder: okhttp.OkHttpClient$Builder connectTimeout(java.time.Duration)>(v);
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.time.Duration readTimeout>;
v = virtualinvoke v.<okhttp.OkHttpClient$Builder: okhttp.OkHttpClient$Builder readTimeout(java.time.Duration)>(v);
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.time.Duration writeTimeout>;
v = virtualinvoke v.<okhttp.OkHttpClient$Builder: okhttp.OkHttpClient$Builder writeTimeout(java.time.Duration)>(v);
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.lang.String apiKey>;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("apiKey must be defined");
throw v;
label:
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.lang.String secretKey>;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("secretKey must be defined");
throw v;
label:
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.lang.String apiKey>;
if v == null goto label;
v = new dev.langchain4j.model.qianfan.client.AuthorizationHeaderInjector;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.lang.String apiKey>;
specialinvoke v.<dev.langchain4j.model.qianfan.client.AuthorizationHeaderInjector: void <init>(java.lang.String)>(v);
virtualinvoke v.<okhttp.OkHttpClient$Builder: okhttp.OkHttpClient$Builder addInterceptor(okhttp.Interceptor)>(v);
label:
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.net.Proxy proxy>;
if v == null goto label;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.net.Proxy proxy>;
virtualinvoke v.<okhttp.OkHttpClient$Builder: okhttp.OkHttpClient$Builder proxy(java.net.Proxy)>(v);
label:
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: boolean logRequests>;
if v == 0 goto label;
v = new dev.langchain4j.model.qianfan.client.RequestLoggingInterceptor;
specialinvoke v.<dev.langchain4j.model.qianfan.client.RequestLoggingInterceptor: void <init>()>();
virtualinvoke v.<okhttp.OkHttpClient$Builder: okhttp.OkHttpClient$Builder addInterceptor(okhttp.Interceptor)>(v);
label:
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: boolean logResponses>;
if v == 0 goto label;
v = new dev.langchain4j.model.qianfan.client.ResponseLoggingInterceptor;
specialinvoke v.<dev.langchain4j.model.qianfan.client.ResponseLoggingInterceptor: void <init>()>();
virtualinvoke v.<okhttp.OkHttpClient$Builder: okhttp.OkHttpClient$Builder addInterceptor(okhttp.Interceptor)>(v);
label:
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: boolean logStreamingResponses>;
v.<dev.langchain4j.model.qianfan.client.QianfanClient: boolean logStreamingResponses> = v;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.lang.String apiKey>;
v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String apiKey> = v;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.lang.String secretKey>;
v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String secretKey> = v;
v = virtualinvoke v.<okhttp.OkHttpClient$Builder: okhttp.OkHttpClient build()>();
v.<dev.langchain4j.model.qianfan.client.QianfanClient: okhttp.OkHttpClient okHttpClient> = v;
v = new retrofit.Retrofit$Builder;
specialinvoke v.<retrofit.Retrofit$Builder: void <init>()>();
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: java.lang.String baseUrl>;
v = virtualinvoke v.<retrofit.Retrofit$Builder: retrofit.Retrofit$Builder baseUrl(java.lang.String)>(v);
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: okhttp.OkHttpClient okHttpClient>;
v = virtualinvoke v.<retrofit.Retrofit$Builder: retrofit.Retrofit$Builder client(okhttp.OkHttpClient)>(v);
v = <dev.langchain4j.model.qianfan.client.Json: com.google.gson.Gson GSON>;
v = staticinvoke <retrofit.converter.gson.GsonConverterFactory: retrofit.converter.gson.GsonConverterFactory create(com.google.gson.Gson)>(v);
v = virtualinvoke v.<retrofit.Retrofit$Builder: retrofit.Retrofit$Builder addConverterFactory(retrofit.Converter$Factory)>(v);
v = virtualinvoke v.<retrofit.Retrofit$Builder: retrofit.Retrofit build()>();
v = virtualinvoke v.<retrofit.Retrofit: java.lang.Object create(java.lang.Class)>(class "Ldev/langchain4j/model/qianfan/client/QianfanApi;");
v.<dev.langchain4j.model.qianfan.client.QianfanClient: dev.langchain4j.model.qianfan.client.QianfanApi qianfanApi> = v;
return;
}
public void shutdown()
{
okhttp.Cache v;
okhttp.Dispatcher v;
dev.langchain4j.model.qianfan.client.QianfanClient v;
okhttp.OkHttpClient v, v, v;
okhttp.ConnectionPool v;
java.util.concurrent.ExecutorService v;
v := @this: dev.langchain4j.model.qianfan.client.QianfanClient;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: okhttp.OkHttpClient okHttpClient>;
v = virtualinvoke v.<okhttp.OkHttpClient: okhttp.Dispatcher dispatcher()>();
v = virtualinvoke v.<okhttp.Dispatcher: java.util.concurrent.ExecutorService executorService()>();
interfaceinvoke v.<java.util.concurrent.ExecutorService: void shutdown()>();
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: okhttp.OkHttpClient okHttpClient>;
v = virtualinvoke v.<okhttp.OkHttpClient: okhttp.ConnectionPool connectionPool()>();
virtualinvoke v.<okhttp.ConnectionPool: void evictAll()>();
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: okhttp.OkHttpClient okHttpClient>;
virtualinvoke v.<okhttp.OkHttpClient: okhttp.Cache cache()>();
return;
}
public static dev.langchain4j.model.qianfan.client.QianfanClient$Builder builder()
{
dev.langchain4j.model.qianfan.client.QianfanClient$Builder v;
v = new dev.langchain4j.model.qianfan.client.QianfanClient$Builder;
specialinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: void <init>()>();
return v;
}
public dev.langchain4j.model.qianfan.client.SyncOrAsyncOrStreaming chatCompletion(dev.langchain4j.model.qianfan.client.chat.ChatCompletionRequest, java.lang.String)
{
dev.langchain4j.model.qianfan.client.QianfanApi v;
dev.langchain4j.model.qianfan.client.RequestExecutor v;
java.util.function.Function v, v;
java.util.function.Supplier v;
dev.langchain4j.model.qianfan.client.chat.ChatCompletionRequest v;
dev.langchain4j.model.qianfan.client.QianfanClient v;
okhttp.OkHttpClient v;
java.lang.String v, v, v, v, v;
retrofit.Call v;
boolean v;
v := @this: dev.langchain4j.model.qianfan.client.QianfanClient;
v := @parameter: dev.langchain4j.model.qianfan.client.chat.ChatCompletionRequest;
v := @parameter: java.lang.String;
specialinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient: void refreshToken()>();
v = new dev.langchain4j.model.qianfan.client.RequestExecutor;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: dev.langchain4j.model.qianfan.client.QianfanApi qianfanApi>;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String token>;
v = interfaceinvoke v.<dev.langchain4j.model.qianfan.client.QianfanApi: retrofit.Call chatCompletions(java.lang.String,dev.langchain4j.model.qianfan.client.chat.ChatCompletionRequest,java.lang.String)>(v, v, v);
v = staticinvoke <dev.langchain4j.model.qianfan.client.QianfanClient$lambda_chatCompletion_0__21: java.util.function.Function bootstrap$()>();
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: okhttp.OkHttpClient okHttpClient>;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String token>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("rpc/2.0/ai_custom/v1/wenxinworkshop/chat/\u0001?access_token=\u0001");
v = specialinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String formatUrl(java.lang.String)>(v);
v = staticinvoke <dev.langchain4j.model.qianfan.client.QianfanClient$lambda_chatCompletion_1__22: java.util.function.Supplier bootstrap$(dev.langchain4j.model.qianfan.client.chat.ChatCompletionRequest)>(v);
v = staticinvoke <dev.langchain4j.model.qianfan.client.QianfanClient$lambda_chatCompletion_2__23: java.util.function.Function bootstrap$()>();
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: boolean logStreamingResponses>;
specialinvoke v.<dev.langchain4j.model.qianfan.client.RequestExecutor: void <init>(retrofit.Call,java.util.function.Function,okhttp.OkHttpClient,java.lang.String,java.util.function.Supplier,java.lang.Class,java.util.function.Function,boolean)>(v, v, v, v, v, class "Ldev/langchain4j/model/qianfan/client/chat/ChatCompletionResponse;", v, v);
return v;
}
public dev.langchain4j.model.qianfan.client.SyncOrAsyncOrStreaming completion(dev.langchain4j.model.qianfan.client.completion.CompletionRequest, boolean, java.lang.String)
{
dev.langchain4j.model.qianfan.client.QianfanApi v;
dev.langchain4j.model.qianfan.client.RequestExecutor v;
java.util.function.Function v, v;
java.util.function.Supplier v;
java.lang.Boolean v;
java.lang.String v, v, v, v, v;
dev.langchain4j.model.qianfan.client.completion.CompletionRequest v;
boolean v, v;
dev.langchain4j.model.qianfan.client.QianfanClient v;
dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder v, v, v;
okhttp.OkHttpClient v;
retrofit.Call v;
v := @this: dev.langchain4j.model.qianfan.client.QianfanClient;
v := @parameter: dev.langchain4j.model.qianfan.client.completion.CompletionRequest;
v := @parameter: boolean;
v := @parameter: java.lang.String;
specialinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient: void refreshToken()>();
v = staticinvoke <dev.langchain4j.model.qianfan.client.completion.CompletionRequest: dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder builder()>();
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder: dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder 'from'(dev.langchain4j.model.qianfan.client.completion.CompletionRequest)>(v);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder: dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder stream(java.lang.Boolean)>(v);
virtualinvoke v.<dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder: dev.langchain4j.model.qianfan.client.completion.CompletionRequest build()>();
v = new dev.langchain4j.model.qianfan.client.RequestExecutor;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: dev.langchain4j.model.qianfan.client.QianfanApi qianfanApi>;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String token>;
v = interfaceinvoke v.<dev.langchain4j.model.qianfan.client.QianfanApi: retrofit.Call completions(java.lang.String,dev.langchain4j.model.qianfan.client.completion.CompletionRequest,java.lang.String)>(v, v, v);
v = staticinvoke <dev.langchain4j.model.qianfan.client.QianfanClient$lambda_completion_3__24: java.util.function.Function bootstrap$()>();
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: okhttp.OkHttpClient okHttpClient>;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String token>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("rpc/2.0/ai_custom/v1/wenxinworkshop/completions/\u0001?access_token=\u0001");
v = specialinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String formatUrl(java.lang.String)>(v);
v = staticinvoke <dev.langchain4j.model.qianfan.client.QianfanClient$lambda_completion_4__25: java.util.function.Supplier bootstrap$(dev.langchain4j.model.qianfan.client.completion.CompletionRequest)>(v);
v = staticinvoke <dev.langchain4j.model.qianfan.client.QianfanClient$lambda_completion_5__26: java.util.function.Function bootstrap$()>();
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: boolean logStreamingResponses>;
specialinvoke v.<dev.langchain4j.model.qianfan.client.RequestExecutor: void <init>(retrofit.Call,java.util.function.Function,okhttp.OkHttpClient,java.lang.String,java.util.function.Supplier,java.lang.Class,java.util.function.Function,boolean)>(v, v, v, v, v, class "Ldev/langchain4j/model/qianfan/client/completion/CompletionResponse;", v, v);
return v;
}
public dev.langchain4j.model.qianfan.client.SyncOrAsync embedding(dev.langchain4j.model.qianfan.client.embedding.EmbeddingRequest, java.lang.String)
{
dev.langchain4j.model.qianfan.client.QianfanApi v;
dev.langchain4j.model.qianfan.client.embedding.EmbeddingRequest v;
dev.langchain4j.model.qianfan.client.RequestExecutor v;
java.util.function.Function v;
dev.langchain4j.model.qianfan.client.QianfanClient v;
java.lang.String v, v;
retrofit.Call v;
v := @this: dev.langchain4j.model.qianfan.client.QianfanClient;
v := @parameter: dev.langchain4j.model.qianfan.client.embedding.EmbeddingRequest;
v := @parameter: java.lang.String;
specialinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient: void refreshToken()>();
v = new dev.langchain4j.model.qianfan.client.RequestExecutor;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: dev.langchain4j.model.qianfan.client.QianfanApi qianfanApi>;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String token>;
v = interfaceinvoke v.<dev.langchain4j.model.qianfan.client.QianfanApi: retrofit.Call embeddings(java.lang.String,dev.langchain4j.model.qianfan.client.embedding.EmbeddingRequest,java.lang.String)>(v, v, v);
v = staticinvoke <dev.langchain4j.model.qianfan.client.QianfanClient$lambda_embedding_6__27: java.util.function.Function bootstrap$()>();
specialinvoke v.<dev.langchain4j.model.qianfan.client.RequestExecutor: void <init>(retrofit.Call,java.util.function.Function)>(v, v);
return v;
}
private void refreshToken()
{
dev.langchain4j.model.qianfan.client.QianfanApi v;
dev.langchain4j.model.qianfan.client.RequestExecutor v;
java.util.function.Function v;
dev.langchain4j.model.qianfan.client.QianfanClient v;
java.lang.Object v;
java.lang.String v, v;
retrofit.Call v;
v := @this: dev.langchain4j.model.qianfan.client.QianfanClient;
v = new dev.langchain4j.model.qianfan.client.RequestExecutor;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: dev.langchain4j.model.qianfan.client.QianfanApi qianfanApi>;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String apiKey>;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String secretKey>;
v = interfaceinvoke v.<dev.langchain4j.model.qianfan.client.QianfanApi: retrofit.Call getToken(java.lang.String,java.lang.String,java.lang.String)>("client_credentials", v, v);
v = staticinvoke <dev.langchain4j.model.qianfan.client.QianfanClient$getAccessToken__28: java.util.function.Function bootstrap$()>();
specialinvoke v.<dev.langchain4j.model.qianfan.client.RequestExecutor: void <init>(retrofit.Call,java.util.function.Function)>(v, v);
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.RequestExecutor: java.lang.Object execute()>();
v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String token> = v;
return;
}
private java.lang.String formatUrl(java.lang.String)
{
dev.langchain4j.model.qianfan.client.QianfanClient v;
java.lang.String v, v, v;
v := @this: dev.langchain4j.model.qianfan.client.QianfanClient;
v := @parameter: java.lang.String;
v = v.<dev.langchain4j.model.qianfan.client.QianfanClient: java.lang.String baseUrl>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001");
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Ldev/langchain4j/model/qianfan/client/QianfanClient;");
<dev.langchain4j.model.qianfan.client.QianfanClient: org.slf4j.Logger log> = v;
return;
}
}