| | |
| | | private final LlmSpringAiClientService llmSpringAiClientService; |
| | | private final AiGatewayService aiGatewayService; |
| | | private final OpenAiChatCompletionsMapper openAiChatCompletionsMapper; |
| | | private final AiTokenUsageService aiTokenUsageService; |
| | | |
| | | @Value("${llm.base-url:}") |
| | | private String fallbackBaseUrl; |
| | |
| | | item.setExtra(cut(buildExtraPayload(responseObj == null ? null : responseObj.getUsage(), extra), 512)); |
| | | item.setCreateTime(new Date()); |
| | | llmCallLogService.saveIgnoreError(item); |
| | | |
| | | // 累加 token 到独立存储 |
| | | if (success && responseObj != null && responseObj.getUsage() != null) { |
| | | ChatCompletionResponse.Usage usage = responseObj.getUsage(); |
| | | aiTokenUsageService.incrementTokens( |
| | | usage.getPromptTokens() == null ? 0 : usage.getPromptTokens(), |
| | | usage.getCompletionTokens() == null ? 0 : usage.getCompletionTokens(), |
| | | usage.getTotalTokens() == null ? 0 : usage.getTotalTokens(), |
| | | 1); |
| | | } |
| | | } |
| | | |
| | | private ChatCompletionResponse usageResponse(ChatCompletionResponse.Usage usage) { |