| // Copyright (c) 2025 Tethys Plex | |
| // | |
| // This file is part of Veloera. | |
| // | |
| // This program is free software: you can redistribute it and/or modify | |
| // it under the terms of the GNU General Public License as published by | |
| // the Free Software Foundation, either version 3 of the License, or | |
| // (at your option) any later version. | |
| // | |
| // This program is distributed in the hope that it will be useful, | |
| // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| // GNU General Public License for more details. | |
| // | |
| // You should have received a copy of the GNU General Public License | |
| // along with this program. If not, see <https://www.gnu.org/licenses/>. | |
| package common | |
| import ( | |
| "fmt" | |
| "github.com/gin-gonic/gin" | |
| _ "image/gif" | |
| _ "image/jpeg" | |
| _ "image/png" | |
| "strings" | |
| "veloera/common" | |
| ) | |
| 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 | |
| } | |