Model list is always fetched live from the gateway model-info endpoint, so the static fallback list was dead config with stale IDs (GLM-4.7 vs zhanlu/glm-4.7). Default to zhanlu/auto when the request omits model.
This commit is contained in:
@@ -21,8 +21,6 @@ type Config struct {
|
||||
PublicKeyPEM string
|
||||
PhonePublicKeyPEM string
|
||||
SM2PrivateKey string
|
||||
Models []string
|
||||
DefaultModel string
|
||||
OpenAIAPIKey string
|
||||
LoginPassword string
|
||||
PluginVersion string
|
||||
@@ -45,7 +43,6 @@ func Load() (Config, error) {
|
||||
PublicKeyPEM: getenv("ZHANLU_PUBLIC_KEY_PEM", defaultPublicKeyPEM),
|
||||
PhonePublicKeyPEM: getenv("ZHANLU_PHONE_PUBLIC_KEY_PEM", defaultPhonePublicKeyPEM),
|
||||
SM2PrivateKey: getenv("ZHANLU_APIKEY_AUTH_SM2_PRIVATE_KEY", defaultSM2PrivateKey),
|
||||
DefaultModel: getenv("ZHANLU_DEFAULT_MODEL", "GLM-4.7"),
|
||||
OpenAIAPIKey: os.Getenv("OPENAI_COMPAT_API_KEY"),
|
||||
LoginPassword: os.Getenv("ZHANLU_LOGIN_PASSWORD"),
|
||||
PluginVersion: getenv("ZHANLU_PLUGIN_VERSION", "1.4.2"),
|
||||
@@ -53,7 +50,6 @@ func Load() (Config, error) {
|
||||
StreamIdleTimout: durationEnv("ZHANLU_STREAM_IDLE_TIMEOUT", 300*time.Second),
|
||||
Debug: strings.EqualFold(os.Getenv("ZHANLU_DEBUG"), "true"),
|
||||
}
|
||||
cfg.Models = splitCSV(getenv("ZHANLU_MODELS", "GLM-4.7,MiniMax-M2.5"))
|
||||
cfg.Credentials = auth.Credentials{
|
||||
AccessKey: os.Getenv("ZHANLU_ACCESS_KEY"),
|
||||
SecretKey: os.Getenv("ZHANLU_SECRET_KEY"),
|
||||
@@ -76,18 +72,6 @@ func getenv(key, fallback string) string {
|
||||
return fallback
|
||||
}
|
||||
|
||||
func splitCSV(s string) []string {
|
||||
parts := strings.Split(s, ",")
|
||||
out := make([]string, 0, len(parts))
|
||||
for _, p := range parts {
|
||||
p = strings.TrimSpace(p)
|
||||
if p != "" {
|
||||
out = append(out, p)
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func durationEnv(key string, fallback time.Duration) time.Duration {
|
||||
v := strings.TrimSpace(os.Getenv(key))
|
||||
if v == "" {
|
||||
|
||||
@@ -525,7 +525,7 @@ func (s *Server) exchangeSSOCode(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
func (s *Server) models(w http.ResponseWriter, r *http.Request) {
|
||||
modelIDs := s.cfg.Models
|
||||
modelIDs := []string{}
|
||||
if creds, err := s.currentCredentials(); err == nil && creds.HasAPIKey() {
|
||||
if client, cerr := s.zhanluClient(); cerr == nil {
|
||||
if fetched, merr := client.Models(r.Context(), creds.APIKey); merr == nil && len(fetched) > 0 {
|
||||
@@ -552,7 +552,7 @@ func (s *Server) chatCompletions(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
if req.Model == "" {
|
||||
req.Model = s.cfg.DefaultModel
|
||||
req.Model = "zhanlu/auto"
|
||||
}
|
||||
clientWantsStream := req.Stream
|
||||
req.Stream = true
|
||||
|
||||
@@ -70,8 +70,6 @@ func setupTestServer(t *testing.T) (*httptest.Server, *httptest.Server, string)
|
||||
PublicKeyPEM: defaultTestPublicKey,
|
||||
PhonePublicKeyPEM: defaultTestPublicKey,
|
||||
SM2PrivateKey: testSM2Key,
|
||||
Models: []string{"GLM-4.7", "MiniMaxAI/MiniMax-M2.5"},
|
||||
DefaultModel: "GLM-4.7",
|
||||
PluginVersion: "1.4.2",
|
||||
}
|
||||
h := New(cfg)
|
||||
|
||||
Reference in New Issue
Block a user