From 1bddf5df3b77e505a9f41a1efa7b081cde32f931 Mon Sep 17 00:00:00 2001 From: ageerle Date: Fri, 9 May 2025 16:45:41 +0800 Subject: [PATCH 01/20] =?UTF-8?q?feat:=20=E5=85=BC=E5=AE=B9=E5=A4=9A?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/chat/constant/OpenAIConst.java | 2 ++ .../chat/openai/OpenAiStreamClient.java | 24 ++++++++++++++++++- .../main/java/org/ruoyi/domain/ChatModel.java | 7 ++++++ .../java/org/ruoyi/domain/bo/ChatModelBo.java | 7 ++++++ .../java/org/ruoyi/domain/vo/ChatModelVo.java | 7 +++++- .../org/ruoyi/chat/config/ChatConfig.java | 6 +++-- .../service/chat/impl/OpenAIServiceImpl.java | 2 +- script/sql/update/20250509.sql | 4 ++++ 8 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 script/sql/update/20250509.sql 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 bab2821c..6ac62d22 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 @@ -10,6 +10,8 @@ public class OpenAIConst { public final static String OPENAI_HOST = "https://api.openai.com/"; + public final static String apiUrl = "v1/chat/completions"; + public final static int SUCCEED_CODE = 200; } 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 ef03cb24..4b3cb97e 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 @@ -71,6 +71,11 @@ public class OpenAiStreamClient { */ private String apiHost; + /** + * 自定义url 兼容多个平台 + */ + private String apiUrl; + /** * 自定义的okHttpClient * 如果不自定义 ,就是用sdk默认的OkHttpClient实例 @@ -112,6 +117,11 @@ public class OpenAiStreamClient { } 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 @@ public class OpenAiStreamClient { 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 @@ public class OpenAiStreamClient { */ private String apiHost; + private String apiUrl; + /** * 自定义OkhttpClient */ @@ -645,6 +657,16 @@ public class OpenAiStreamClient { 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; 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 f67e7657..5dfce097 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 @@ -1,6 +1,7 @@ package org.ruoyi.domain; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; @@ -68,6 +69,12 @@ 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 45e0705c..f66908ad 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 @@ -1,5 +1,6 @@ package org.ruoyi.domain.bo; +import com.alibaba.excel.annotation.ExcelProperty; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; import org.ruoyi.domain.ChatModel; @@ -79,6 +80,12 @@ 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/vo/ChatModelVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java index 56efb598..49bd93c3 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 @@ -88,11 +88,16 @@ public class ChatModelVo implements Serializable { @ExcelProperty(value = "密钥") private String apiKey; + /** + * 请求地址后缀 - 兼容多平台 + */ + @ExcelProperty(value = "请求地址后缀") + private String apiUrl; + /** * 备注 */ @ExcelProperty(value = "备注") private String remark; - } 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 e49dce7d..ec577d3c 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,11 +32,12 @@ public class ChatConfig { public OpenAiStreamClient openAiStreamClient() { String apiHost = configService.getConfigValue("chat", "apiHost"); String apiKey = configService.getConfigValue("chat", "apiKey"); - openAiStreamClient = createOpenAiStreamClient(apiHost,apiKey); + String url = configService.getConfigValue("chat", "apiUrl"); + openAiStreamClient = createOpenAiStreamClient(apiHost,apiKey,url); return openAiStreamClient; } - public static OpenAiStreamClient createOpenAiStreamClient(String apiHost, String apiKey) { + public static OpenAiStreamClient createOpenAiStreamClient(String apiHost, String apiKey,String url) { HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new OpenAILogger()); httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS); OkHttpClient okHttpClient = new OkHttpClient.Builder() @@ -47,6 +48,7 @@ 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/service/chat/impl/OpenAIServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java index c2e5ed31..b202ea09 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 @@ -47,7 +47,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()); + openAiStreamClient = ChatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey(),chatModelVo.getApiUrl()); List messages = chatRequest.getMessages(); if (enabled) { String toolString = mcpChat(chatRequest.getPrompt()); diff --git a/script/sql/update/20250509.sql b/script/sql/update/20250509.sql new file mode 100644 index 00000000..19bfe5e1 --- /dev/null +++ b/script/sql/update/20250509.sql @@ -0,0 +1,4 @@ +ALTER TABLE `chat_model` + ADD COLUMN `api_url` varchar(50) NULL COMMENT '请求后缀' AFTER `api_key`; + +INSERT INTO `chat_config` (`id`, `category`, `config_name`, `config_value`, `config_dict`, `create_dept`, `create_time`, `create_by`, `update_by`, `update_time`, `remark`, `version`, `del_flag`, `update_ip`, `tenant_id`) VALUES (1779450794872414211, 'chat', 'apiUrl', 'v1/chat/completions', 'API 请求后缀', 103, '2024-04-14 18:05:05', '1', '1', '2025-04-23 22:29:04', NULL, NULL, '0', NULL, 0); From 9c2586ab43da025776808b80077eb8481f3bb348 Mon Sep 17 00:00:00 2001 From: ageerle <32251822+ageerle@users.noreply.github.com> Date: Fri, 9 May 2025 17:24:55 +0800 Subject: [PATCH 02/20] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7d20c406..bf95a4ee 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,8 @@ [license-url]: https://github.com/ageerle/ruoyi-ai/blob/master/LICENSE.txt [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555 +## 🌿 第三方生态 +- [PPIO 派欧云:一键调用高性价比的开源模型 API 和 GPU 容器](https://ppinfra.com/user/register?invited_by=P8QTUY&utm_source=github_ruoyi-ai) ### 附:技术讨论群 From fb492d41f3b1f085c6a5997e9c1356c329d892d2 Mon Sep 17 00:00:00 2001 From: zhangpengxiang Date: Sun, 11 May 2025 10:55:33 +0800 Subject: [PATCH 03/20] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Excel=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=90=91=E9=87=8F=E5=BA=93=E7=AE=A1=E7=90=86createSchema?= =?UTF-8?q?=E6=96=B9=E6=B3=95WeaviateEmbeddingStore.builder().build();?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E6=9E=84=E5=BB=BA=E6=8A=A5=E9=94=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-modules-api/ruoyi-knowledge-api/pom.xml | 12 ++++++++++++ .../chain/loader/ResourceLoaderFactory.java | 9 +++++---- .../ruoyi/chain/split/ExcelTextSplitter.java | 17 +++++++++++++++++ .../main/java/org/ruoyi/constant/FileType.java | 11 +++++++++++ .../service/impl/VectorStoreServiceImpl.java | 9 +++++++-- 5 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/ExcelTextSplitter.java diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml b/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml index f6412e1b..83eac39a 100644 --- a/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml @@ -103,6 +103,18 @@ 1.19.6 + + dev.langchain4j + langchain4j-document-parser-apache-tika + + + + + commons-io + commons-io + 2.17.0 + + diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java index aa72d761..ec33c668 100644 --- a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java @@ -1,10 +1,7 @@ package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; -import org.ruoyi.chain.split.CharacterTextSplitter; -import org.ruoyi.chain.split.CodeTextSplitter; -import org.ruoyi.chain.split.MarkdownTextSplitter; -import org.ruoyi.chain.split.TokenTextSplitter; +import org.ruoyi.chain.split.*; import org.ruoyi.constant.FileType; import org.springframework.stereotype.Component; @@ -16,6 +13,8 @@ public class ResourceLoaderFactory { private final CodeTextSplitter codeTextSplitter; private final MarkdownTextSplitter markdownTextSplitter; private final TokenTextSplitter tokenTextSplitter; + private final ExcelTextSplitter excelTextSplitter; + public ResourceLoader getLoaderByFileType(String fileType){ if (FileType.isTextFile(fileType)){ return new TextFileLoader(characterTextSplitter); @@ -25,6 +24,8 @@ public class ResourceLoaderFactory { return new PdfFileLoader(characterTextSplitter); } else if (FileType.isMdFile(fileType)) { return new MarkDownFileLoader(markdownTextSplitter); + }else if (FileType.isExcel(fileType)) { + return new ExcelFileLoader(excelTextSplitter); }else if (FileType.isCodeFile(fileType)) { return new CodeFileLoader(codeTextSplitter); }else { diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/ExcelTextSplitter.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/ExcelTextSplitter.java new file mode 100644 index 00000000..cc2b5f04 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/ExcelTextSplitter.java @@ -0,0 +1,17 @@ +package org.ruoyi.chain.split; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +@AllArgsConstructor +@Slf4j +public class ExcelTextSplitter implements TextSplitter{ + @Override + public List split(String content, String kid) { + return null; + } +} diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/constant/FileType.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/constant/FileType.java index aa141679..e939508b 100644 --- a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/constant/FileType.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/constant/FileType.java @@ -7,6 +7,8 @@ public class FileType { public static final String DOC = "doc"; public static final String DOCX = "docx"; public static final String PDF = "pdf"; + public static final String XLS = "xls"; + public static final String XLSX = "xlsx"; public static final String LOG = "log"; public static final String XML = "xml"; @@ -88,4 +90,13 @@ public class FileType { } } + public static boolean isExcel(String type){ + if (type.equalsIgnoreCase(XLS) || type.equalsIgnoreCase(XLSX)){ + return true; + } + else { + return false; + } + } + } diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/VectorStoreServiceImpl.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/VectorStoreServiceImpl.java index 294342a6..d74176a4 100644 --- a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/VectorStoreServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/VectorStoreServiceImpl.java @@ -11,6 +11,7 @@ import dev.langchain4j.store.embedding.EmbeddingSearchRequest; import dev.langchain4j.store.embedding.EmbeddingStore; import dev.langchain4j.store.embedding.filter.Filter; import dev.langchain4j.store.embedding.filter.comparison.IsEqualTo; +import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore; import dev.langchain4j.store.embedding.milvus.MilvusEmbeddingStore; import dev.langchain4j.store.embedding.qdrant.QdrantEmbeddingStore; import dev.langchain4j.store.embedding.weaviate.WeaviateEmbeddingStore; @@ -39,11 +40,11 @@ public class VectorStoreServiceImpl implements VectorStoreService { private final ConfigService configService; - Map> storeMap; + Map> storeMap = new HashMap<>(); @Override public void createSchema(String kid,String modelName) { - EmbeddingStore embeddingStore = WeaviateEmbeddingStore.builder().build(); + EmbeddingStore embeddingStore; switch (modelName) { case "weaviate" -> { String protocol = configService.getConfigValue("weaviate", "protocol"); @@ -78,6 +79,10 @@ public class VectorStoreServiceImpl implements VectorStoreService { .collectionName(collectionName) .build(); } + default -> { + //使用内存 + embeddingStore = new InMemoryEmbeddingStore<>(); + } } storeMap.put(kid,embeddingStore); } From 7b3b727c0e6cd9a754169f305403b8db4baf0448 Mon Sep 17 00:00:00 2001 From: zhangpengxiang Date: Sun, 11 May 2025 14:50:11 +0800 Subject: [PATCH 04/20] =?UTF-8?q?=E8=A1=A5=E5=85=85Excel=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/chain/loader/ExcelFileLoader.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ExcelFileLoader.java diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ExcelFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ExcelFileLoader.java new file mode 100644 index 00000000..b47ce11f --- /dev/null +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ExcelFileLoader.java @@ -0,0 +1,41 @@ +package org.ruoyi.chain.loader; + +import dev.langchain4j.data.document.Document; +import dev.langchain4j.data.document.parser.apache.tika.ApacheTikaDocumentParser; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chain.split.TextSplitter; +import org.ruoyi.common.core.exception.UtilException; +import org.springframework.stereotype.Component; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.List; +@Component +@AllArgsConstructor +@Slf4j +public class ExcelFileLoader implements ResourceLoader { + private final TextSplitter textSplitter; + private static final int DEFAULT_BUFFER_SIZE = 8192; + @Override + public String getContent(InputStream inputStream) { + // 使用带缓冲的输入流包装(保持原流不自动关闭) + try (InputStream bufferedStream = new BufferedInputStream(inputStream, DEFAULT_BUFFER_SIZE)) { + ApacheTikaDocumentParser apacheTikaDocumentParser = new ApacheTikaDocumentParser(); + Document document = apacheTikaDocumentParser.parse(bufferedStream); + return document.text(); + } catch (IOException e) { + String errorMsg = "Excel文件流读取失败"; + throw new UtilException(errorMsg, e); + } catch (RuntimeException e) { + String errorMsg = "Excel内容解析异常"; + throw new UtilException(errorMsg, e); + } + } + + @Override + public List getChunkList(String content, String kid) { + return textSplitter.split(content, kid); + } +} From 84b8d6f675c2f3aed83e0503e79cf1fa05e888e5 Mon Sep 17 00:00:00 2001 From: ageer Date: Sun, 11 May 2025 17:25:02 +0800 Subject: [PATCH 05/20] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81coze,dify,?= =?UTF-8?q?=E6=B4=BE=E6=AC=A7=E4=BA=91=E7=AD=89=E4=B8=89=E6=96=B9=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=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

From e3da640737feb920dd8b0d589f37b6d3db282aa0 Mon Sep 17 00:00:00 2001
From: ageer 
Date: Sun, 11 May 2025 18:37:51 +0800
Subject: [PATCH 06/20] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E4=BC=98?=
 =?UTF-8?q?=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../chat/openai/OpenAiStreamClient.java       |  1 -
 .../common/chat/openai/TestOpenAIAPI.java     |  2 +-
 .../org/ruoyi/common/chat/plugin/CmdReq.java  | 13 ---
 .../org/ruoyi/common/chat/plugin/CmdResp.java | 12 ---
 .../ruoyi/common/chat/plugin/SqlPlugin.java   | 88 -------------------
 .../org/ruoyi/common/chat/plugin/SqlReq.java  | 13 ---
 .../org/ruoyi/common/chat/plugin/SqlResp.java | 12 ---
 .../douyu/client/DouyuLiveChatClientTest.java |  7 --
 .../client/douyu/util/DouyuCodecUtilTest.java |  8 +-
 .../client/huya/util/HuyaCodecUtilTest.java   |  5 +-
 .../client/kuaishou/api/KuaishouApisTest.java | 10 +--
 .../itchat4j/client/SingleHttpClient.java     |  1 -
 .../itchat4j/utils/tools/CommonTools.java     |  3 -
 .../common/wechat/web/utils/MD5Util.java      |  1 -
 .../chat/controller/chat/ChatController.java  |  3 +-
 .../service/chat/impl/OllamaServiceImpl.java  |  1 -
 16 files changed, 5 insertions(+), 175 deletions(-)
 delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdReq.java
 delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdResp.java
 delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlPlugin.java
 delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlReq.java
 delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlResp.java

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 6ad82182..3867ee7c 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
@@ -344,7 +344,6 @@ public class OpenAiStreamClient {
 
         BillingUsage billingUsage = billingUsage(start.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), end.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
         double totalUsage = billingUsage.getTotalUsage().doubleValue() / 100;
-        System.out.println(totalUsage);
         Subscription subscription = subscription();
         KeyInfo keyInfo = new KeyInfo();
         String start_key = key.substring(0, 6);
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/TestOpenAIAPI.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/TestOpenAIAPI.java
index 349f5c14..3df000d8 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/TestOpenAIAPI.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/TestOpenAIAPI.java
@@ -21,7 +21,7 @@ public class TestOpenAIAPI {
             .build();
 
         try (Response response = client.newCall(request).execute()) {
-            System.out.println(response.body().string());
+
         }
     }
 
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdReq.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdReq.java
deleted file mode 100644
index a275150b..00000000
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdReq.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.ruoyi.common.chat.plugin;
-
-
-import lombok.Data;
-import org.ruoyi.common.chat.openai.plugin.PluginParam;
-
-@Data
-public class CmdReq extends PluginParam {
-    /**
-     * 指令
-     */
-    private String cmd;
-}
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdResp.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdResp.java
deleted file mode 100644
index 4e101393..00000000
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdResp.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.ruoyi.common.chat.plugin;
-
-import lombok.Data;
-
-@Data
-public class CmdResp {
-
-    /**
-     * 返回结果
-     */
-    private String result;
-}
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlPlugin.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlPlugin.java
deleted file mode 100644
index a40734d7..00000000
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlPlugin.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.ruoyi.common.chat.plugin;
-
-import org.ruoyi.common.chat.openai.plugin.PluginAbstract;
-
-import java.sql.*;
-
-/**
- * @author ageer
- */
-public class SqlPlugin extends PluginAbstract {
-
-    public SqlPlugin(Class r) {
-        super(r);
-    }
-
-
-
-    @Override
-    public SqlResp func(SqlReq args) {
-        SqlResp resp = new SqlResp();
-        resp.setUserBalance(getBalance(args.getUsername()));
-        return resp;
-    }
-
-    @Override
-    public String content(SqlResp resp) {
-        return  "用户余额:"+resp.getUserBalance();
-    }
-
-
-    public String getBalance(String userName) {
-        // MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
-        String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
-        String DB_URL = "jdbc:mysql://43.139.70.230:3306/ry-vue";
-        // 数据库的用户名与密码,需要根据自己的设置
-        String USER = "ry-vue";
-        String PASS = "BXZiGsY35K523Xfx";
-        Connection conn = null;
-        Statement stmt = null;
-        String balance = "0.1";
-
-        try{
-            // 注册 JDBC 驱动
-            Class.forName(JDBC_DRIVER);
-
-            // 打开链接
-            System.out.println("连接数据库...");
-            conn = DriverManager.getConnection(DB_URL,USER,PASS);
-
-            // 执行查询
-            System.out.println(" 实例化Statement对象...");
-            stmt = conn.createStatement();
-            String sql;
-            sql = "SELECT user_balance FROM sys_user where user_name ='" + userName + "'";
-            ResultSet rs = stmt.executeQuery(sql);
-            // 展开结果集数据库
-            while(rs.next()){
-                // 通过字段检索
-                balance = rs.getString("user_balance");
-                // 输出数据
-                System.out.print("余额: " + balance);
-                System.out.print("\n");
-            }
-            // 完成后关闭
-            rs.close();
-            stmt.close();
-            conn.close();
-        }catch(SQLException se){
-            // 处理 JDBC 错误
-            se.printStackTrace();
-        }catch(Exception e){
-            // 处理 Class.forName 错误
-            e.printStackTrace();
-        }finally{
-            // 关闭资源
-            try{
-                if(stmt!=null) stmt.close();
-            }catch(SQLException se2){
-            }// 什么都不做
-            try{
-                if(conn!=null) conn.close();
-            }catch(SQLException se){
-                se.printStackTrace();
-            }
-        }
-       return balance;
-    }
-}
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlReq.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlReq.java
deleted file mode 100644
index 481ba72c..00000000
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlReq.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.ruoyi.common.chat.plugin;
-
-
-import lombok.Data;
-import org.ruoyi.common.chat.openai.plugin.PluginParam;
-
-@Data
-public class SqlReq extends PluginParam {
-    /**
-     * 用户名称
-     */
-    private String username;
-}
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlResp.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlResp.java
deleted file mode 100644
index b84b555b..00000000
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlResp.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.ruoyi.common.chat.plugin;
-
-import lombok.Data;
-
-@Data
-public class SqlResp {
-
-    /**
-     * 用户余额
-     */
-    private String userBalance;
-}
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/DouyuLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java
index 56cc6d0e..f7683afc 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java
@@ -45,11 +45,7 @@ import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHan
 
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
-import java.io.IOException;
 import java.util.Objects;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
@@ -95,12 +91,9 @@ class DouyuLiveChatClientTest implements IDouyuConnectionListener, IDouyuMsgList
                     .build();
 
             long startTime = System.currentTimeMillis(); // 获取开始时间的毫秒数
-            System.out.println("执行前.......");
             Thread.sleep(3000);
-            System.out.println("执行后.......");
             long endTime = System.currentTimeMillis(); // 获取结束时间的毫秒数
             long timeDiff = endTime - startTime; // 计算时间差
-            System.out.println("执行时间 " + timeDiff / 1000 + " 秒。");
 
             try (Response response = okClient.newCall(request).execute()) {
                 if (response.body() != null) {
diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java
index b4d72604..919995d3 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java
@@ -48,7 +48,6 @@ class DouyuCodecUtilTest {
         Map stringObjectMap = DouyuCodecUtil.parseDouyuSttStringToMap(mapkb);
         assertNotNull(stringObjectMap);
         stringObjectMap.forEach((string, o) -> {
-            System.out.println(string);
         });
     }
 
@@ -58,7 +57,6 @@ class DouyuCodecUtilTest {
         Map stringObjectMap = DouyuCodecUtil.parseDouyuSttStringToMap(pdrinfo);
         assertNotNull(stringObjectMap);
         stringObjectMap.forEach((string, o) -> {
-            System.out.println(string);
         });
     }
 
@@ -78,7 +76,6 @@ class DouyuCodecUtilTest {
                 }});
             }});
         }});
-        System.out.println(douyuSttString);
         assertEquals("key1@=value1/key2@=2/key3@=11@AA=11@AS12@AA=12@AS@S22@AA=22@AS21@AA=21@AS@S/".length(), douyuSttString.length());
     }
 
@@ -87,8 +84,6 @@ class DouyuCodecUtilTest {
         String mapkb = "type@=mapkb/pk_time@=600/teams@=team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S/";
         IDouyuMsg iDouyuMsg = DouyuCodecUtil.parseDouyuSttString(mapkb, DouyuCodecUtil.MSG_TYPE_RECEIVE);
         String douyuSttString = DouyuCodecUtil.toDouyuSttString(iDouyuMsg);
-        System.out.println(mapkb);
-        System.out.println(douyuSttString);
         assertEquals(mapkb.length(), douyuSttString.length());
         IDouyuMsg douyuSttStringMsg = DouyuCodecUtil.parseDouyuSttString(douyuSttString, DouyuCodecUtil.MSG_TYPE_RECEIVE);
         assertNotNull(douyuSttStringMsg);
@@ -97,6 +92,5 @@ class DouyuCodecUtilTest {
     @Test
     void unescape() {
         String unescape = DouyuCodecUtil.unescape("team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S");
-        System.out.println(unescape);
     }
-}
\ No newline at end of file
+}
diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java
index aabfed7e..71749f05 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java
@@ -26,7 +26,6 @@ class HuyaCodecUtilTest {
         ConnectParaInfo wsConnectParaInfo = ConnectParaInfo.newWSConnectParaInfo(ver, exp, appSrc);
         byte[] byteArray = wsConnectParaInfo.toByteArray();
         String s = HuyaCodecUtil.ab2str(byteArray);
-        System.out.println(s);
     }
 
     @Test
@@ -36,7 +35,6 @@ class HuyaCodecUtilTest {
         String s = HuyaCodecUtil.ab2str(byteArray);
 
         String btoa = HuyaCodecUtil.btoa(s);
-        System.out.println(btoa);
     }
 
     @Test
@@ -67,7 +65,6 @@ class HuyaCodecUtilTest {
         LiveLaunchReq liveLaunchReq = new LiveLaunchReq();
         liveLaunchReq = wupReq.getUniAttribute().getByClass("tReq", liveLaunchReq);
         UserId tId = liveLaunchReq.getTId();
-        System.out.println(wupReq.getTarsServantRequest().getVersion());
     }
 
     @Test
@@ -96,4 +93,4 @@ class HuyaCodecUtilTest {
 
         UserId tId = getLivingInfoReq.getTId();
     }
-}
\ No newline at end of file
+}
diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java
index db2fa9eb..8bc3d05f 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java
@@ -28,13 +28,5 @@ class KuaishouApisTest {
 
     @Test
     void sendComment() {
-        System.out.println(KuaishouApis.sendComment(System.getenv("cookie"),
-                "3x6pb6bcmjrarvs",
-                KuaishouApis.SendCommentRequest
-                        .builder()
-                        .liveStreamId("XKLoBv2mAEo")
-                        .content("666666a")
-                        .build()
-        ));
     }
-}
\ No newline at end of file
+}
diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java
index 7fcc9bfb..201b17ae 100644
--- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java
+++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java
@@ -84,7 +84,6 @@ public class SingleHttpClient {
             if (params != null) {
                 String paramStr = EntityUtils.toString(new UrlEncodedFormEntity(params, Consts.UTF_8));
                 httpGet = new HttpGet(url + "?" + paramStr);
-//                System.out.println(url + "?" + paramStr);
             } else {
                 httpGet = new HttpGet(url);
             }
diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java
index 17b2aff8..68cc5614 100644
--- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java
+++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java
@@ -292,9 +292,6 @@ public class CommonTools {
 			sb.append(content.substring(lastStart));
 		}
 		if (sb.length() != 0) {
-			System.out.println(EmojiParser.parseToUnicode(sb.toString()));
-			System.out.println(EmojiParser.parseToAliases(EmojiParser.parseToUnicode(sb.toString())));
-			System.out.println(EmojiParser.removeAllEmojis(sb.toString()));
 		}
 	}
 
diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java
index 1748c30a..ccf72a10 100644
--- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java
+++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java
@@ -61,7 +61,6 @@ public class MD5Util {
 	}
 
 	public static void main(String[] args) {
-		System.out.println(MD5Encrypt("wxwobot"));
 	}
 
 
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 1d2568e8..032c44dd 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
@@ -70,8 +70,7 @@ public class ChatController {
     @PostMapping("/audio")
     @ResponseBody
     public WhisperResponse audio(@RequestParam("file") MultipartFile file) {
-        WhisperResponse whisperResponse = sseService.speechToTextTranscriptionsV2(file);
-        return whisperResponse;
+        return sseService.speechToTextTranscriptionsV2(file);
     }
 
     /**
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 d07b8014..532b052e 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
@@ -62,7 +62,6 @@ public class OllamaServiceImpl implements IChatService {
                 OllamaStreamHandler streamHandler = (s) -> {
                     String substr = s.substring(response.length());
                     response.append(substr);
-                    System.out.println(substr);
                     try {
                         emitter.send(substr);
                     } catch (IOException e) {

From 2ca650db76110d01f1477baad528a4cbed666272 Mon Sep 17 00:00:00 2001
From: ageer 
Date: Sun, 11 May 2025 19:37:52 +0800
Subject: [PATCH 07/20] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E4=BC=98?=
 =?UTF-8?q?=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../ruoyi/common/chat/openai/OpenAiStreamClient.java | 12 ++++++------
 1 file changed, 6 insertions(+), 6 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 3867ee7c..e02dde19 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
@@ -146,12 +146,12 @@ public class OpenAiStreamClient {
         }
         okHttpClient = builder.okHttpClient;
 
-        this.openAiApi = new Retrofit.Builder()
-            .baseUrl(apiHost)
-            .client(okHttpClient)
-            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
-            .addConverterFactory(JacksonConverterFactory.create())
-            .build().create(OpenAiApi.class);
+//        this.openAiApi = new Retrofit.Builder()
+//            .baseUrl(apiHost)
+//            .client(okHttpClient)
+//            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
+//            .addConverterFactory(JacksonConverterFactory.create())
+//            .build().create(OpenAiApi.class);
     }
 
     /**

From bde82fe5161ffc6120a545a8eedf1a434d6cb297 Mon Sep 17 00:00:00 2001
From: ageer 
Date: Sun, 11 May 2025 19:45:57 +0800
Subject: [PATCH 08/20] =?UTF-8?q?feat:=20=E5=BF=BD=E7=95=A5README.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.gitignore b/.gitignore
index ccdf948e..d75b3761 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,8 @@ target/
 
 ruoyi-modules/ruoyi-generator/src/main/resources/vm/vben5
 
+README.md
+
 ######################################################################
 # IDE
 

From 39ebd85f589d19d8ec646c6c131f28255838149e Mon Sep 17 00:00:00 2001
From: ageerle <32251822+ageerle@users.noreply.github.com>
Date: Sun, 11 May 2025 21:25:50 +0800
Subject: [PATCH 09/20] Update README.md

---
 README.md | 59 +++++++++++++++++++------------------------------------
 1 file changed, 20 insertions(+), 39 deletions(-)

diff --git a/README.md b/README.md
index bf95a4ee..aa69ea8e 100644
--- a/README.md
+++ b/README.md
@@ -59,24 +59,16 @@
 ### 系统体验
 - 用户端:https://web.pandarobot.chat
 - 管理端:https://admin.pandarobot.chat
-  
   用户名: admin 密码:admin123
 
 ### 源码地址
-
-[1]gitee
-- 前端服务-用户端: https://gitee.com/ageerle/ruoyi-web
-- 前端服务-管理端: https://gitee.com/ageerle/ruoyi-admin
-- 前端服务-小程序端: https://gitee.com/ageerle/ruoyi-uniapp
-- 后端服务:https://gitee.com/ageerle/ruoyi-ai
-
-[2]github
+[1]github
 - 前端服务-用户端: https://github.com/ageerle/ruoyi-web
 - 前端服务-管理端: https://github.com/ageerle/ruoyi-admin
 - 前端服务-小程序端: https://github.com/ageerle/ruoyi-uniapp
 - 后端服务:https://github.com/ageerle/ruoyi-ai
 
-[3]gitcode
+[2]gitcode
 - 前端服务-用户端:https://gitcode.com/ageerle/ruoyi-web
 - 前端服务-管理端:  https://gitcode.com/ageerle/ruoyi-admin
 - 前端服务-小程序端:  https://gitcode.com/ageerle/ruoyi-uniapp
@@ -86,27 +78,25 @@
 - 配套文档: https://doc.pandarobot.chat
 - 项目部署文档:https://doc.pandarobot.chat/guide/introduction/
 
-### 核心功能
-1. 全套开源系统:提供完整的前端应用、后台管理以及小程序应用,基于MIT协议,开箱即用。
-2. 本地RAG方案:集成Milvus/Weaviate向量库、本地向量化模型与Ollama,实现本地化RAG。
-3. 丰富插件功能:支持联网、SQL查询插件及Text2API插件,扩展系统能力与应用场景。
-4. 内置SSE、websocket等网络协议,支持对接多种大语言模型,同时还集成了MidJourney和DALLE AI绘画功能。
-5. 强大的多媒体功能:支持AI翻译、PPT制作、语音克隆和翻唱等。
-6. 扩展功能:支持将大模型接入个人或企业微信。
-7. 支付功能:支持易支付、微信支付等多种支付方式。
+### 核心功能与技术亮点
+1. 全栈式开源系统
+  ○ 全套开源系统:提供完整的前端应用、后台管理以及小程序应用,基于MIT协议,开箱即用。
+2. 本地化 RAG 方案
+  ○ 基于 Langchain4J 框架,支持 Milvus/Weaviate/Qdrant 向量库,结合 BGE-large-zh-v1.5 本地向量化模型 实现高效文档检索与知识库构建。
+  ○ 支持 本地 LLM 接入,结合私有知识库实现安全可控的问答系统,避免依赖云端服务的隐私风险。
+3. 多模态 AI 引擎与工具集成
+  ○ 智能对话:支持 OpenAI GPT-4、Azure、ChatGLM 等主流模型,内置 SSE/WebSocket 协议实现低延迟交互,兼容 扣子、DIFY 等平台 API 调用。
+  ○ Spring AI MCP 工具链:通过注解快速定义本地工具,支持调用 MCP 广场 的海量 MCP Server 服务,扩展模型能力边界。
+4. 企业级扩展与商业化支持
+  ○ 即时通讯集成:支持对接个人微信、企业微信及微信公众号,实现消息自动回复、用户管理与智能客服37。
+  ○ 支付系统:集成易支付、微信支付、Stripe 国际信用卡支付,满足商业化场景需求。
+5. 多媒体处理与创新功能
+  ○ AI 绘画:集成 DALL·E-3、MidJourney、Stable Diffusion,支持文生图、图生图及风格化创作,适用于营销素材生成与创意设计34。
+  ○ PPT 制作:根据文本输入自动生成结构化幻灯片,支持自定义模板(需要使用三方平台 如:文多多)。
 
 ### 项目演示
 
 #### mcp支持
-
-### 如何使用
-1. ruoyi-admin\src\main\resources\application.yml中mcp.client.enabled改为true
-2. application.yml中配置openai api-key(用于推理使用那个工具,并构建工具所需参数)
-3. 启动[ruoyi-mcp-server]
-4. [mcp-server.json]中配置fileSystem.command(npx本地安装路径)
-5. 指定fileSystem操作目录(本地必须存在指定的目录)
-6. 配置search1api.env.SEARCH1API_KEY 申请地址:https://www.search1api.com/
-7. 详情教程:https://blog.csdn.net/weixin_42416319/article/details/147385808
 
drawing drawing @@ -122,7 +112,6 @@ drawing
- #### 用户端
drawing @@ -204,7 +193,6 @@ ### 注意事项 - vben模板 - Q:vben5 的模板默认是没有的吗? A:vben模板是收费的 请联系vben-vue-plus作者获取。 @@ -214,7 +202,6 @@ 该项目使用Git进行版本管理。您可以在repository参看当前可用版本。 - ### 版权说明 该项目使用了MIT授权许可,详情请参阅 [LICENSE.txt](https://github.com/ageerle/ruoyi-ai/blob/main/LICENSE) @@ -251,7 +238,7 @@ #### 项目文档 1. 项目文档基于vitepress构建 -2. 按照[如何参与开源项目](#如何参与开源项目)拉取 https://github.com/ageerle/ruoyi-doc +2. 按照[如何参与开源项目](#如何参与开源项目)拉取https://github.com/ageerle/ruoyi-doc 3. 安装依赖:npm install 4. 启动项目:npm run docs:dev 5. 主页路径:docs/guide/introduction/index.md @@ -282,8 +269,9 @@ ### 附:技术讨论群 -#### 全面开放,欢迎加入 +#### 进群学习 🏠 wx:ruoyi-ai(加人备注:ruoyi-ai) +![1cc0022eeb5c266041b6e2212cf5253](https://github.com/user-attachments/assets/0b4d1b73-b1eb-41c2-b454-0bf7d196adac) 🏠 qq:1603234088 (加人备注:ruoyi-ai) @@ -293,10 +281,3 @@ drawing
-👏👏👏 ruoyi-ai官方交流4群(微信区): -
- drawing -
- - - From c86e88ebd16acdbb2ba45d21f131b646816f2fe1 Mon Sep 17 00:00:00 2001 From: ageerle <32251822+ageerle@users.noreply.github.com> Date: Sun, 11 May 2025 21:26:57 +0800 Subject: [PATCH 10/20] Update README.md --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index aa69ea8e..27b36f3d 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ ### 系统体验 - 用户端:https://web.pandarobot.chat - 管理端:https://admin.pandarobot.chat - 用户名: admin 密码:admin123 +- 用户名: admin 密码:admin123 ### 源码地址 [1]github @@ -80,19 +80,19 @@ ### 核心功能与技术亮点 1. 全栈式开源系统 - ○ 全套开源系统:提供完整的前端应用、后台管理以及小程序应用,基于MIT协议,开箱即用。 +- 全套开源系统:提供完整的前端应用、后台管理以及小程序应用,基于MIT协议,开箱即用。 2. 本地化 RAG 方案 - ○ 基于 Langchain4J 框架,支持 Milvus/Weaviate/Qdrant 向量库,结合 BGE-large-zh-v1.5 本地向量化模型 实现高效文档检索与知识库构建。 - ○ 支持 本地 LLM 接入,结合私有知识库实现安全可控的问答系统,避免依赖云端服务的隐私风险。 +- 基于 Langchain4J 框架,支持 Milvus/Weaviate/Qdrant 向量库,结合 BGE-large-zh-v1.5 本地向量化模型 实现高效文档检索与知识库构建。 +- 支持 本地 LLM 接入,结合私有知识库实现安全可控的问答系统,避免依赖云端服务的隐私风险。 3. 多模态 AI 引擎与工具集成 - ○ 智能对话:支持 OpenAI GPT-4、Azure、ChatGLM 等主流模型,内置 SSE/WebSocket 协议实现低延迟交互,兼容 扣子、DIFY 等平台 API 调用。 - ○ Spring AI MCP 工具链:通过注解快速定义本地工具,支持调用 MCP 广场 的海量 MCP Server 服务,扩展模型能力边界。 +- 智能对话:支持 OpenAI GPT-4、Azure、ChatGLM 等主流模型,内置 SSE/WebSocket 协议实现低延迟交互,兼容 扣子、DIFY 等平台 API 调用。 +- Spring AI MCP 工具链:通过注解快速定义本地工具,支持调用 MCP 广场 的海量 MCP Server 服务,扩展模型能力边界。 4. 企业级扩展与商业化支持 - ○ 即时通讯集成:支持对接个人微信、企业微信及微信公众号,实现消息自动回复、用户管理与智能客服37。 - ○ 支付系统:集成易支付、微信支付、Stripe 国际信用卡支付,满足商业化场景需求。 +- 即时通讯集成:支持对接个人微信、企业微信及微信公众号,实现消息自动回复、用户管理与智能客服37。 +- 支付系统:集成易支付、微信支付、Stripe 国际信用卡支付,满足商业化场景需求。 5. 多媒体处理与创新功能 - ○ AI 绘画:集成 DALL·E-3、MidJourney、Stable Diffusion,支持文生图、图生图及风格化创作,适用于营销素材生成与创意设计34。 - ○ PPT 制作:根据文本输入自动生成结构化幻灯片,支持自定义模板(需要使用三方平台 如:文多多)。 + - AI 绘画:集成 DALL·E-3、MidJourney、Stable Diffusion,支持文生图、图生图及风格化创作,适用于营销素材生成与创意设计34。 + - PPT 制作:根据文本输入自动生成结构化幻灯片,支持自定义模板(需要使用三方平台 如:文多多)。 ### 项目演示 From 1614eff008cd3ae9fadfaa85b170add62e91a816 Mon Sep 17 00:00:00 2001 From: ageerle <32251822+ageerle@users.noreply.github.com> Date: Sun, 11 May 2025 21:27:49 +0800 Subject: [PATCH 11/20] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 27b36f3d..17982532 100644 --- a/README.md +++ b/README.md @@ -79,18 +79,18 @@ - 项目部署文档:https://doc.pandarobot.chat/guide/introduction/ ### 核心功能与技术亮点 -1. 全栈式开源系统 +## 1. 全栈式开源系统 - 全套开源系统:提供完整的前端应用、后台管理以及小程序应用,基于MIT协议,开箱即用。 -2. 本地化 RAG 方案 +## 2. 本地化 RAG 方案 - 基于 Langchain4J 框架,支持 Milvus/Weaviate/Qdrant 向量库,结合 BGE-large-zh-v1.5 本地向量化模型 实现高效文档检索与知识库构建。 - 支持 本地 LLM 接入,结合私有知识库实现安全可控的问答系统,避免依赖云端服务的隐私风险。 -3. 多模态 AI 引擎与工具集成 +## 3. 多模态 AI 引擎与工具集成 - 智能对话:支持 OpenAI GPT-4、Azure、ChatGLM 等主流模型,内置 SSE/WebSocket 协议实现低延迟交互,兼容 扣子、DIFY 等平台 API 调用。 - Spring AI MCP 工具链:通过注解快速定义本地工具,支持调用 MCP 广场 的海量 MCP Server 服务,扩展模型能力边界。 -4. 企业级扩展与商业化支持 +## 4. 企业级扩展与商业化支持 - 即时通讯集成:支持对接个人微信、企业微信及微信公众号,实现消息自动回复、用户管理与智能客服37。 - 支付系统:集成易支付、微信支付、Stripe 国际信用卡支付,满足商业化场景需求。 -5. 多媒体处理与创新功能 +## 5. 多媒体处理与创新功能 - AI 绘画:集成 DALL·E-3、MidJourney、Stable Diffusion,支持文生图、图生图及风格化创作,适用于营销素材生成与创意设计34。 - PPT 制作:根据文本输入自动生成结构化幻灯片,支持自定义模板(需要使用三方平台 如:文多多)。 From 15c6cd272e2964a49ee4d5fe7bea2810fda234d2 Mon Sep 17 00:00:00 2001 From: ageerle <32251822+ageerle@users.noreply.github.com> Date: Sun, 11 May 2025 21:28:59 +0800 Subject: [PATCH 12/20] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 17982532..356f0287 100644 --- a/README.md +++ b/README.md @@ -82,11 +82,11 @@ ## 1. 全栈式开源系统 - 全套开源系统:提供完整的前端应用、后台管理以及小程序应用,基于MIT协议,开箱即用。 ## 2. 本地化 RAG 方案 -- 基于 Langchain4J 框架,支持 Milvus/Weaviate/Qdrant 向量库,结合 BGE-large-zh-v1.5 本地向量化模型 实现高效文档检索与知识库构建。 +- 基于 **Langchain4j** 框架,支持 Milvus/Weaviate/Qdrant 向量库,结合 BGE-large-zh-v1.5 本地向量化模型 实现高效文档检索与知识库构建。 - 支持 本地 LLM 接入,结合私有知识库实现安全可控的问答系统,避免依赖云端服务的隐私风险。 ## 3. 多模态 AI 引擎与工具集成 -- 智能对话:支持 OpenAI GPT-4、Azure、ChatGLM 等主流模型,内置 SSE/WebSocket 协议实现低延迟交互,兼容 扣子、DIFY 等平台 API 调用。 -- Spring AI MCP 工具链:通过注解快速定义本地工具,支持调用 MCP 广场 的海量 MCP Server 服务,扩展模型能力边界。 +- 智能对话:支持 OpenAI GPT-4、Azure、ChatGLM 等主流模型,内置 SSE/WebSocket 协议实现低延迟交互,兼容 **扣子**、**DIFY** 等平台 API 调用。 +- **Spring AI MCP** 工具链:通过注解快速定义本地工具,支持调用 MCP 广场 的海量 MCP Server 服务,扩展模型能力边界。 ## 4. 企业级扩展与商业化支持 - 即时通讯集成:支持对接个人微信、企业微信及微信公众号,实现消息自动回复、用户管理与智能客服37。 - 支付系统:集成易支付、微信支付、Stripe 国际信用卡支付,满足商业化场景需求。 From e4b78e051070717ecb0518a903dcd34574d79f73 Mon Sep 17 00:00:00 2001 From: ageerle <32251822+ageerle@users.noreply.github.com> Date: Sun, 11 May 2025 21:30:08 +0800 Subject: [PATCH 13/20] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 356f0287..484e2c8e 100644 --- a/README.md +++ b/README.md @@ -79,18 +79,18 @@ - 项目部署文档:https://doc.pandarobot.chat/guide/introduction/ ### 核心功能与技术亮点 -## 1. 全栈式开源系统 +#### 1. 全栈式开源系统 - 全套开源系统:提供完整的前端应用、后台管理以及小程序应用,基于MIT协议,开箱即用。 -## 2. 本地化 RAG 方案 +#### 2. 本地化 RAG 方案 - 基于 **Langchain4j** 框架,支持 Milvus/Weaviate/Qdrant 向量库,结合 BGE-large-zh-v1.5 本地向量化模型 实现高效文档检索与知识库构建。 - 支持 本地 LLM 接入,结合私有知识库实现安全可控的问答系统,避免依赖云端服务的隐私风险。 -## 3. 多模态 AI 引擎与工具集成 +#### 3. 多模态 AI 引擎与工具集成 - 智能对话:支持 OpenAI GPT-4、Azure、ChatGLM 等主流模型,内置 SSE/WebSocket 协议实现低延迟交互,兼容 **扣子**、**DIFY** 等平台 API 调用。 -- **Spring AI MCP** 工具链:通过注解快速定义本地工具,支持调用 MCP 广场 的海量 MCP Server 服务,扩展模型能力边界。 -## 4. 企业级扩展与商业化支持 +- **Spring AI MCP** 支持:通过注解快速定义本地工具,支持调用 MCP 广场 的海量 MCP Server 服务,扩展模型能力边界。 +#### 4. 企业级扩展与商业化支持 - 即时通讯集成:支持对接个人微信、企业微信及微信公众号,实现消息自动回复、用户管理与智能客服37。 - 支付系统:集成易支付、微信支付、Stripe 国际信用卡支付,满足商业化场景需求。 -## 5. 多媒体处理与创新功能 +#### 5. 多媒体处理与创新功能 - AI 绘画:集成 DALL·E-3、MidJourney、Stable Diffusion,支持文生图、图生图及风格化创作,适用于营销素材生成与创意设计34。 - PPT 制作:根据文本输入自动生成结构化幻灯片,支持自定义模板(需要使用三方平台 如:文多多)。 From cc349f59547d195acbe4ee149939c3fe548885b6 Mon Sep 17 00:00:00 2001 From: ageerle <32251822+ageerle@users.noreply.github.com> Date: Sun, 11 May 2025 21:31:01 +0800 Subject: [PATCH 14/20] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 484e2c8e..ed88ba9b 100644 --- a/README.md +++ b/README.md @@ -88,10 +88,10 @@ - 智能对话:支持 OpenAI GPT-4、Azure、ChatGLM 等主流模型,内置 SSE/WebSocket 协议实现低延迟交互,兼容 **扣子**、**DIFY** 等平台 API 调用。 - **Spring AI MCP** 支持:通过注解快速定义本地工具,支持调用 MCP 广场 的海量 MCP Server 服务,扩展模型能力边界。 #### 4. 企业级扩展与商业化支持 -- 即时通讯集成:支持对接个人微信、企业微信及微信公众号,实现消息自动回复、用户管理与智能客服37。 +- 即时通讯集成:支持对接个人微信、企业微信及微信公众号,实现消息自动回复、用户管理与智能客服。 - 支付系统:集成易支付、微信支付、Stripe 国际信用卡支付,满足商业化场景需求。 #### 5. 多媒体处理与创新功能 - - AI 绘画:集成 DALL·E-3、MidJourney、Stable Diffusion,支持文生图、图生图及风格化创作,适用于营销素材生成与创意设计34。 + - AI 绘画:集成 DALL·E-3、MidJourney、Stable Diffusion,支持文生图、图生图及风格化创作,适用于营销素材生成与创意设计。 - PPT 制作:根据文本输入自动生成结构化幻灯片,支持自定义模板(需要使用三方平台 如:文多多)。 ### 项目演示 From e3c8a84849fd08c42fa795bdd445b8505303f1c3 Mon Sep 17 00:00:00 2001 From: ageerle <32251822+ageerle@users.noreply.github.com> Date: Sun, 11 May 2025 21:32:39 +0800 Subject: [PATCH 15/20] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ed88ba9b..0fb0e66d 100644 --- a/README.md +++ b/README.md @@ -271,7 +271,8 @@ #### 进群学习 🏠 wx:ruoyi-ai(加人备注:ruoyi-ai) -![1cc0022eeb5c266041b6e2212cf5253](https://github.com/user-attachments/assets/0b4d1b73-b1eb-41c2-b454-0bf7d196adac) +![5bb84713340dec8aac7c00b4e5f1a33](https://github.com/user-attachments/assets/d49b6aaf-4116-4468-bbe9-2c4e8d819962) + 🏠 qq:1603234088 (加人备注:ruoyi-ai) From 9a6acb84a4c9ff8ae4b3627bbedca1a6043b6042 Mon Sep 17 00:00:00 2001 From: ageerle <32251822+ageerle@users.noreply.github.com> Date: Sun, 11 May 2025 21:33:59 +0800 Subject: [PATCH 16/20] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0fb0e66d..2ecfdc3b 100644 --- a/README.md +++ b/README.md @@ -271,8 +271,9 @@ #### 进群学习 🏠 wx:ruoyi-ai(加人备注:ruoyi-ai) -![5bb84713340dec8aac7c00b4e5f1a33](https://github.com/user-attachments/assets/d49b6aaf-4116-4468-bbe9-2c4e8d819962) - +
+ ![5bb84713340dec8aac7c00b4e5f1a33](https://github.com/user-attachments/assets/d49b6aaf-4116-4468-bbe9-2c4e8d819962) +
🏠 qq:1603234088 (加人备注:ruoyi-ai) From 38667797d3d16c63f2e999798fe1f923e57abafc Mon Sep 17 00:00:00 2001 From: ageerle <32251822+ageerle@users.noreply.github.com> Date: Sun, 11 May 2025 21:34:42 +0800 Subject: [PATCH 17/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ecfdc3b..57ac614d 100644 --- a/README.md +++ b/README.md @@ -272,7 +272,7 @@ #### 进群学习 🏠 wx:ruoyi-ai(加人备注:ruoyi-ai)
- ![5bb84713340dec8aac7c00b4e5f1a33](https://github.com/user-attachments/assets/d49b6aaf-4116-4468-bbe9-2c4e8d819962) + ![5bb84713340dec8aac7c00b4e5f1a33](https://github.com/user-attachments/assets/6a8fc14c-8760-45ba-9c7f-7c9b25624f93)
🏠 qq:1603234088 (加人备注:ruoyi-ai) From 3cbacb5ed942941492585c3795ac2ac5074adc66 Mon Sep 17 00:00:00 2001 From: ageerle <32251822+ageerle@users.noreply.github.com> Date: Sun, 11 May 2025 21:35:53 +0800 Subject: [PATCH 18/20] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 57ac614d..56fa1668 100644 --- a/README.md +++ b/README.md @@ -272,9 +272,10 @@ #### 进群学习 🏠 wx:ruoyi-ai(加人备注:ruoyi-ai)
- ![5bb84713340dec8aac7c00b4e5f1a33](https://github.com/user-attachments/assets/6a8fc14c-8760-45ba-9c7f-7c9b25624f93) -
+ drawing + +?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20250511%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250511T133458Z&X-Amz-Expires=300&X-Amz-Signature=82ac8e1b5628094d5b166d2348c44d165b4aedae61c5a5e634682e383b36bbf9&X-Amz-SignedHeaders=host 🏠 qq:1603234088 (加人备注:ruoyi-ai) 👏👏👏 ruoyi-ai官方交流1群(qq区):1034554687 From a68c6481ba849707d6ed9db334f3eb20955c42ad Mon Sep 17 00:00:00 2001 From: ageerle <32251822+ageerle@users.noreply.github.com> Date: Sun, 11 May 2025 21:37:09 +0800 Subject: [PATCH 19/20] Update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 56fa1668..4aff8d35 100644 --- a/README.md +++ b/README.md @@ -271,11 +271,9 @@ #### 进群学习 🏠 wx:ruoyi-ai(加人备注:ruoyi-ai) -
- drawing -
-?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20250511%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250511T133458Z&X-Amz-Expires=300&X-Amz-Signature=82ac8e1b5628094d5b166d2348c44d165b4aedae61c5a5e634682e383b36bbf9&X-Amz-SignedHeaders=host + drawing + 🏠 qq:1603234088 (加人备注:ruoyi-ai) 👏👏👏 ruoyi-ai官方交流1群(qq区):1034554687 From b64b758263b6327dd2270995392975040952e7e8 Mon Sep 17 00:00:00 2001 From: ageer Date: Sun, 11 May 2025 21:37:55 +0800 Subject: [PATCH 20/20] =?UTF-8?q?feat:=20=E5=B0=8F=E5=8A=A9=E6=89=8Bwx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image/小助手wx.png | Bin 0 -> 308762 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 image/小助手wx.png diff --git a/image/小助手wx.png b/image/小助手wx.png new file mode 100644 index 0000000000000000000000000000000000000000..740710c77b7dc83c4febb24b720893668888d3a5 GIT binary patch literal 308762 zcmV)@K!LxBP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&|D{PpK~#8N?EUw9 zBgv693g7?j{&b(`e(zn)GzkyTv)wppwbH)3T4`q5&=cN!5G3ebTekP!d+$9x313y` zdm^$xf^0WVnvveFo-+VJ5U9$`ijxr;aq|Ddr{mM{>G*VfIzAo0@#Ftm{lcf?)A8x} zbbLBK9ly2X6Ip#aJ{_NqPsgX@H-CI0t53(LG*VfIzAnrj^F(8 ziL8F%Ls68s@ag#1I#&1ZKT99~GoJIO<6rOispIeyS^dJt>W=s^o$=}TZ62%p^IiC7 zIQ|*W`P1>Qcl^|G_=Ctw0x&COkS|I=0m!^aqwq41hX<}B@=Y5CzOf;>p#!nCEl7UR ziTJu!#MiYUv3?m{>pPKLZ(E5Cc7E(yZ$o0870EB0NPa2M^@U^Uk&xJEM|^{A1?aWX z>#_A##Q3$+-z|Se`DfDm>5={>vbID0`_gCF5Z~xV;tMY${)Gn#74&*+gB#&>cEr}( z5#Q)QWJ4!>>zeUs-%a3!47@19)2o&e@bP-6W7og;2$cl^ta!?>a$t(OGsZiu|%_%@ek o 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�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

uydL+()P+6;3&|Hu~ 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%0A5o4MrjA|P&uC2qcyaGMS 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⩔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 iWwUIS&9YgZ`0~F)Y@Er7#Mz7h0000