| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package common
- import (
- "encoding/json"
- "fmt"
- "github.com/gin-gonic/gin"
- _ "image/gif"
- _ "image/jpeg"
- _ "image/png"
- "io"
- "net/http"
- "one-api/common"
- "one-api/dto"
- "strconv"
- "strings"
- )
- var StopFinishReason = "stop"
- func RelayErrorHandler(resp *http.Response) (openAIErrorWithStatusCode *dto.OpenAIErrorWithStatusCode) {
- openAIErrorWithStatusCode = &dto.OpenAIErrorWithStatusCode{
- StatusCode: resp.StatusCode,
- OpenAIError: dto.OpenAIError{
- Message: fmt.Sprintf("bad response status code %d", resp.StatusCode),
- Type: "upstream_error",
- Code: "bad_response_status_code",
- Param: strconv.Itoa(resp.StatusCode),
- },
- }
- responseBody, err := io.ReadAll(resp.Body)
- if err != nil {
- return
- }
- err = resp.Body.Close()
- if err != nil {
- return
- }
- var textResponse dto.TextResponse
- err = json.Unmarshal(responseBody, &textResponse)
- if err != nil {
- return
- }
- openAIErrorWithStatusCode.OpenAIError = textResponse.Error
- return
- }
- 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 common.ChannelTypeOpenAI:
- fullRequestURL = fmt.Sprintf("%s%s", baseURL, strings.TrimPrefix(requestURL, "/v1"))
- case common.ChannelTypeAzure:
- fullRequestURL = fmt.Sprintf("%s%s", baseURL, strings.TrimPrefix(requestURL, "/openai/deployments"))
- }
- }
- return fullRequestURL
- }
- func GetAPIVersion(c *gin.Context) string {
- query := c.Request.URL.Query()
- apiVersion := query.Get("api-version")
- if apiVersion == "" {
- apiVersion = c.GetString("api_version")
- }
- return apiVersion
- }
- func GetAzureAPIVersion(c *gin.Context) string {
- query := c.Request.URL.Query()
- apiVersion := query.Get("api-version")
- if apiVersion == "" {
- apiVersion = c.GetString("api_version")
- }
- return apiVersion
- }
|