- 全局替换 ApiKey → APIKey(类型、字段、方法、变量) - 修复所有 initialism 命名(API, SMTP, HTML, URL 等) - 添加所有缺失的包注释 - 修复导出符号的注释格式 主要修改: - ApiKey → APIKey(所有出现的地方) - ApiKeyID → APIKeyID - ApiKeyIDs → APIKeyIDs - TestSmtpConnection → TestSMTPConnection - HtmlURL → HTMLURL - 添加 20+ 个包注释 - 修复 10+ 个导出符号注释格式 验证结果: - ✓ golangci-lint: 0 issues - ✓ 单元测试: 通过 - ✓ 集成测试: 通过
44 lines
1.7 KiB
Go
44 lines
1.7 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-3-pro-preview", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-3-flash-preview", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-2.5-pro", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-2.5-flash", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-2.0-flash", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-1.5-pro", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-1.5-flash", SupportedGenerationMethods: methods},
|
|
{Name: "models/gemini-1.5-flash-8b", 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}
|
|
}
|