fix(gemini): preserve displayName and description in models list

Previously GeminiModels handler unconditionally overwrote displayName
and description with the model name, losing the original values defined
in model definitions (e.g., 'Gemini 3 Pro Preview').

Now only set these fields as fallback when they are missing or empty.
This commit is contained in:
XYenon
2026-01-21 11:34:54 +08:00
parent 8d9f4edf9b
commit 8c7c446f33
2 changed files with 17 additions and 7 deletions

View File

@@ -994,7 +994,7 @@ func FetchAntigravityModels(ctx context.Context, auth *cliproxyauth.Auth, cfg *c
now := time.Now().Unix() now := time.Now().Unix()
modelConfig := registry.GetAntigravityModelConfig() modelConfig := registry.GetAntigravityModelConfig()
models := make([]*registry.ModelInfo, 0, len(result.Map())) models := make([]*registry.ModelInfo, 0, len(result.Map()))
for originalName := range result.Map() { for originalName, modelData := range result.Map() {
modelID := strings.TrimSpace(originalName) modelID := strings.TrimSpace(originalName)
if modelID == "" { if modelID == "" {
continue continue
@@ -1004,12 +1004,18 @@ func FetchAntigravityModels(ctx context.Context, auth *cliproxyauth.Auth, cfg *c
continue continue
} }
modelCfg := modelConfig[modelID] modelCfg := modelConfig[modelID]
modelName := modelID
// Extract displayName from upstream response, fallback to modelID
displayName := modelData.Get("displayName").String()
if displayName == "" {
displayName = modelID
}
modelInfo := &registry.ModelInfo{ modelInfo := &registry.ModelInfo{
ID: modelID, ID: modelID,
Name: modelName, Name: modelID,
Description: modelID, Description: displayName,
DisplayName: modelID, DisplayName: displayName,
Version: modelID, Version: modelID,
Object: "model", Object: "model",
Created: now, Created: now,

View File

@@ -60,8 +60,12 @@ func (h *GeminiAPIHandler) GeminiModels(c *gin.Context) {
if !strings.HasPrefix(name, "models/") { if !strings.HasPrefix(name, "models/") {
normalizedModel["name"] = "models/" + name normalizedModel["name"] = "models/" + name
} }
normalizedModel["displayName"] = name if displayName, _ := normalizedModel["displayName"].(string); displayName == "" {
normalizedModel["description"] = name normalizedModel["displayName"] = name
}
if description, _ := normalizedModel["description"].(string); description == "" {
normalizedModel["description"] = name
}
} }
if _, ok := normalizedModel["supportedGenerationMethods"]; !ok { if _, ok := normalizedModel["supportedGenerationMethods"]; !ok {
normalizedModel["supportedGenerationMethods"] = defaultMethods normalizedModel["supportedGenerationMethods"] = defaultMethods