From 84b8d6f675c2f3aed83e0503e79cf1fa05e888e5 Mon Sep 17 00:00:00 2001 From: ageer Date: Sun, 11 May 2025 17:25:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81coze,dify,=E6=B4=BE?= =?UTF-8?q?=E6=AC=A7=E4=BA=91=E7=AD=89=E4=B8=89=E6=96=B9=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 2 +- .../ruoyi/common/chat/config/LocalCache.java | 1 - .../common/chat/constant/OpenAIConst.java | 1 - .../chat/entity/billing/BillingUsage.java | 2 +- .../entity/billing/CreditGrantsResponse.java | 2 +- .../common/chat/entity/billing/DailyCost.java | 2 +- .../common/chat/entity/billing/Datum.java | 1 - .../common/chat/entity/billing/Grants.java | 1 - .../common/chat/entity/billing/LineItem.java | 2 +- .../common/chat/entity/billing/Plan.java | 1 - .../chat/entity/billing/Subscription.java | 2 +- .../chat/entity/chat/BaseChatCompletion.java | 2 +- .../common/chat/entity/chat/BaseMessage.java | 1 - .../common/chat/entity/chat/ChatChoice.java | 1 - .../chat/entity/chat/ChatCompletion.java | 2 +- .../entity/chat/ChatCompletionResponse.java | 2 +- .../chat/ChatCompletionWithPicture.java | 2 +- .../common/chat/entity/chat/Content.java | 1 - .../common/chat/entity/chat/FunctionCall.java | 2 +- .../common/chat/entity/chat/Functions.java | 2 +- .../common/chat/entity/chat/ImageUrl.java | 1 - .../common/chat/entity/chat/Message.java | 2 +- .../chat/entity/chat/MessagePicture.java | 2 - .../common/chat/entity/chat/Parameters.java | 2 +- .../common/chat/entity/common/Choice.java | 1 - .../chat/entity/common/DeleteResponse.java | 2 +- .../chat/entity/common/OpenAiResponse.java | 2 +- .../common/chat/entity/common/Usage.java | 2 +- .../chat/entity/completions/Completion.java | 2 +- .../completions/CompletionResponse.java | 2 +- .../ruoyi/common/chat/entity/edits/Edit.java | 2 +- .../chat/entity/edits/EditResponse.java | 2 +- .../chat/entity/embeddings/Embedding.java | 2 +- .../entity/embeddings/EmbeddingResponse.java | 2 +- .../common/chat/entity/engines/Engine.java | 2 +- .../ruoyi/common/chat/entity/files/File.java | 2 +- .../chat/entity/files/UploadFileResponse.java | 2 +- .../common/chat/entity/images/Image.java | 2 +- .../common/chat/entity/images/ImageEdit.java | 2 +- .../chat/entity/images/ImageResponse.java | 2 +- .../chat/entity/images/ImageVariations.java | 2 +- .../ruoyi/common/chat/entity/images/Item.java | 2 +- .../chat/entity/images/ResponseFormat.java | 2 +- .../common/chat/entity/images/SizeEnum.java | 2 +- .../common/chat/entity/models/Model.java | 2 +- .../chat/entity/models/ModelResponse.java | 2 +- .../common/chat/entity/models/Permission.java | 2 +- .../chat/entity/moderations/Categories.java | 2 +- .../entity/moderations/CategoryScores.java | 2 +- .../chat/entity/moderations/Moderation.java | 2 +- .../moderations/ModerationResponse.java | 2 +- .../chat/entity/moderations/Result.java | 2 +- .../common/chat/entity/whisper/Whisper.java | 2 +- .../chat/entity/whisper/WhisperResponse.java | 2 +- .../chat/listener/WebSocketEventListener.java | 2 +- .../ruoyi/common/chat/openai/OpenAiApi.java | 2 +- .../common/chat/openai/OpenAiClient.java | 2 +- .../chat/openai/OpenAiStreamClient.java | 4 +- .../chat/openai/exception/CommonError.java | 2 +- .../common/chat/openai/exception/IError.java | 2 +- .../openai/function/KeyRandomStrategy.java | 2 +- .../openai/function/KeyStrategyFunction.java | 2 +- .../DefaultOpenAiAuthInterceptor.java | 2 +- .../DynamicKeyOpenAiAuthInterceptor.java | 2 +- .../chat/openai/interceptor/OpenAILogger.java | 2 +- .../OpenAiResponseInterceptor.java | 2 +- .../common/chat/request/ChatRequest.java | 2 +- .../common/chat/request/Dall3Request.java | 2 +- .../chat/sse/ConsoleEventSourceListener.java | 2 +- .../chat/sse/DefaultPluginListener.java | 2 +- .../ruoyi/common/chat/sse/PluginListener.java | 2 +- .../common/chat/utils/TikTokensUtil.java | 2 +- .../common/core/event/ConfigChangeEvent.java | 2 +- .../chat/client/douyu/client/ChatChoice.java | 2 +- .../douyu/client/ChatCompletionResponse.java | 2 +- .../chat/client/douyu/client/Message.java | 2 +- .../live/chat/client/douyu/client/Usage.java | 2 +- .../common/listener/ConfigChangeListener.java | 2 +- ruoyi-modules-api/ruoyi-chat-api/pom.xml | 12 +++ .../main/java/org/ruoyi/domain/ChatModel.java | 7 +- .../java/org/ruoyi/domain/bo/ChatModelBo.java | 7 +- .../domain/request/TranslationRequest.java | 2 +- .../java/org/ruoyi/domain/vo/ChatModelVo.java | 8 +- .../system/domain/bo/SysUserPasswordBo.java | 2 +- .../org/ruoyi/chat/config/ChatConfig.java | 6 +- .../chat/controller/chat/ChatController.java | 2 +- .../ruoyi/chat/domain/bo/GenerateLuma.java | 2 +- .../ruoyi/chat/domain/bo/GenerateLyric.java | 2 +- .../org/ruoyi/chat/enums/ChatModeType.java | 2 + .../org/ruoyi/chat/enums/DisplayType.java | 2 +- .../chat/factory/ChatServiceFactory.java | 43 +++++++++ .../chat/listener/SSEEventSourceListener.java | 2 +- .../ruoyi/chat/service/chat/IChatService.java | 6 +- .../chat/service/chat/UserModelService.java | 35 +------ .../service/chat/impl/CozeServiceImpl.java | 81 ++++++++++++++++ .../service/chat/impl/DifyServiceImpl.java | 96 +++++++++++++++++++ .../service/chat/impl/OllamaServiceImpl.java | 18 +++- .../service/chat/impl/OpenAIServiceImpl.java | 14 ++- .../service/chat/impl/SseServiceImpl.java | 20 +--- .../org/ruoyi/service/VxLoginService.java | 2 +- 100 files changed, 350 insertions(+), 169 deletions(-) create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/ChatServiceFactory.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/CozeServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/DifyServiceImpl.java diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index af82aab5..90a1b50c 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -226,7 +226,7 @@ springdoc: # 标题 title: '标题:RuoYi-Vue-Plus多租户管理系统_接口文档' # 描述 - description: '描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...' + description: ' 用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...' # 版本 version: '版本号: ${ruoyi.version}' # 作者信息 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/config/LocalCache.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/config/LocalCache.java index e90286ee..c8d05595 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/config/LocalCache.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/config/LocalCache.java @@ -6,7 +6,6 @@ import cn.hutool.core.date.DateUnit; import lombok.extern.slf4j.Slf4j; /** - * 描述: * * @author https:www.unfbx.com * @date 2023-03-10 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/constant/OpenAIConst.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/constant/OpenAIConst.java index 6ac62d22..4c673740 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/constant/OpenAIConst.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/constant/OpenAIConst.java @@ -1,7 +1,6 @@ package org.ruoyi.common.chat.constant; /** - * 描述: * * @author https:www.unfbx.com * @since 2023-03-06 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/BillingUsage.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/BillingUsage.java index 2ad8b040..0936f7fb 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/BillingUsage.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/BillingUsage.java @@ -8,7 +8,7 @@ import java.math.BigDecimal; import java.util.List; /** - * 描述:金额消耗信息 + * 金额消耗信息 * * @author https:www.unfbx.com * @since 2023-04-08 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/CreditGrantsResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/CreditGrantsResponse.java index 6b3629f9..93600d80 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/CreditGrantsResponse.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/CreditGrantsResponse.java @@ -8,7 +8,7 @@ import java.io.Serializable; import java.math.BigDecimal; /** - * 描述:余额查询接口返回值 + * 余额查询接口返回值 * * @author https:www.unfbx.com * @since 2023-03-18 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/DailyCost.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/DailyCost.java index b11c9d77..bdbca47a 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/DailyCost.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/DailyCost.java @@ -7,7 +7,7 @@ import lombok.Data; import java.util.List; /** - * 描述:金额消耗列表 + * 金额消耗列表 * * @author https:www.unfbx.com * @since 2023-04-08 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Datum.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Datum.java index e2eb2e4b..ed4b5aec 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Datum.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Datum.java @@ -7,7 +7,6 @@ import lombok.Data; import java.math.BigDecimal; /** - * 描述: * * @author https:www.unfbx.com * @since 2023-03-18 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Grants.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Grants.java index f8f4cce2..25445fcc 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Grants.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Grants.java @@ -7,7 +7,6 @@ import lombok.Data; import java.util.List; /** - * 描述: * * @author https:www.unfbx.com * @since 2023-03-18 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/LineItem.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/LineItem.java index 90499bb6..c6954059 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/LineItem.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/LineItem.java @@ -6,7 +6,7 @@ import lombok.Data; import java.math.BigDecimal; /** - * 描述:金额消耗列表 + * 金额消耗列表 * * @author https:www.unfbx.com * @since 2023-04-08 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Plan.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Plan.java index de74e213..5f7e6468 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Plan.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Plan.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Data; /** - * 描述: * * @author https:www.unfbx.com * @since 2023-04-08 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Subscription.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Subscription.java index f41c94b2..53619864 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Subscription.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/billing/Subscription.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; /** - * 描述:账户信息 + * 账户信息 * * @author https:www.unfbx.com * @since 2023-04-08 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/BaseChatCompletion.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/BaseChatCompletion.java index c0bcd183..4305387b 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/BaseChatCompletion.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/BaseChatCompletion.java @@ -13,7 +13,7 @@ import java.util.Map; import static org.ruoyi.common.chat.entity.chat.BaseChatCompletion.Model.GPT_3_5_TURBO; /** - * 描述: chat模型基础类 + * chat模型基础类 * * @author https:www.unfbx.com * @since 1.1.2 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/BaseMessage.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/BaseMessage.java index 8759aa82..cf100792 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/BaseMessage.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/BaseMessage.java @@ -12,7 +12,6 @@ import java.io.Serializable; import java.util.List; /** - * 描述: * * @author https:www.unfbx.com * @since 1.1.2 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatChoice.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatChoice.java index 54bdf6fa..d0c3f140 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatChoice.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatChoice.java @@ -7,7 +7,6 @@ import lombok.Data; import java.io.Serializable; /** - * 描述: * * @author https:www.unfbx.com * @since 2023-03-02 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletion.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletion.java index 003013b2..217e3e59 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletion.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletion.java @@ -12,7 +12,7 @@ import java.io.Serializable; import java.util.List; /** - * 描述: chat模型参数 + * chat模型参数 * * @author https:www.unfbx.com * 2023-03-02 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletionResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletionResponse.java index 5f02aa38..477e7cf9 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletionResponse.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletionResponse.java @@ -8,7 +8,7 @@ import java.io.Serializable; import java.util.List; /** - * 描述: chat答案类 + * chat答案类 * * @author https:www.unfbx.com * 2023-03-02 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletionWithPicture.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletionWithPicture.java index b7a060df..bc4c5782 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletionWithPicture.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ChatCompletionWithPicture.java @@ -11,7 +11,7 @@ import java.io.Serializable; import java.util.List; /** - * 描述: chat模型附带图片的参数 + * : chat模型附带图片的参数 * * @author https:www.unfbx.com * @since 1.1.2 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Content.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Content.java index 02fdcbb0..0abe01f7 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Content.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Content.java @@ -6,7 +6,6 @@ import lombok.*; import lombok.extern.slf4j.Slf4j; /** - * 描述: * * @author https://www.unfbx.com * @since 1.1.2 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/FunctionCall.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/FunctionCall.java index 66910789..fcd8eccc 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/FunctionCall.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/FunctionCall.java @@ -6,7 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * 描述:函数调用返回值 + * 函数调用返回值 * * @author https://www.unfbx.com * @since 2023-06-14 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Functions.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Functions.java index d245dd2e..b65e0f4a 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Functions.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Functions.java @@ -6,7 +6,7 @@ import lombok.Data; import java.io.Serializable; /** - * 描述:方法参数实体类,实例数据如下 + * 方法参数实体类,实例数据如下 *
  *     {
  *          "name": "get_current_weather",
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ImageUrl.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ImageUrl.java
index 47a0c725..749b9c97 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ImageUrl.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/ImageUrl.java
@@ -8,7 +8,6 @@ import lombok.NoArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 
 /**
- * 描述:
  *
  * @author https://www.unfbx.com
  * 2023-11-10
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Message.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Message.java
index 40412d26..40ef481f 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Message.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Message.java
@@ -10,7 +10,7 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  * @since 2023-03-02
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/MessagePicture.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/MessagePicture.java
index 18a4ee88..db7d77c4 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/MessagePicture.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/MessagePicture.java
@@ -10,8 +10,6 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * 描述:
- *
  * @author https:www.unfbx.com
  * @since 2023-03-02
  */
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Parameters.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Parameters.java
index 48a9036b..7a015357 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Parameters.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/chat/Parameters.java
@@ -6,7 +6,7 @@ import lombok.Data;
 import java.io.Serializable;
 import java.util.List;
 /**
- * 描述:方法参数类,扩展参数可以继承Parameters自己实现
+ *  方法参数类,扩展参数可以继承Parameters自己实现
  * 参考:
  * 
  * {
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/Choice.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/Choice.java
index 59debb53..cc747f14 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/Choice.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/Choice.java
@@ -7,7 +7,6 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/DeleteResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/DeleteResponse.java
index eedd8eaa..7c2238ed 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/DeleteResponse.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/DeleteResponse.java
@@ -6,7 +6,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/OpenAiResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/OpenAiResponse.java
index 5ce90787..15dc7bc5 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/OpenAiResponse.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/OpenAiResponse.java
@@ -6,7 +6,7 @@ import lombok.Data;
 import java.io.Serializable;
 import java.util.List;
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/Usage.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/Usage.java
index 09a92076..188d2d4a 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/Usage.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/common/Usage.java
@@ -7,7 +7,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/completions/Completion.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/completions/Completion.java
index 42fe86de..64057967 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/completions/Completion.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/completions/Completion.java
@@ -10,7 +10,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * 描述: 问题类
+ *   问题类
  *
  * @author https:www.unfbx.com
  * 2023-02-11
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/completions/CompletionResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/completions/CompletionResponse.java
index 31593746..78e14a22 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/completions/CompletionResponse.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/completions/CompletionResponse.java
@@ -9,7 +9,7 @@ import org.ruoyi.common.chat.entity.common.Usage;
 import java.io.Serializable;
 
 /**
- * 描述: 答案类
+ *   答案类
  *
  * @author https:www.unfbx.com
  *  2023-02-11
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/edits/Edit.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/edits/Edit.java
index 4a2da137..662c0bc2 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/edits/Edit.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/edits/Edit.java
@@ -7,7 +7,7 @@ import lombok.extern.slf4j.Slf4j;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/edits/EditResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/edits/EditResponse.java
index 803b742e..07917614 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/edits/EditResponse.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/edits/EditResponse.java
@@ -9,7 +9,7 @@ import org.ruoyi.common.chat.entity.common.Usage;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/embeddings/Embedding.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/embeddings/Embedding.java
index e7789236..d176e2ab 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/embeddings/Embedding.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/embeddings/Embedding.java
@@ -9,7 +9,7 @@ import java.util.List;
 import java.util.Objects;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/embeddings/EmbeddingResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/embeddings/EmbeddingResponse.java
index 00868ef7..ad48b2a1 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/embeddings/EmbeddingResponse.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/embeddings/EmbeddingResponse.java
@@ -8,7 +8,7 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/engines/Engine.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/engines/Engine.java
index ce375a46..72b28c4b 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/engines/Engine.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/engines/Engine.java
@@ -6,7 +6,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/files/File.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/files/File.java
index b696962d..06be2403 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/files/File.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/files/File.java
@@ -6,7 +6,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/files/UploadFileResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/files/UploadFileResponse.java
index 6d1bcda7..c3e87cc7 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/files/UploadFileResponse.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/files/UploadFileResponse.java
@@ -6,7 +6,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/Image.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/Image.java
index 08754494..84f60ffb 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/Image.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/Image.java
@@ -11,7 +11,7 @@ import lombok.extern.slf4j.Slf4j;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  * 2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageEdit.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageEdit.java
index eac0a61b..32ee3675 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageEdit.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageEdit.java
@@ -11,7 +11,7 @@ import java.io.Serializable;
 import java.util.Objects;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageResponse.java
index ca61b454..7ad84150 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageResponse.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageResponse.java
@@ -7,7 +7,7 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageVariations.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageVariations.java
index 34b81b9a..03ea00f1 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageVariations.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ImageVariations.java
@@ -12,7 +12,7 @@ import java.io.Serializable;
 import java.util.Objects;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/Item.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/Item.java
index da7a158b..58f7ca06 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/Item.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/Item.java
@@ -7,7 +7,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ResponseFormat.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ResponseFormat.java
index 4c06dcd2..5a9e1e2d 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ResponseFormat.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/ResponseFormat.java
@@ -6,7 +6,7 @@ import lombok.Getter;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/SizeEnum.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/SizeEnum.java
index d8b02046..fe2997ea 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/SizeEnum.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/images/SizeEnum.java
@@ -6,7 +6,7 @@ import lombok.Getter;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/Model.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/Model.java
index 2848e126..bfedf88d 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/Model.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/Model.java
@@ -8,7 +8,7 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/ModelResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/ModelResponse.java
index 6aa4cea0..f78cf84d 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/ModelResponse.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/ModelResponse.java
@@ -7,7 +7,7 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/Permission.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/Permission.java
index fd66a0a6..8b15a0a6 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/Permission.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/models/Permission.java
@@ -7,7 +7,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  * 2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Categories.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Categories.java
index ebe72e69..69d9add7 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Categories.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Categories.java
@@ -7,7 +7,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/CategoryScores.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/CategoryScores.java
index b14e230a..13f9ed0b 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/CategoryScores.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/CategoryScores.java
@@ -8,7 +8,7 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Moderation.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Moderation.java
index 42dd1bef..f6831f74 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Moderation.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Moderation.java
@@ -10,7 +10,7 @@ import java.util.List;
 import java.util.Objects;
 
 /**
- * 描述:文本审核,敏感词鉴别
+ *  文本审核,敏感词鉴别
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/ModerationResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/ModerationResponse.java
index 046cd0b7..b1a3dd21 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/ModerationResponse.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/ModerationResponse.java
@@ -7,7 +7,7 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Result.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Result.java
index 28dee336..a42682a3 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Result.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/moderations/Result.java
@@ -7,7 +7,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/whisper/Whisper.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/whisper/Whisper.java
index 4ffc5227..7de6ca57 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/whisper/Whisper.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/whisper/Whisper.java
@@ -7,7 +7,7 @@ import lombok.Getter;
 import java.io.Serializable;
 
 /**
- * 描述:语音转文字
+ *  语音转文字
  *
  * @author https:www.unfbx.com
  * @since 2023-03-02
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/whisper/WhisperResponse.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/whisper/WhisperResponse.java
index 3635dd93..d80900fa 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/whisper/WhisperResponse.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/entity/whisper/WhisperResponse.java
@@ -6,7 +6,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  * @since 2023-03-02
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/listener/WebSocketEventListener.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/listener/WebSocketEventListener.java
index 15c47231..c704a28d 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/listener/WebSocketEventListener.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/listener/WebSocketEventListener.java
@@ -16,7 +16,7 @@ import org.springframework.web.socket.WebSocketSession;
 import java.util.Objects;
 
 /**
- * 描述:OpenAI流式输出Socket接收
+ *  OpenAI流式输出Socket接收
  *
  * @author https:www.unfbx.com
  * @date 2023-03-23
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiApi.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiApi.java
index bb0bd124..ba6fa9ed 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiApi.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiApi.java
@@ -40,7 +40,7 @@ import java.time.LocalDate;
 import java.util.Map;
 
 /**
- * 描述: open ai官方api接口
+ *   open ai官方api接口
  *
  * @author https:www.unfbx.com
  * 2023-02-15
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiClient.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiClient.java
index ccc52147..fc8462a0 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiClient.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiClient.java
@@ -56,7 +56,7 @@ import java.util.concurrent.TimeUnit;
 
 
 /**
- * 描述: open ai 客户端
+ *   open ai 客户端
  *
  * @author https:www.unfbx.com
  * @since 2023-02-11
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 4b3cb97e..6ad82182 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
@@ -53,7 +53,7 @@ import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 /**
- * 描述: open ai 客户端
+ *   open ai 客户端
  *
  * @author https:www.unfbx.com
  * 2023-02-28
@@ -190,7 +190,7 @@ public class OpenAiStreamClient {
             ObjectMapper mapper = new ObjectMapper();
             String requestBody = mapper.writeValueAsString(chatCompletion);
             Request request = new Request.Builder()
-                .url(this.apiHost + apiUrl)
+                .url(this.apiHost)
                 .post(RequestBody.create(MediaType.parse(ContentType.JSON.getValue()), requestBody))
                 .build();
             factory.newEventSource(request, eventSourceListener);
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/exception/CommonError.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/exception/CommonError.java
index e59e9cdc..e7cae02e 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/exception/CommonError.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/exception/CommonError.java
@@ -1,7 +1,7 @@
 package org.ruoyi.common.chat.openai.exception;
 
 /**
- * 描述: 错误
+ *   错误
  *
  * @author https:www.unfbx.com
  *  2023-02-11
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/exception/IError.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/exception/IError.java
index 84af81c7..0e17a63a 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/exception/IError.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/exception/IError.java
@@ -1,6 +1,6 @@
 package org.ruoyi.common.chat.openai.exception;
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-11
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/function/KeyRandomStrategy.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/function/KeyRandomStrategy.java
index 5dc10a0b..e4945d63 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/function/KeyRandomStrategy.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/function/KeyRandomStrategy.java
@@ -5,7 +5,7 @@ import cn.hutool.core.util.RandomUtil;
 import java.util.List;
 
 /**
- * 描述:随机策略
+ *  随机策略
  *
  * @author https:www.unfbx.com
  * @since 2023-04-03
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/function/KeyStrategyFunction.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/function/KeyStrategyFunction.java
index 5ce5af05..c446414b 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/function/KeyStrategyFunction.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/function/KeyStrategyFunction.java
@@ -3,7 +3,7 @@ package org.ruoyi.common.chat.openai.function;
 import java.util.function.Function;
 
 /**
- * 描述:key 的获取策略
+ *  key 的获取策略
  * jdk默认实现
  * @see Function
  *
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/DefaultOpenAiAuthInterceptor.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/DefaultOpenAiAuthInterceptor.java
index 97154704..1165bc28 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/DefaultOpenAiAuthInterceptor.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/DefaultOpenAiAuthInterceptor.java
@@ -9,7 +9,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * 描述:请求增加header apikey
+ *  请求增加header apikey
  *
  * @author https:www.unfbx.com
  * @since 2023-03-23
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/DynamicKeyOpenAiAuthInterceptor.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/DynamicKeyOpenAiAuthInterceptor.java
index 1f8c7588..6fd892a5 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/DynamicKeyOpenAiAuthInterceptor.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/DynamicKeyOpenAiAuthInterceptor.java
@@ -16,7 +16,7 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
- * 描述:动态处理key的鉴权拦截器
+ *  动态处理key的鉴权拦截器
  *
  * @author https:www.unfbx.com
  * @since 2023-04-25
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/OpenAILogger.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/OpenAILogger.java
index c0801e2f..dc32a69b 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/OpenAILogger.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/OpenAILogger.java
@@ -4,7 +4,7 @@ import lombok.extern.slf4j.Slf4j;
 import okhttp3.logging.HttpLoggingInterceptor;
 
 /**
- * 描述: 日志
+ *   日志
  *
  * @author https:www.unfbx.com
  * 2023-02-28
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/OpenAiResponseInterceptor.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/OpenAiResponseInterceptor.java
index 6d656a23..936bcab7 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/OpenAiResponseInterceptor.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/interceptor/OpenAiResponseInterceptor.java
@@ -13,7 +13,7 @@ import java.io.IOException;
 import java.util.Objects;
 
 /**
- * 描述:openai 返回值处理Interceptor
+ *  openai 返回值处理Interceptor
  *
  * @author https:www.unfbx.com
  * @since  2023-03-23
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java
index c611c74a..ed62cb42 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java
@@ -7,7 +7,7 @@ import org.ruoyi.common.chat.entity.chat.Message;
 import java.util.List;
 
 /**
- * 描述:对话请求对象
+ *  对话请求对象
  *
  * @author ageerle
  * @sine 2023-04-08
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/Dall3Request.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/Dall3Request.java
index c6625de9..727fbf33 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/Dall3Request.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/Dall3Request.java
@@ -4,7 +4,7 @@ import jakarta.validation.constraints.NotEmpty;
 import lombok.Data;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  * @sine 2023-04-08
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/ConsoleEventSourceListener.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/ConsoleEventSourceListener.java
index e02b2655..4202e81e 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/ConsoleEventSourceListener.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/ConsoleEventSourceListener.java
@@ -10,7 +10,7 @@ import okhttp3.sse.EventSourceListener;
 import java.util.Objects;
 
 /**
- * 描述: sse
+ *   sse
  *
  * @author https:www.unfbx.com
  * 2023-02-28
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/DefaultPluginListener.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/DefaultPluginListener.java
index ab6fcf1e..7a55ca9a 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/DefaultPluginListener.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/DefaultPluginListener.java
@@ -8,7 +8,7 @@ import org.ruoyi.common.chat.openai.OpenAiStreamClient;
 import org.ruoyi.common.chat.openai.plugin.PluginAbstract;
 
 /**
- * 描述: 插件开发返回信息收集sse监听器
+ *   插件开发返回信息收集sse监听器
  *
  * @author https:www.unfbx.com
  * 2023-08-18
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/PluginListener.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/PluginListener.java
index 8b9d4a4f..f1bfa44b 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/PluginListener.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/PluginListener.java
@@ -19,7 +19,7 @@ import org.ruoyi.common.chat.openai.plugin.PluginParam;
 import java.util.Objects;
 
 /**
- * 描述: 插件开发返回信息收集sse监听器
+ *   插件开发返回信息收集sse监听器
  *
  * @author https:www.unfbx.com
  * 2023-08-18
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/utils/TikTokensUtil.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/utils/TikTokensUtil.java
index 2000651d..f333ed70 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/utils/TikTokensUtil.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/utils/TikTokensUtil.java
@@ -15,7 +15,7 @@ import org.jetbrains.annotations.NotNull;
 import java.util.*;
 
 /**
- * 描述:token计算工具类
+ *  token计算工具类
  *
  * @author https:www.unfbx.com
  * @since 2023-04-04
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/event/ConfigChangeEvent.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/event/ConfigChangeEvent.java
index 67244af4..816668a4 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/event/ConfigChangeEvent.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/event/ConfigChangeEvent.java
@@ -3,7 +3,7 @@ package org.ruoyi.common.core.event;
 import org.springframework.context.ApplicationEvent;
 
 /**
- * 描述:定义一个事件类,用于通知配置变化
+ *  定义一个事件类,用于通知配置变化
  *
  * @author ageerle@163.com
  * date 2024/5/19
diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java
index 7919ad15..42ba7798 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java
@@ -7,7 +7,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  * @since 2023-03-02
diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java
index 3134d4ee..56488357 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java
@@ -7,7 +7,7 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * 描述: chat答案类
+ *   chat答案类
  *
  * @author https:www.unfbx.com
  * 2023-03-02
diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java
index 7ab7d80b..4aef1fd2 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java
@@ -9,7 +9,7 @@ import lombok.Getter;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  * @since 2023-03-02
diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java
index 5595bc08..aabe418d 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java
@@ -7,7 +7,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 /**
- * 描述:
+ *  
  *
  * @author https:www.unfbx.com
  *  2023-02-15
diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java
index b6b4fec8..06dcc3de 100644
--- a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java
+++ b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java
@@ -10,7 +10,7 @@ import org.springframework.context.ApplicationListener;
 import org.springframework.stereotype.Component;
 
 /**
- * 描述:创建一个监听器,用于处理配置变化事件
+ *  创建一个监听器,用于处理配置变化事件
  *
  * @author ageerle@163.com
  * date 2024/5/19
diff --git a/ruoyi-modules-api/ruoyi-chat-api/pom.xml b/ruoyi-modules-api/ruoyi-chat-api/pom.xml
index e2506bad..b47d9c3e 100644
--- a/ruoyi-modules-api/ruoyi-chat-api/pom.xml
+++ b/ruoyi-modules-api/ruoyi-chat-api/pom.xml
@@ -71,6 +71,18 @@
             spring-ai-starter-model-openai
         
 
+        
+            io.github.imfangs
+            dify-java-client
+            1.0.7
+        
+
+        
+            com.coze
+            coze-api
+            0.3.1
+        
+
     
 
 
diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatModel.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatModel.java
index 5dfce097..816ab8bb 100644
--- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatModel.java
+++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatModel.java
@@ -47,7 +47,7 @@ public class ChatModel extends BaseEntity {
     /**
      * 模型价格
      */
-    private Long modelPrice;
+    private Double modelPrice;
 
     /**
      * 计费类型
@@ -69,11 +69,6 @@ public class ChatModel extends BaseEntity {
      */
     private String apiHost;
 
-    /**
-     * 请求地址后缀 - 兼容多平台
-     */
-    @ExcelProperty(value = "请求地址后缀")
-    private String apiUrl;
 
     /**
      * 密钥
diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java
index f66908ad..5af9bc31 100644
--- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java
+++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java
@@ -49,7 +49,7 @@ public class ChatModelBo extends BaseEntity {
      * 模型价格
      */
     @NotNull(message = "模型价格不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long modelPrice;
+    private Double modelPrice;
 
     /**
      * 计费类型
@@ -80,11 +80,6 @@ public class ChatModelBo extends BaseEntity {
     @NotBlank(message = "密钥不能为空", groups = { AddGroup.class, EditGroup.class })
     private String apiKey;
 
-    /**
-     * 请求地址后缀 - 兼容多平台
-     */
-    @ExcelProperty(value = "请求地址后缀")
-    private String apiUrl;
 
     /**
      * 备注
diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/request/TranslationRequest.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/request/TranslationRequest.java
index c8121e7e..83977698 100644
--- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/request/TranslationRequest.java
+++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/request/TranslationRequest.java
@@ -3,7 +3,7 @@ package org.ruoyi.domain.request;
 import lombok.Data;
 
 /**
- * 描述:翻译请求对象
+ *  翻译请求对象
  *
  * @author ageerle@163.com
  * date 2025/1/13
diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java
index 49bd93c3..d477435b 100644
--- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java
+++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java
@@ -56,7 +56,7 @@ public class ChatModelVo implements Serializable {
      * 模型价格
      */
     @ExcelProperty(value = "模型价格")
-    private Long modelPrice;
+    private Double modelPrice;
 
     /**
      * 计费类型
@@ -88,12 +88,6 @@ public class ChatModelVo implements Serializable {
     @ExcelProperty(value = "密钥")
     private String apiKey;
 
-    /**
-     * 请求地址后缀 - 兼容多平台
-     */
-    @ExcelProperty(value = "请求地址后缀")
-    private String apiUrl;
-
     /**
      * 备注
      */
diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java
index 493ba0aa..ae9a0854 100644
--- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java
+++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java
@@ -7,7 +7,7 @@ import java.io.Serializable;
 
 
 /**
- * 描述:用户密码修改bo
+ *  用户密码修改bo
  *
  * @author ageerle@163.com
  * date 2025/3/9
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/ChatConfig.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/ChatConfig.java
index ec577d3c..e49dce7d 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/ChatConfig.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/ChatConfig.java
@@ -32,12 +32,11 @@ public class ChatConfig {
     public OpenAiStreamClient openAiStreamClient() {
         String apiHost = configService.getConfigValue("chat", "apiHost");
         String apiKey = configService.getConfigValue("chat", "apiKey");
-        String url = configService.getConfigValue("chat", "apiUrl");
-        openAiStreamClient = createOpenAiStreamClient(apiHost,apiKey,url);
+        openAiStreamClient = createOpenAiStreamClient(apiHost,apiKey);
         return openAiStreamClient;
     }
 
-    public static OpenAiStreamClient createOpenAiStreamClient(String apiHost, String apiKey,String url) {
+    public static OpenAiStreamClient createOpenAiStreamClient(String apiHost, String apiKey) {
         HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new OpenAILogger());
         httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS);
         OkHttpClient okHttpClient = new OkHttpClient.Builder()
@@ -48,7 +47,6 @@ public class ChatConfig {
             .build();
         return OpenAiStreamClient.builder()
             .apiHost(apiHost)
-            .apiUrl(url)
             .apiKey(Collections.singletonList(apiKey))
             .keyStrategy(new KeyRandomStrategy())
             .okHttpClient(okHttpClient)
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatController.java
index a082cd9b..1d2568e8 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatController.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatController.java
@@ -28,7 +28,7 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
 
 
 /**
- * 描述:聊天管理
+ *  聊天管理
  *
  * @author ageerle@163.com
  * @date 2023-03-01
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLuma.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLuma.java
index 8cef12cf..2fa34c7c 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLuma.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLuma.java
@@ -3,7 +3,7 @@ package org.ruoyi.chat.domain.bo;
 import lombok.Data;
 
 /**
- * 描述:文生视频请求对象
+ *  文生视频请求对象
  *
  * @author ageerle@163.com
  * date 2024/6/27
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLyric.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLyric.java
index 699c7801..4a59d75e 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLyric.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLyric.java
@@ -3,7 +3,7 @@ package org.ruoyi.chat.domain.bo;
 import lombok.Data;
 
 /**
- * 描述:生成歌词
+ *  生成歌词
  *
  * @author ageerle@163.com
  * date 2024/6/27
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/ChatModeType.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/ChatModeType.java
index 04c5e453..d29bccd3 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/ChatModeType.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/ChatModeType.java
@@ -6,6 +6,8 @@ import lombok.Getter;
 public enum ChatModeType {
     OLLAMA("ollama", "本地部署模型"),
     CHAT("chat", "中转模型"),
+    DIFY("dify", "DIFY"),
+    COZE("coze", "扣子"),
     VECTOR("vector", "知识库向量模型");
 
     private final String code;
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/DisplayType.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/DisplayType.java
index a4eae3d9..85813ff5 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/DisplayType.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/DisplayType.java
@@ -3,7 +3,7 @@ package org.ruoyi.chat.enums;
 import lombok.Getter;
 
 /**
- * 描述:是否显示
+ *  是否显示
  *
  * @author ageerle@163.com
  * date 2025/4/10
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/ChatServiceFactory.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/ChatServiceFactory.java
new file mode 100644
index 00000000..f1e88a9a
--- /dev/null
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/ChatServiceFactory.java
@@ -0,0 +1,43 @@
+package org.ruoyi.chat.factory;
+
+import org.ruoyi.chat.service.chat.IChatService;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * 聊天服务工厂类
+ *
+ * @author ageerle@163.com
+ * date 2025/5/10
+ */
+@Component
+public class ChatServiceFactory  implements ApplicationContextAware {
+    private final Map chatServiceMap = new ConcurrentHashMap<>();
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        // 初始化时收集所有IChatService的实现
+        Map serviceMap = applicationContext.getBeansOfType(IChatService.class);
+        for (IChatService service : serviceMap.values()) {
+            if (service != null) {
+                chatServiceMap.put(service.getCategory(), service);
+            }
+        }
+    }
+
+    /**
+     * 根据模型类别获取对应的聊天服务实现
+     */
+    public IChatService getChatService(String category) {
+        IChatService service = chatServiceMap.get(category);
+        if (service == null) {
+            throw new IllegalArgumentException("不支持的模型类别: " + category);
+        }
+        return service;
+    }
+}
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java
index f8fd1cf9..7185d510 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java
@@ -24,7 +24,7 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
 import java.util.Objects;
 
 /**
- * 描述:OpenAIEventSourceListener
+ *  OpenAIEventSourceListener
  *
  * @author https:www.unfbx.com
  * @date 2023-02-22
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java
index fc070721..55ea2ac8 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java
@@ -16,6 +16,8 @@ public interface IChatService {
      * @param chatRequest 请求对象
      */
     SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter);
-
-
+    /**
+     * 获取此服务支持的模型类别
+     */
+    String getCategory();
 }
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/UserModelService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/UserModelService.java
index ada36d09..01b677d7 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/UserModelService.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/UserModelService.java
@@ -1,26 +1,16 @@
 package org.ruoyi.chat.service.chat;
 
-import cn.dev33.satoken.stp.StpUtil;
 import lombok.RequiredArgsConstructor;
 import org.ruoyi.chat.enums.DisplayType;
-import org.ruoyi.chat.enums.UserGradeType;
-import org.ruoyi.common.satoken.utils.LoginHelper;
 import org.ruoyi.domain.bo.ChatModelBo;
-import org.ruoyi.domain.bo.ChatPackagePlanBo;
 import org.ruoyi.domain.vo.ChatModelVo;
-import org.ruoyi.domain.vo.ChatPackagePlanVo;
 import org.ruoyi.service.IChatModelService;
-import org.ruoyi.service.IChatPackagePlanService;
-import org.ruoyi.system.domain.vo.SysUserVo;
-import org.ruoyi.system.service.ISysUserService;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 /**
- * 描述:用户模型信息
+ * 用户模型信息
  *
  * @author ageerle@163.com
  * date 2025/4/10
@@ -32,30 +22,9 @@ public class UserModelService {
 
     private final IChatModelService chatModelService;
 
-    private final ISysUserService userService;
-
-    private final IChatPackagePlanService packagePlanService;
-
     public List modelList(ChatModelBo bo) {
         bo.setModelShow(DisplayType.VISIBLE.getCode());
-        List chatModelList = chatModelService.queryList(bo);
-        ChatPackagePlanBo sysPackagePlanBo = new ChatPackagePlanBo();
-        if (StpUtil.isLogin()) {
-            Long userId = LoginHelper.getLoginUser().getUserId();
-            SysUserVo sysUserVo = userService.selectUserById(userId);
-            if (UserGradeType.UNPAID.getCode().equals(sysUserVo.getUserGrade())){
-                sysPackagePlanBo.setName("Free");
-                ChatPackagePlanVo chatPackagePlanVo = packagePlanService.queryList(sysPackagePlanBo).get(0);
-                List array = new ArrayList<>(Arrays.asList(chatPackagePlanVo.getPlanDetail().split(",")));
-                chatModelList.removeIf(model -> !array.contains(model.getModelName()));
-            }
-        }else {
-            sysPackagePlanBo.setName("Visitor");
-            ChatPackagePlanVo sysPackagePlanVo = packagePlanService.queryList(sysPackagePlanBo).get(0);
-            List array = new ArrayList<>(Arrays.asList(sysPackagePlanVo.getPlanDetail().split(",")));
-            chatModelList.removeIf(model -> !array.contains(model.getModelName()));
-        }
-        return new ArrayList<>(chatModelList);
+        return chatModelService.queryList(bo);
     }
 
 }
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/CozeServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/CozeServiceImpl.java
new file mode 100644
index 00000000..6da0988c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/CozeServiceImpl.java
@@ -0,0 +1,81 @@
+package org.ruoyi.chat.service.chat.impl;
+
+import com.coze.openapi.client.chat.CreateChatReq;
+import com.coze.openapi.client.chat.model.ChatEvent;
+import com.coze.openapi.client.chat.model.ChatEventType;
+import com.coze.openapi.client.connversations.message.model.Message;
+import com.coze.openapi.service.auth.TokenAuth;
+import com.coze.openapi.service.config.Consts;
+import com.coze.openapi.service.service.CozeAPI;
+import io.reactivex.Flowable;
+import lombok.extern.slf4j.Slf4j;
+import org.ruoyi.chat.enums.ChatModeType;
+import org.ruoyi.chat.service.chat.IChatService;
+import org.ruoyi.common.chat.request.ChatRequest;
+import org.ruoyi.domain.vo.ChatModelVo;
+import org.ruoyi.service.IChatModelService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
+
+import java.util.Collections;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * 扣子聊天管理
+ *
+ * @author ageer
+ */
+@Service
+@Slf4j
+public class CozeServiceImpl implements IChatService {
+
+    @Autowired
+    private IChatModelService chatModelService;
+
+    @Override
+    public SseEmitter chat(ChatRequest chatRequest, SseEmitter emitter) {
+        ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel());
+
+        TokenAuth authCli = new TokenAuth(chatModelVo.getApiKey());
+        CozeAPI coze =
+                new CozeAPI.Builder()
+                        .baseURL(chatModelVo.getApiHost())
+                        .auth(authCli)
+                        .readTimeout(10000)
+                        .build();
+        CreateChatReq req =
+                CreateChatReq.builder()
+                        .botID(chatModelVo.getModelName())
+                        .userID(chatRequest.getUserId().toString())
+                        .messages(Collections.singletonList(Message.buildUserQuestionText("What can you do?")))
+                        .build();
+
+        Flowable resp = coze.chat().stream(req);
+        ExecutorService executor = Executors.newFixedThreadPool(10);
+        executor.submit(() -> {
+            resp.blockingForEach(
+                    event -> {
+                        if (ChatEventType.CONVERSATION_MESSAGE_DELTA.equals(event.getEvent())) {
+                            emitter.send(event.getMessage().getContent());
+                            log.info("coze: {}", event.getMessage().getContent());
+                        }
+                        if (ChatEventType.CONVERSATION_CHAT_COMPLETED.equals(event.getEvent())) {
+                            emitter.complete();
+                            log.info("Token usage: {}", event.getChat().getUsage().getTokenCount());
+                        }
+                    }
+            );
+            coze.shutdownExecutor();
+        });
+
+
+        return emitter;
+    }
+
+    @Override
+    public String getCategory() {
+        return ChatModeType.COZE.getCode();
+    }
+}
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/DifyServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/DifyServiceImpl.java
new file mode 100644
index 00000000..06989bb0
--- /dev/null
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/DifyServiceImpl.java
@@ -0,0 +1,96 @@
+package org.ruoyi.chat.service.chat.impl;
+
+import io.github.imfangs.dify.client.DifyClient;
+import io.github.imfangs.dify.client.DifyClientFactory;
+import io.github.imfangs.dify.client.callback.ChatStreamCallback;
+import io.github.imfangs.dify.client.enums.ResponseMode;
+import io.github.imfangs.dify.client.event.ErrorEvent;
+import io.github.imfangs.dify.client.event.MessageEndEvent;
+import io.github.imfangs.dify.client.event.MessageEvent;
+import io.github.imfangs.dify.client.model.DifyConfig;
+import io.github.imfangs.dify.client.model.chat.ChatMessage;
+
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+
+import org.ruoyi.chat.enums.ChatModeType;
+import org.ruoyi.chat.service.chat.IChatService;
+import org.ruoyi.common.chat.request.ChatRequest;
+import org.ruoyi.domain.vo.ChatModelVo;
+import org.ruoyi.service.IChatModelService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
+
+/**
+ * dify 聊天管理
+ *
+ * @author ageer
+ */
+@Service
+@Slf4j
+public class DifyServiceImpl implements IChatService {
+
+    @Autowired
+    private IChatModelService chatModelService;
+
+    @Override
+    public SseEmitter chat(ChatRequest chatRequest, SseEmitter emitter) {
+        ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel());
+
+        // 使用自定义配置创建客户端
+        DifyConfig config = DifyConfig.builder()
+                .baseUrl(chatModelVo.getApiHost())
+                .apiKey(chatModelVo.getApiKey())
+                .connectTimeout(5000)
+                .readTimeout(60000)
+                .writeTimeout(30000)
+                .build();
+        DifyClient chatClient = DifyClientFactory.createClient(config);
+
+        // 创建聊天消息
+        ChatMessage message = ChatMessage.builder()
+                .query(chatRequest.getPrompt())
+                .user(chatRequest.getUserId().toString())
+                .responseMode(ResponseMode.STREAMING)
+                .build();
+
+        // 发送流式消息
+        try {
+            chatClient.sendChatMessageStream(message, new ChatStreamCallback() {
+                @SneakyThrows
+                @Override
+                public void onMessage(MessageEvent event) {
+                    emitter.send(event.getAnswer());
+                    log.info("收到消息片段: {}", event.getAnswer());
+                }
+
+                @Override
+                public void onMessageEnd(MessageEndEvent event) {
+                    emitter.complete();
+                    log.info("消息结束,完整消息ID: {}", event.getMessageId());
+                }
+
+                @Override
+                public void onError(ErrorEvent event) {
+                    System.err.println("错误: " + event.getMessage());
+                }
+
+                @Override
+                public void onException(Throwable throwable) {
+                    System.err.println("异常: " + throwable.getMessage());
+                }
+            });
+        } catch (Exception e) {
+            log.error("dify请求失败:{}", e.getMessage());
+        }
+
+        return emitter;
+    }
+
+    @Override
+    public String getCategory() {
+        return ChatModeType.DIFY.getCode();
+    }
+
+}
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java
index f06461b1..d07b8014 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java
@@ -7,6 +7,8 @@ import io.github.ollama4j.models.chat.OllamaChatRequestBuilder;
 import io.github.ollama4j.models.chat.OllamaChatRequestModel;
 import io.github.ollama4j.models.generate.OllamaStreamHandler;
 import lombok.extern.slf4j.Slf4j;
+import org.ruoyi.chat.enums.ChatModeType;
+import org.ruoyi.chat.service.chat.IChatService;
 import org.ruoyi.chat.util.SSEUtil;
 import org.ruoyi.common.chat.entity.chat.Message;
 import org.ruoyi.common.chat.request.ChatRequest;
@@ -22,14 +24,18 @@ import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
 
+/**
+ * @author ageer
+ */
 @Service
 @Slf4j
-public class OllamaServiceImpl  {
+public class OllamaServiceImpl implements IChatService {
 
-   @Autowired
-   private  IChatModelService chatModelService;
+    @Autowired
+    private IChatModelService chatModelService;
 
-    public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) {
+    @Override
+    public SseEmitter chat(ChatRequest chatRequest, SseEmitter emitter) {
         ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel());
         String host = chatModelVo.getApiHost();
         List msgList = chatRequest.getMessages();
@@ -73,4 +79,8 @@ public class OllamaServiceImpl  {
         return emitter;
     }
 
+    @Override
+    public String getCategory() {
+        return ChatModeType.OLLAMA.getCode();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java
index b202ea09..094689c2 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java
@@ -3,6 +3,7 @@ package org.ruoyi.chat.service.chat.impl;
 import io.modelcontextprotocol.client.McpSyncClient;
 import lombok.extern.slf4j.Slf4j;
 import org.ruoyi.chat.config.ChatConfig;
+import org.ruoyi.chat.enums.ChatModeType;
 import org.ruoyi.chat.listener.SSEEventSourceListener;
 import org.ruoyi.chat.service.chat.IChatService;
 import org.ruoyi.common.chat.entity.chat.ChatCompletion;
@@ -21,6 +22,9 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
 import java.util.List;
 
 
+/**
+ * @author ageer
+ */
 @Service
 @Slf4j
 public class OpenAIServiceImpl implements IChatService {
@@ -28,9 +32,6 @@ public class OpenAIServiceImpl implements IChatService {
     @Autowired
     private IChatModelService chatModelService;
 
-    private OpenAiStreamClient openAiStreamClient;
-
-
     @Value("${spring.ai.mcp.client.enabled}")
     private Boolean enabled;
 
@@ -47,7 +48,7 @@ public class OpenAIServiceImpl implements IChatService {
     @Override
     public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) {
         ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel());
-        openAiStreamClient = ChatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey(),chatModelVo.getApiUrl());
+        OpenAiStreamClient openAiStreamClient = ChatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey());
         List messages = chatRequest.getMessages();
         if (enabled) {
             String toolString = mcpChat(chatRequest.getPrompt());
@@ -69,4 +70,9 @@ public class OpenAIServiceImpl implements IChatService {
         return this.chatClient.prompt(prompt).call().content();
     }
 
+    @Override
+    public String getCategory() {
+        return ChatModeType.CHAT.getCode();
+    }
+
 }
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java
index c12ed44e..cc5f2896 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java
@@ -8,7 +8,9 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import okhttp3.ResponseBody;
 import org.ruoyi.chat.enums.ChatModeType;
+import org.ruoyi.chat.factory.ChatServiceFactory;
 import org.ruoyi.chat.service.chat.IChatCostService;
+import org.ruoyi.chat.service.chat.IChatService;
 import org.ruoyi.chat.service.chat.ISseService;
 import org.ruoyi.chat.util.IpUtil;
 import org.ruoyi.chat.util.SSEUtil;
@@ -61,9 +63,7 @@ public class SseServiceImpl implements ISseService {
 
     private final IChatModelService chatModelService;
 
-    private final OpenAIServiceImpl openAIService;
-
-    private final OllamaServiceImpl ollamaService;
+    private final ChatServiceFactory chatServiceFactory;
 
     private final IChatSessionService chatSessionService;
 
@@ -95,7 +95,8 @@ public class SseServiceImpl implements ISseService {
                 chatCostService.deductToken(chatRequest);
             }
             // 根据模型分类调用不同的处理逻辑
-            switchModelAndHandle(chatRequest,sseEmitter);
+            IChatService chatService = chatServiceFactory.getChatService(chatModelVo.getCategory());
+            chatService.chat(chatRequest, sseEmitter);
         } catch (Exception e) {
             log.error(e.getMessage(),e);
             SSEUtil.sendErrorEvent(sseEmitter,e.getMessage());
@@ -147,17 +148,6 @@ public class SseServiceImpl implements ISseService {
             }
     }
 
-    /**
-     *  根据模型名称前缀调用不同的处理逻辑
-     */
-    private void switchModelAndHandle(ChatRequest chatRequest,SseEmitter emitter) {
-        // 调用ollama中部署的本地模型
-        if (ChatModeType.OLLAMA.getCode().equals(chatModelVo.getCategory())) {
-            ollamaService.chat(chatRequest,emitter);
-        } else {
-            openAIService.chat(chatRequest,emitter);
-        }
-    }
 
     /**
      *  构建消息列表
diff --git a/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/VxLoginService.java b/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/VxLoginService.java
index 31e6876b..874a8bf9 100644
--- a/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/VxLoginService.java
+++ b/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/VxLoginService.java
@@ -26,7 +26,7 @@ import org.springframework.stereotype.Service;
 import java.util.UUID;
 
 /**
- * 描述:微信公众号登录
+ *  微信公众号登录
  *
  * @author ageerle@163.com
  * date 2025/4/30