|
package v1 |
|
|
|
import ( |
|
"adams549659584/go-proxy-bingai/common" |
|
"encoding/json" |
|
"net/http" |
|
"strings" |
|
|
|
binglib "github.com/Harry-zklcdc/bing-lib" |
|
) |
|
|
|
func ModelHandler(w http.ResponseWriter, r *http.Request) { |
|
w.Header().Add("Access-Control-Allow-Origin", "*") |
|
w.Header().Add("Access-Control-Allow-Methods", "*") |
|
w.Header().Add("Access-Control-Allow-Headers", "*") |
|
|
|
if apikey != "" && r.Header.Get("Authorization") != "Bearer "+apikey { |
|
w.WriteHeader(http.StatusUnauthorized) |
|
w.Write([]byte("Unauthorized")) |
|
return |
|
} |
|
|
|
parts := strings.Split(r.URL.Path, "/") |
|
modelId := parts[len(parts)-1] |
|
|
|
if modelId == "" { |
|
ModelsHandler(w, r) |
|
return |
|
} |
|
|
|
if !common.IsInArray([]string{DALL_E_3, GPT_35_TURBO, GPT_4_TURBO_PREVIEW, GPT_35_TURBO_16K, GPT_4_32K, GPT_4_VISION}, modelId) && !common.IsInArray(binglib.ChatModels[:], strings.ReplaceAll(modelId, "-vision", "")) { |
|
w.WriteHeader(http.StatusNotFound) |
|
w.Write([]byte("Not Found")) |
|
return |
|
} |
|
|
|
resp := modelStruct{ |
|
Id: modelId, |
|
Object: "model", |
|
Created: 1687579610, |
|
OwnedBy: "Go-Proxy-BingAI", |
|
} |
|
respData, err := json.Marshal(resp) |
|
if err != nil { |
|
w.WriteHeader(http.StatusInternalServerError) |
|
w.Write([]byte(err.Error())) |
|
common.Logger.Error("ModelHandler Marshal Error: %v", err) |
|
return |
|
} |
|
w.Header().Set("Content-Type", "application/json") |
|
w.Write(respData) |
|
} |
|
|