Package com.bytedesk.ai.service
Class TokenUsageHelper
java.lang.Object
com.bytedesk.ai.service.TokenUsageHelper
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate org.springframework.context.ApplicationEventPublisher -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionextractTokenUsage(Object response) Extract token usage from ChatResponse metadataprivate longextractTokenUsageFromResponse(org.springframework.ai.chat.model.ChatResponse chatResponse) Extract token usage from response object itself (for cases where metadata doesn't contain token info)getTokenUnitPrice(String aiProvider, String aiModelType) Get token unit price based on AI provider and model typevoidpublishAiTokenUsageEvent(String orgUid, String aiProvider, String aiModelType, long promptTokens, long completionTokens, boolean success, long responseTime, BigDecimal tokenUnitPrice) Publish AI token usage eventvoidrecordAiTokenUsage(RobotProtobuf robot, String aiProvider, String aiModelType, long promptTokens, long completionTokens, boolean success, long responseTime) Record AI token usage statistics by publishing an event
-
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
Get token unit price based on AI provider and model type -
extractTokenUsage
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
-