usage_helpr.go 857 B

123456789101112131415161718192021222324252627
  1. package service
  2. import (
  3. "errors"
  4. "one-api/dto"
  5. "one-api/relay/constant"
  6. )
  7. func GetPromptTokens(textRequest dto.GeneralOpenAIRequest, relayMode int) (int, error) {
  8. switch relayMode {
  9. case constant.RelayModeChatCompletions:
  10. return CountTokenMessages(textRequest.Messages, textRequest.Model)
  11. case constant.RelayModeCompletions:
  12. return CountTokenInput(textRequest.Prompt, textRequest.Model), nil
  13. case constant.RelayModeModerations:
  14. return CountTokenInput(textRequest.Input, textRequest.Model), nil
  15. }
  16. return 0, errors.New("unknown relay mode")
  17. }
  18. func ResponseText2Usage(responseText string, modeName string, promptTokens int) *dto.Usage {
  19. usage := &dto.Usage{}
  20. usage.PromptTokens = promptTokens
  21. usage.CompletionTokens = CountTokenText(responseText, modeName)
  22. usage.TotalTokens = usage.PromptTokens + usage.CompletionTokens
  23. return usage
  24. }