From 1bddf5df3b77e505a9f41a1efa7b081cde32f931 Mon Sep 17 00:00:00 2001
From: ageerle <ageerle@163.com>
Date: 星期五, 09 五月 2025 16:45:41 +0800
Subject: [PATCH] feat: 兼容多平台模型

---
 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java
index ef03cb2..4b3cb97 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java
@@ -72,6 +72,11 @@
     private String apiHost;
 
     /**
+     * 鑷畾涔塽rl 鍏煎澶氫釜骞冲彴
+     */
+    private String apiUrl;
+
+    /**
      * 鑷畾涔夌殑okHttpClient
      * 濡傛灉涓嶈嚜瀹氫箟 锛屽氨鏄敤sdk榛樿鐨凮kHttpClient瀹炰緥
      */
@@ -111,6 +116,11 @@
             builder.apiHost = OpenAIConst.OPENAI_HOST;
         }
         apiHost = builder.apiHost;
+
+        if (StrUtil.isBlank(builder.apiUrl)) {
+            builder.apiUrl = OpenAIConst.apiUrl;
+        }
+        apiUrl = builder.apiUrl;
 
         if (Objects.isNull(builder.keyStrategy)) {
             builder.keyStrategy = new KeyRandomStrategy();
@@ -180,7 +190,7 @@
             ObjectMapper mapper = new ObjectMapper();
             String requestBody = mapper.writeValueAsString(chatCompletion);
             Request request = new Request.Builder()
-                .url(this.apiHost + "v1/chat/completions")
+                .url(this.apiHost + apiUrl)
                 .post(RequestBody.create(MediaType.parse(ContentType.JSON.getValue()), requestBody))
                 .build();
             factory.newEventSource(request, eventSourceListener);
@@ -611,6 +621,8 @@
          */
         private String apiHost;
 
+        private String apiUrl;
+
         /**
          * 鑷畾涔塐khttpClient
          */
@@ -645,6 +657,16 @@
             return this;
         }
 
+        /**
+         * @param val 鑷畾涔夎姹傚悗缂�
+         * @return Builder
+         * @see OpenAIConst
+         */
+        public Builder apiUrl(String val) {
+            apiUrl = val;
+            return this;
+        }
+
         public Builder keyStrategy(KeyStrategyFunction val) {
             keyStrategy = val;
             return this;

--
Gitblit v1.9.3