Spaces:
Running
Running
package v1 | |
import ( | |
"adams549659584/go-proxy-bingai/common" | |
"encoding/json" | |
"net/http" | |
binglib "github.com/Harry-zklcdc/bing-lib" | |
) | |
func ModelsHandler(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 != "" { | |
if r.Header.Get("Authorization") != "Bearer "+apikey { | |
w.WriteHeader(http.StatusUnauthorized) | |
w.Write([]byte("Unauthorized")) | |
return | |
} | |
} | |
models := []modelStruct{ | |
{ | |
Id: DALL_E_3, | |
Object: "model", | |
Created: 1687579610, | |
OwnedBy: "Go-Proxy-BingAI", | |
}, | |
{ | |
Id: GPT_35_TURBO, | |
Object: "model", | |
Created: 1687579610, | |
OwnedBy: "Go-Proxy-BingAI", | |
}, | |
{ | |
Id: GPT_4_TURBO_PREVIEW, | |
Object: "model", | |
Created: 1687579610, | |
OwnedBy: "Go-Proxy-BingAI", | |
}, | |
{ | |
Id: GPT_35_TURBO_16K, | |
Object: "model", | |
Created: 1687579610, | |
OwnedBy: "Go-Proxy-BingAI", | |
}, | |
{ | |
Id: GPT_4_32K, | |
Object: "model", | |
Created: 1687579610, | |
OwnedBy: "Go-Proxy-BingAI", | |
}, | |
{ | |
Id: GPT_4_VISION, | |
Object: "model", | |
Created: 1687579610, | |
OwnedBy: "Go-Proxy-BingAI", | |
}, | |
} | |
for _, model := range binglib.ChatModels { | |
models = append(models, modelStruct{ | |
Id: model, | |
Object: "model", | |
Created: 1687579610, | |
OwnedBy: "Go-Proxy-BingAI", | |
}, modelStruct{ | |
Id: model + "-vision", | |
Object: "model", | |
Created: 1687579610, | |
OwnedBy: "Go-Proxy-BingAI", | |
}) | |
} | |
resp := modelResponse{ | |
Object: "list", | |
Data: models, | |
} | |
respData, err := json.Marshal(resp) | |
if err != nil { | |
w.WriteHeader(http.StatusInternalServerError) | |
w.Write([]byte(err.Error())) | |
common.Logger.Error("ModelsHandler Marshal Error: %v", err) | |
return | |
} | |
w.Header().Set("Content-Type", "application/json") | |
w.Write(respData) | |
} | |