2024-02-17 16:15:31 +00:00
|
|
|
package openai
|
|
|
|
|
2024-04-05 17:50:12 +00:00
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"github.com/songquanpeng/one-api/relay/channeltype"
|
|
|
|
"github.com/songquanpeng/one-api/relay/model"
|
|
|
|
"strings"
|
|
|
|
)
|
2024-02-17 16:15:31 +00:00
|
|
|
|
|
|
|
func ResponseText2Usage(responseText string, modeName string, promptTokens int) *model.Usage {
|
|
|
|
usage := &model.Usage{}
|
|
|
|
usage.PromptTokens = promptTokens
|
|
|
|
usage.CompletionTokens = CountTokenText(responseText, modeName)
|
|
|
|
usage.TotalTokens = usage.PromptTokens + usage.CompletionTokens
|
|
|
|
return usage
|
|
|
|
}
|
2024-04-05 17:50:12 +00:00
|
|
|
|
|
|
|
func GetFullRequestURL(baseURL string, requestURL string, channelType int) string {
|
|
|
|
fullRequestURL := fmt.Sprintf("%s%s", baseURL, requestURL)
|
|
|
|
|
|
|
|
if strings.HasPrefix(baseURL, "https://gateway.ai.cloudflare.com") {
|
|
|
|
switch channelType {
|
|
|
|
case channeltype.OpenAI:
|
|
|
|
fullRequestURL = fmt.Sprintf("%s%s", baseURL, strings.TrimPrefix(requestURL, "/v1"))
|
|
|
|
case channeltype.Azure:
|
|
|
|
fullRequestURL = fmt.Sprintf("%s%s", baseURL, strings.TrimPrefix(requestURL, "/openai/deployments"))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return fullRequestURL
|
|
|
|
}
|