Browse Source

修改chatApiClient的自定义header功能,添加aliyun额外配置

luoshi 1 year ago
parent
commit
cc182bd3bd

+ 3 - 4
src/main/java/com/qmth/ops/biz/ai/client/ChatApiClient.java

@@ -36,7 +36,7 @@ public abstract class ChatApiClient {
         return config;
     }
 
-    protected abstract Credentials gerCredentials();
+    protected abstract Headers buildHeader(Headers.Builder headerBuilder);
 
     protected abstract Object buildRequest(ChatRequest request);
 
@@ -50,9 +50,8 @@ public abstract class ChatApiClient {
         }
         RequestBody body = RequestBody
                 .create(MediaType.parse("application/json"), mapper.writeValueAsBytes(buildRequest(request)));
-        Credentials credentials = gerCredentials();
-        Request httpRequest = new Request.Builder().url(config.getUrl())
-                .addHeader(credentials.getName(), credentials.getValue()).post(body).build();
+        Request httpRequest = new Request.Builder().url(config.getUrl()).headers(buildHeader(new Headers.Builder()))
+                .post(body).build();
         Response response = client.newCall(httpRequest).execute();
         byte[] data = response.body() != null ? response.body().bytes() : null;
         if (response.isSuccessful()) {

+ 0 - 32
src/main/java/com/qmth/ops/biz/ai/client/Credentials.java

@@ -1,32 +0,0 @@
-package com.qmth.ops.biz.ai.client;
-
-/**
- * API访问凭证信息,用于设置header
- */
-public class Credentials {
-
-    private String name;
-
-    private String value;
-
-    public Credentials(String name, String value) {
-        this.name = name;
-        this.value = value;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getValue() {
-        return value;
-    }
-
-    public void setValue(String value) {
-        this.value = value;
-    }
-}

+ 4 - 3
src/main/java/com/qmth/ops/biz/ai/client/aliyun/llm/AliyunChatClient.java

@@ -7,9 +7,9 @@ import com.qmth.boot.core.exception.ReentrantException;
 import com.qmth.boot.core.exception.StatusException;
 import com.qmth.ops.biz.ai.client.ChatApiClient;
 import com.qmth.ops.biz.ai.client.ChatApiConfig;
-import com.qmth.ops.biz.ai.client.Credentials;
 import com.qmth.ops.biz.ai.client.aliyun.AliyunError;
 import com.qmth.ops.biz.ai.exception.ChatRequestError;
+import okhttp3.Headers;
 
 import java.io.IOException;
 
@@ -24,8 +24,9 @@ public class AliyunChatClient extends ChatApiClient {
     }
 
     @Override
-    protected Credentials gerCredentials() {
-        return new Credentials(AUTH_HEADER_NAME, AUTH_HEADER_VALUE + getConfig().getSecret());
+    protected Headers buildHeader(Headers.Builder headerBuilder) {
+        return headerBuilder.add(AUTH_HEADER_NAME, AUTH_HEADER_VALUE + getConfig().getSecret())
+                .add("X-DashScope-DataInspection", "{\"input\":\"disable\", \"output\":\"disable\"}").build();
     }
 
     @Override

+ 12 - 0
src/main/java/com/qmth/ops/biz/ai/client/aliyun/llm/AliyunChatResult.java

@@ -1,11 +1,15 @@
 package com.qmth.ops.biz.ai.client.aliyun.llm;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.qmth.boot.core.ai.model.llm.ChatResult;
 
 @JsonIgnoreProperties(ignoreUnknown = true)
 public class AliyunChatResult {
 
+    @JsonProperty("request_id")
+    private String requestId;
+
     private AliyunChatOutput output;
 
     private AliyunUsage usage;
@@ -16,6 +20,14 @@ public class AliyunChatResult {
         return result;
     }
 
+    public String getRequestId() {
+        return requestId;
+    }
+
+    public void setRequestId(String requestId) {
+        this.requestId = requestId;
+    }
+
     public AliyunChatOutput getOutput() {
         return output;
     }

+ 3 - 3
src/main/java/com/qmth/ops/biz/ai/client/azure/llm/AzureChatClient.java

@@ -7,8 +7,8 @@ import com.qmth.boot.core.exception.NotFoundException;
 import com.qmth.boot.core.exception.StatusException;
 import com.qmth.ops.biz.ai.client.ChatApiClient;
 import com.qmth.ops.biz.ai.client.ChatApiConfig;
-import com.qmth.ops.biz.ai.client.Credentials;
 import com.qmth.ops.biz.ai.exception.ChatRequestError;
+import okhttp3.Headers;
 
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
@@ -25,8 +25,8 @@ public class AzureChatClient extends ChatApiClient {
     }
 
     @Override
-    protected Credentials gerCredentials() {
-        return new Credentials(AUTH_HEADER_NAME, getConfig().getSecret());
+    protected Headers buildHeader(Headers.Builder headerBuilder) {
+        return headerBuilder.add(AUTH_HEADER_NAME, getConfig().getSecret()).build();
     }
 
     @Override