public class dev.langchain4j.model.qianfan.QianfanLanguageModel extends java.lang.Object implements dev.langchain4j.model.language.LanguageModel
{
private final dev.langchain4j.model.qianfan.client.QianfanClient client;
private final java.lang.String baseUrl;
private final java.lang.Double temperature;
private final java.lang.Double topP;
private final java.lang.String modelName;
private final java.lang.Double penaltyScore;
private final java.lang.Integer maxRetries;
private final java.lang.Integer topK;
private final java.lang.String endpoint;
public void <init>(java.lang.String, java.lang.String, java.lang.String, java.lang.Double, java.lang.Integer, java.lang.Integer, java.lang.Double, java.lang.String, java.lang.String, java.lang.Double, java.lang.Boolean, java.lang.Boolean)
{
java.lang.Integer v, v, v;
dev.langchain4j.model.qianfan.QianfanLanguageModel v;
boolean v, v, v, v;
dev.langchain4j.model.qianfan.client.QianfanClient$Builder v, v, v, v, v, v;
java.lang.Double v, v, v, v;
java.lang.Boolean v, v;
java.lang.String v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v, v;
dev.langchain4j.model.qianfan.client.QianfanClient v;
java.lang.Object v, v, v;
v := @this: dev.langchain4j.model.qianfan.QianfanLanguageModel;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Double;
v := @parameter: java.lang.Integer;
v := @parameter: java.lang.Integer;
v := @parameter: java.lang.Double;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Double;
v := @parameter: java.lang.Boolean;
v := @parameter: java.lang.Boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <dev.langchain4j.internal.Utils: boolean isNullOrBlank(java.lang.String)>(v);
if v != 0 goto label;
v = staticinvoke <dev.langchain4j.internal.Utils: boolean isNullOrBlank(java.lang.String)>(v);
if v == 0 goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(" api key and secret key must be defined. It can be generated here: https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application");
throw v;
label:
v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.String modelName> = v;
v = staticinvoke <dev.langchain4j.internal.Utils: boolean isNullOrBlank(java.lang.String)>(v);
if v == 0 goto label;
v = staticinvoke <dev.langchain4j.model.qianfan.QianfanLanguageModelNameEnum: java.lang.String getEndpoint(java.lang.String)>(v);
goto label;
label:
v = v;
label:
v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.String endpoint> = v;
v = v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.String endpoint>;
v = staticinvoke <dev.langchain4j.internal.Utils: boolean isNullOrBlank(java.lang.String)>(v);
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Qianfan is no such model name. You can see model name here: https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Nlks5zkzu");
throw v;
label:
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.Object getOrDefault(java.lang.Object,java.lang.Object)>(v, "https://aip.baidubce.com");
v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.String baseUrl> = v;
v = staticinvoke <dev.langchain4j.model.qianfan.client.QianfanClient: dev.langchain4j.model.qianfan.client.QianfanClient$Builder builder()>();
v = v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.String baseUrl>;
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: dev.langchain4j.model.qianfan.client.QianfanClient$Builder baseUrl(java.lang.String)>(v);
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);
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: dev.langchain4j.model.qianfan.client.QianfanClient$Builder logRequests(java.lang.Boolean)>(v);
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: dev.langchain4j.model.qianfan.client.QianfanClient$Builder logResponses(java.lang.Boolean)>(v);
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient$Builder: dev.langchain4j.model.qianfan.client.QianfanClient build()>();
v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: dev.langchain4j.model.qianfan.client.QianfanClient client> = v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(0.7);
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.Object getOrDefault(java.lang.Object,java.lang.Object)>(v, v);
v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.Double temperature> = 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.qianfan.QianfanLanguageModel: java.lang.Integer maxRetries> = v;
v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.Double topP> = v;
v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.Integer topK> = v;
v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.Double penaltyScore> = v;
return;
}
public dev.langchain4j.model.output.Response generate(java.lang.String)
{
dev.langchain4j.model.output.TokenUsage v;
java.lang.Double v, v, v;
java.util.concurrent.Callable v;
java.lang.Integer v, v;
dev.langchain4j.model.qianfan.QianfanLanguageModel v;
int v;
java.lang.String v, v, v;
dev.langchain4j.model.qianfan.client.completion.CompletionRequest v;
dev.langchain4j.model.output.FinishReason v;
dev.langchain4j.model.output.Response v;
dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder v, v, v, v, v, v;
java.lang.Object v;
v := @this: dev.langchain4j.model.qianfan.QianfanLanguageModel;
v := @parameter: java.lang.String;
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 prompt(java.lang.String)>(v);
v = v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.Integer topK>;
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder: dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder topK(java.lang.Integer)>(v);
v = v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.Double topP>;
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder: dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder topP(java.lang.Double)>(v);
v = v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.Double temperature>;
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder: dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder temperature(java.lang.Double)>(v);
v = v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: java.lang.Double penaltyScore>;
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder: dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder penaltyScore(java.lang.Double)>(v);
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder: dev.langchain4j.model.qianfan.client.completion.CompletionRequest build()>();
v = staticinvoke <dev.langchain4j.model.qianfan.QianfanLanguageModel$lambda_generate_0__15: java.util.concurrent.Callable bootstrap$(dev.langchain4j.model.qianfan.QianfanLanguageModel,dev.langchain4j.model.qianfan.client.completion.CompletionRequest)>(v, v);
v = v.<dev.langchain4j.model.qianfan.QianfanLanguageModel: 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.qianfan.client.completion.CompletionResponse: java.lang.String getResult()>();
v = staticinvoke <dev.langchain4j.model.qianfan.InternalQianfanHelper: dev.langchain4j.model.output.TokenUsage tokenUsageFrom(dev.langchain4j.model.qianfan.client.completion.CompletionResponse)>(v);
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.completion.CompletionResponse: java.lang.String getFinishReason()>();
v = staticinvoke <dev.langchain4j.model.qianfan.InternalQianfanHelper: dev.langchain4j.model.output.FinishReason finishReasonFrom(java.lang.String)>(v);
v = staticinvoke <dev.langchain4j.model.output.Response: dev.langchain4j.model.output.Response 'from'(java.lang.Object,dev.langchain4j.model.output.TokenUsage,dev.langchain4j.model.output.FinishReason)>(v, v, v);
return v;
}
public static dev.langchain4j.model.qianfan.QianfanLanguageModel$QianfanLanguageModelBuilder builder()
{
dev.langchain4j.model.qianfan.QianfanLanguageModel$QianfanLanguageModelBuilder v;
java.util.Iterator v;
java.util.Collection v;
java.lang.Object v, v;
boolean v;
v = staticinvoke <dev.langchain4j.spi.ServiceHelper: java.util.Collection loadFactories(java.lang.Class)>(class "Ldev/langchain4j/model/qianfan/spi/QianfanLanguageModelBuilderFactory;");
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<dev.langchain4j.model.qianfan.spi.QianfanLanguageModelBuilderFactory: java.lang.Object get()>();
return v;
label:
v = new dev.langchain4j.model.qianfan.QianfanLanguageModel$QianfanLanguageModelBuilder;
specialinvoke v.<dev.langchain4j.model.qianfan.QianfanLanguageModel$QianfanLanguageModelBuilder: void <init>()>();
return v;
}
}