Class TokenUsageHelper

java.lang.Object
com.bytedesk.ai.service.TokenUsageHelper

@Component public class TokenUsageHelper extends Object
  • Field Details

    • applicationEventPublisher

      @Autowired private org.springframework.context.ApplicationEventPublisher applicationEventPublisher
  • Constructor Details

    • TokenUsageHelper

      public TokenUsageHelper()
  • Method Details

    • recordAiTokenUsage

      public void recordAiTokenUsage(RobotProtobuf robot, String aiProvider, String aiModelType, long promptTokens, long completionTokens, boolean success, long responseTime)
      Record AI token usage statistics by publishing an event
    • getTokenUnitPrice

      public BigDecimal getTokenUnitPrice(String aiProvider, String aiModelType)
      Get token unit price based on AI provider and model type
    • extractTokenUsage

      public ChatTokenUsage extractTokenUsage(Object response)
      Extract token usage from ChatResponse metadata
    • extractTokenUsageFromResponse

      private long extractTokenUsageFromResponse(org.springframework.ai.chat.model.ChatResponse chatResponse)
      Extract token usage from response object itself (for cases where metadata doesn't contain token info)
    • publishAiTokenUsageEvent

      public void publishAiTokenUsageEvent(String orgUid, String aiProvider, String aiModelType, long promptTokens, long completionTokens, boolean success, long responseTime, BigDecimal tokenUnitPrice)
      Publish AI token usage event