mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-18 20:30:51 +08:00
fix(gemini): normalize model listing output
This commit is contained in:
@@ -48,8 +48,24 @@ func (h *GeminiAPIHandler) Models() []map[string]any {
|
|||||||
// GeminiModels handles the Gemini models listing endpoint.
|
// GeminiModels handles the Gemini models listing endpoint.
|
||||||
// It returns a JSON response containing available Gemini models and their specifications.
|
// It returns a JSON response containing available Gemini models and their specifications.
|
||||||
func (h *GeminiAPIHandler) GeminiModels(c *gin.Context) {
|
func (h *GeminiAPIHandler) GeminiModels(c *gin.Context) {
|
||||||
|
rawModels := h.Models()
|
||||||
|
normalizedModels := make([]map[string]any, 0, len(rawModels))
|
||||||
|
defaultMethods := []string{"generateContent"}
|
||||||
|
for _, model := range rawModels {
|
||||||
|
normalizedModel := make(map[string]any, len(model))
|
||||||
|
for k, v := range model {
|
||||||
|
normalizedModel[k] = v
|
||||||
|
}
|
||||||
|
if name, ok := normalizedModel["name"].(string); ok && name != "" && !strings.HasPrefix(name, "models/") {
|
||||||
|
normalizedModel["name"] = "models/" + name
|
||||||
|
}
|
||||||
|
if _, ok := normalizedModel["supportedGenerationMethods"]; !ok {
|
||||||
|
normalizedModel["supportedGenerationMethods"] = defaultMethods
|
||||||
|
}
|
||||||
|
normalizedModels = append(normalizedModels, normalizedModel)
|
||||||
|
}
|
||||||
c.JSON(http.StatusOK, gin.H{
|
c.JSON(http.StatusOK, gin.H{
|
||||||
"models": h.Models(),
|
"models": normalizedModels,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user