public class dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel extends java.lang.Object implements dev.langchain4j.model.language.StreamingLanguageModel
{
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;
boolean v, v, v, v;
dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel 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.QianfanStreamingLanguageModel;
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.QianfanStreamingLanguageModel: 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.QianfanStreamingLanguageModel: java.lang.String endpoint> = v;
v = v.<dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel: 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.QianfanStreamingLanguageModel: 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.QianfanStreamingLanguageModel: 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 logStreamingResponses(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.QianfanStreamingLanguageModel: 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.QianfanStreamingLanguageModel: 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.QianfanStreamingLanguageModel: java.lang.Integer maxRetries> = v;
v.<dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel: java.lang.Double topP> = v;
v.<dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel: java.lang.Integer topK> = v;
v.<dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel: java.lang.Double penaltyScore> = v;
return;
}
public void generate(java.lang.String, dev.langchain4j.model.StreamingResponseHandler)
{
dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel v;
java.lang.Double v, v, v;
java.lang.Integer v;
java.lang.Runnable v;
dev.langchain4j.model.StreamingResponseHandler v;
dev.langchain4j.model.qianfan.client.StreamingCompletionHandling v;
java.lang.String v, v;
dev.langchain4j.model.qianfan.client.completion.CompletionRequest v;
dev.langchain4j.model.qianfan.client.StreamingResponseHandling v;
dev.langchain4j.model.qianfan.client.SyncOrAsyncOrStreaming v;
java.util.function.Consumer v, v;
dev.langchain4j.model.qianfan.client.QianfanClient v;
dev.langchain4j.model.qianfan.client.completion.CompletionRequest$Builder v, v, v, v, v, v;
dev.langchain4j.model.qianfan.client.ErrorHandling v;
dev.langchain4j.model.qianfan.client.QianfanStreamingResponseBuilder v;
v := @this: dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel;
v := @parameter: java.lang.String;
v := @parameter: dev.langchain4j.model.StreamingResponseHandler;
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.QianfanStreamingLanguageModel: 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.QianfanStreamingLanguageModel: 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.QianfanStreamingLanguageModel: 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.QianfanStreamingLanguageModel: 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 = new dev.langchain4j.model.qianfan.client.QianfanStreamingResponseBuilder;
specialinvoke v.<dev.langchain4j.model.qianfan.client.QianfanStreamingResponseBuilder: void <init>(java.lang.Integer)>(null);
v = v.<dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel: dev.langchain4j.model.qianfan.client.QianfanClient client>;
v = v.<dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel: java.lang.String endpoint>;
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.QianfanClient: dev.langchain4j.model.qianfan.client.SyncOrAsyncOrStreaming completion(dev.langchain4j.model.qianfan.client.completion.CompletionRequest,boolean,java.lang.String)>(v, 1, v);
v = staticinvoke <dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel$lambda_generate_0__3: java.util.function.Consumer bootstrap$(dev.langchain4j.model.qianfan.client.QianfanStreamingResponseBuilder,dev.langchain4j.model.StreamingResponseHandler)>(v, v);
v = interfaceinvoke v.<dev.langchain4j.model.qianfan.client.SyncOrAsyncOrStreaming: dev.langchain4j.model.qianfan.client.StreamingResponseHandling onPartialResponse(java.util.function.Consumer)>(v);
v = staticinvoke <dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel$lambda_generate_1__4: java.lang.Runnable bootstrap$(dev.langchain4j.model.qianfan.client.QianfanStreamingResponseBuilder,dev.langchain4j.model.StreamingResponseHandler)>(v, v);
v = interfaceinvoke v.<dev.langchain4j.model.qianfan.client.StreamingResponseHandling: dev.langchain4j.model.qianfan.client.StreamingCompletionHandling onComplete(java.lang.Runnable)>(v);
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel$onError__5: java.util.function.Consumer bootstrap$(dev.langchain4j.model.StreamingResponseHandler)>(v);
v = interfaceinvoke v.<dev.langchain4j.model.qianfan.client.StreamingCompletionHandling: dev.langchain4j.model.qianfan.client.ErrorHandling onError(java.util.function.Consumer)>(v);
interfaceinvoke v.<dev.langchain4j.model.qianfan.client.ErrorHandling: void execute()>();
return;
}
private static void handle(dev.langchain4j.model.qianfan.client.completion.CompletionResponse, dev.langchain4j.model.StreamingResponseHandler)
{
dev.langchain4j.model.StreamingResponseHandler v;
dev.langchain4j.model.qianfan.client.completion.CompletionResponse v;
java.lang.String v;
boolean v;
v := @parameter: dev.langchain4j.model.qianfan.client.completion.CompletionResponse;
v := @parameter: dev.langchain4j.model.StreamingResponseHandler;
v = virtualinvoke v.<dev.langchain4j.model.qianfan.client.completion.CompletionResponse: java.lang.String getResult()>();
v = staticinvoke <dev.langchain4j.internal.Utils: boolean isNullOrBlank(java.lang.String)>(v);
if v == 0 goto label;
return;
label:
interfaceinvoke v.<dev.langchain4j.model.StreamingResponseHandler: void onNext(java.lang.String)>(v);
return;
}
public static dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel$QianfanStreamingLanguageModelBuilder builder()
{
java.lang.Object v;
java.util.function.Supplier v;
v = staticinvoke <dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel$init__6: 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/qianfan/spi/QianfanStreamingLanguageModelBuilderFactory;", v);
return v;
}
}