mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-03-30 00:44:31 +00:00
41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package common
|
|
|
|
import (
|
|
"github.com/QuantumNous/new-api/dto"
|
|
"github.com/QuantumNous/new-api/types"
|
|
)
|
|
|
|
func GuessRelayFormatFromRequest(req any) (types.RelayFormat, bool) {
|
|
switch req.(type) {
|
|
case *dto.GeneralOpenAIRequest, dto.GeneralOpenAIRequest:
|
|
return types.RelayFormatOpenAI, true
|
|
case *dto.OpenAIResponsesRequest, dto.OpenAIResponsesRequest:
|
|
return types.RelayFormatOpenAIResponses, true
|
|
case *dto.ClaudeRequest, dto.ClaudeRequest:
|
|
return types.RelayFormatClaude, true
|
|
case *dto.GeminiChatRequest, dto.GeminiChatRequest:
|
|
return types.RelayFormatGemini, true
|
|
case *dto.EmbeddingRequest, dto.EmbeddingRequest:
|
|
return types.RelayFormatEmbedding, true
|
|
case *dto.RerankRequest, dto.RerankRequest:
|
|
return types.RelayFormatRerank, true
|
|
case *dto.ImageRequest, dto.ImageRequest:
|
|
return types.RelayFormatOpenAIImage, true
|
|
case *dto.AudioRequest, dto.AudioRequest:
|
|
return types.RelayFormatOpenAIAudio, true
|
|
default:
|
|
return "", false
|
|
}
|
|
}
|
|
|
|
func AppendRequestConversionFromRequest(info *RelayInfo, req any) {
|
|
if info == nil {
|
|
return
|
|
}
|
|
format, ok := GuessRelayFormatFromRequest(req)
|
|
if !ok {
|
|
return
|
|
}
|
|
info.AppendRequestConversion(format)
|
|
}
|