From 9500304b77055c28b2f4e5716f1d14df669f53fa Mon Sep 17 00:00:00 2001 From: ageerle Date: Mon, 13 Oct 2025 14:37:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(chat):=20=E4=BF=AE=E5=A4=8D=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E7=89=88=E6=9C=AC=E5=8D=87=E7=BA=A7=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=BC=BA=E5=B0=91=E7=B1=BB=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/ruoyi/common/chat/request/ChatRequest.java | 7 +++++++ ruoyi-modules-api/ruoyi-chat-api/pom.xml | 2 +- .../service/chat/impl/ChatCostServiceImpl.java | 14 ++++---------- .../chat/service/chat/impl/OpenAIServiceImpl.java | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) 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 9730fbb8..ba351cf7 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 @@ -26,11 +26,18 @@ public class ChatRequest { */ private String prompt; + /** * 系统提示词 */ private String sysPrompt; + + /** + * 消息id + */ + private Long messageId; + /** * 是否开启流式对话 */ diff --git a/ruoyi-modules-api/ruoyi-chat-api/pom.xml b/ruoyi-modules-api/ruoyi-chat-api/pom.xml index c1af20a5..7e08c9af 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-chat-api/pom.xml @@ -16,7 +16,7 @@ 17 17 UTF-8 - 1.0.0 + 1.0.0-M7 diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java index 8ca63b33..44a43ee4 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java @@ -110,7 +110,7 @@ public class ChatCostServiceImpl implements IChatCostService { BigDecimal numberCost = unitPrice .multiply(BigDecimal.valueOf(batches)) .setScale(2, RoundingMode.HALF_UP); - log.debug("deductToken->按token扣费,结算token数量: {},批次数: {},单价: {},费用: {}", + log.debug("deductToken->按token扣费,结算token数量: {},批次数: {},单价: {},费用: {}", billable, batches, unitPrice, numberCost); try { @@ -137,7 +137,7 @@ public class ChatCostServiceImpl implements IChatCostService { chatToken.setUserId(chatRequest.getUserId()); chatToken.setToken(totalTokens); chatTokenService.editToken(chatToken); - + // 虽未扣费,但要更新消息的基本信息(实际token数、计费类型等) updateMessageWithoutBilling(chatRequest, tokens, chatModelVo.getModelType()); } @@ -167,12 +167,6 @@ public class ChatCostServiceImpl implements IChatCostService { chatMessageBo.setContent(chatRequest.getPrompt().trim()); chatMessageBo.setModelName(chatRequest.getModel()); -// // 基础消息信息,计费相关数据(tokens、费用、计费类型等)在扣费时统一设置 -// chatMessageBo.setTotalTokens(0); // 初始设为0,扣费时更新 -// chatMessageBo.setDeductCost(null); -// chatMessageBo.setBillingType(null); -// chatMessageBo.setRemark("用户消息"); - try { chatMessageService.insertByBo(chatMessageBo); // 保存成功后,将生成的消息ID设置到ChatRequest中 @@ -444,11 +438,11 @@ public class ChatCostServiceImpl implements IChatCostService { preCheckBalance(chatRequest); return true; // 预检查通过,余额充足 } catch (ServiceException e) { - log.debug("checkBalanceSufficient->余额不足,用户ID: {}, 模型: {}, 错误: {}", + log.debug("checkBalanceSufficient->余额不足,用户ID: {}, 模型: {}, 错误: {}", chatRequest.getUserId(), chatRequest.getModel(), e.getMessage()); return false; // 预检查失败,余额不足 } catch (Exception e) { - log.error("checkBalanceSufficient->检查余额时发生异常,用户ID: {}, 模型: {}", + log.error("checkBalanceSufficient->检查余额时发生异常,用户ID: {}, 模型: {}", chatRequest.getUserId(), chatRequest.getModel(), e); return false; // 异常情况视为余额不足,保守处理 } 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 0dcf3318..6b8f72d6 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 @@ -43,7 +43,7 @@ public class OpenAIServiceImpl implements IChatService { this.chatClient = chatClientBuilder .defaultOptions( OpenAiChatOptions.builder().model("gpt-4o-mini").build()) - .defaultToolCallbacks(new SyncMcpToolCallbackProvider(mcpSyncClients)) + .defaultTools(new SyncMcpToolCallbackProvider(mcpSyncClients)) .build(); }