♻️ refactor: split relay

This commit is contained in:
Martial BE
2023-11-28 18:32:26 +08:00
parent 53da7134b2
commit 902c2faa2c
58 changed files with 4248 additions and 3369 deletions
+37 -31
View File
@@ -4,6 +4,7 @@ import (
"fmt"
"net/http"
"one-api/common"
"one-api/types"
"strconv"
"strings"
@@ -234,41 +235,46 @@ type CompletionsStreamResponse struct {
}
func Relay(c *gin.Context) {
relayMode := RelayModeUnknown
var err *types.OpenAIErrorWithStatusCode
// relayMode := RelayModeUnknown
if strings.HasPrefix(c.Request.URL.Path, "/v1/chat/completions") {
relayMode = RelayModeChatCompletions
err = relayChatHelper(c)
// relayMode = RelayModeChatCompletions
} else if strings.HasPrefix(c.Request.URL.Path, "/v1/completions") {
relayMode = RelayModeCompletions
err = relayCompletionHelper(c)
// relayMode = RelayModeCompletions
} else if strings.HasPrefix(c.Request.URL.Path, "/v1/embeddings") {
relayMode = RelayModeEmbeddings
} else if strings.HasSuffix(c.Request.URL.Path, "embeddings") {
relayMode = RelayModeEmbeddings
} else if strings.HasPrefix(c.Request.URL.Path, "/v1/moderations") {
relayMode = RelayModeModerations
} else if strings.HasPrefix(c.Request.URL.Path, "/v1/images/generations") {
relayMode = RelayModeImagesGenerations
} else if strings.HasPrefix(c.Request.URL.Path, "/v1/edits") {
relayMode = RelayModeEdits
} else if strings.HasPrefix(c.Request.URL.Path, "/v1/audio/speech") {
relayMode = RelayModeAudioSpeech
} else if strings.HasPrefix(c.Request.URL.Path, "/v1/audio/transcriptions") {
relayMode = RelayModeAudioTranscription
} else if strings.HasPrefix(c.Request.URL.Path, "/v1/audio/translations") {
relayMode = RelayModeAudioTranslation
}
var err *OpenAIErrorWithStatusCode
switch relayMode {
case RelayModeImagesGenerations:
err = relayImageHelper(c, relayMode)
case RelayModeAudioSpeech:
fallthrough
case RelayModeAudioTranslation:
fallthrough
case RelayModeAudioTranscription:
err = relayAudioHelper(c, relayMode)
default:
err = relayTextHelper(c, relayMode)
err = relayEmbeddingsHelper(c)
}
// relayMode = RelayModeEmbeddings
// } else if strings.HasSuffix(c.Request.URL.Path, "embeddings") {
// relayMode = RelayModeEmbeddings
// } else if strings.HasPrefix(c.Request.URL.Path, "/v1/moderations") {
// relayMode = RelayModeModerations
// } else if strings.HasPrefix(c.Request.URL.Path, "/v1/images/generations") {
// relayMode = RelayModeImagesGenerations
// } else if strings.HasPrefix(c.Request.URL.Path, "/v1/edits") {
// relayMode = RelayModeEdits
// } else if strings.HasPrefix(c.Request.URL.Path, "/v1/audio/speech") {
// relayMode = RelayModeAudioSpeech
// } else if strings.HasPrefix(c.Request.URL.Path, "/v1/audio/transcriptions") {
// relayMode = RelayModeAudioTranscription
// } else if strings.HasPrefix(c.Request.URL.Path, "/v1/audio/translations") {
// relayMode = RelayModeAudioTranslation
// }
// switch relayMode {
// case RelayModeImagesGenerations:
// err = relayImageHelper(c, relayMode)
// case RelayModeAudioSpeech:
// fallthrough
// case RelayModeAudioTranslation:
// fallthrough
// case RelayModeAudioTranscription:
// err = relayAudioHelper(c, relayMode)
// default:
// err = relayTextHelper(c, relayMode)
// }
if err != nil {
requestId := c.GetString(common.RequestIdKey)
retryTimesStr := c.Query("retry")