Add the newly released Gemini 3.1 Pro model to both the native API fallback list and the admin UI test model dropdown.
42 lines
1.6 KiB
Go
42 lines
1.6 KiB
Go
// Package gemini provides minimal fallback model metadata for Gemini native endpoints.
|
|
// It is used when upstream model listing is unavailable (e.g. OAuth token missing AI Studio scopes).
|
|
package gemini
|
|
|
|
type Model struct {
|
|
Name string `json:"name"`
|
|
DisplayName string `json:"displayName,omitempty"`
|
|
Description string `json:"description,omitempty"`
|
|
SupportedGenerationMethods []string `json:"supportedGenerationMethods,omitempty"`
|
|
}
|
|
|
|
type ModelsListResponse struct {
|
|
Models []Model `json:"models"`
|
|
}
|
|
|
|
func DefaultModels() []Model {
|
|
methods := []string{"generateContent", "streamGenerateContent"}
|
|
return []Model{
|
|
{Name: "models/gemini-2.0-flash", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-2.5-flash", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-2.5-pro", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-3-flash-preview", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-3-pro-preview", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-3.1-pro-preview", SupportedGenerationMethods: methods},
|
|
}
|
|
}
|
|
|
|
func FallbackModelsList() ModelsListResponse {
|
|
return ModelsListResponse{Models: DefaultModels()}
|
|
}
|
|
|
|
func FallbackModel(model string) Model {
|
|
methods := []string{"generateContent", "streamGenerateContent"}
|
|
if model == "" {
|
|
return Model{Name: "models/unknown", SupportedGenerationMethods: methods}
|
|
}
|
|
if len(model) >= 7 && model[:7] == "models/" {
|
|
return Model{Name: model, SupportedGenerationMethods: methods}
|
|
}
|
|
return Model{Name: "models/" + model, SupportedGenerationMethods: methods}
|
|
}
|