Documentation
¶
Index ¶
Constants ¶
const ( // DeepseekProviderName Deepseek 模型供应商名 DeepseekProviderName = "deepseek" // DeepseekBaseURL Deepseek 默认 API 地址 DeepseekBaseURL = "https://api.deepseek.com" )
const ( // MinimaxProviderName MiniMax 模型供应商名 MinimaxProviderName = "minimax" // MinimaxBaseURL MiniMax 默认 API 地址 MinimaxBaseURL = "https://api.minimaxi.com/v1" )
const ( // MoonshotProviderName 月之暗面模型供应商名 MoonshotProviderName = "moonshotai" // MoonshotBaseURL 月之暗面默认 API 地址 MoonshotBaseURL = "https://api.moonshot.cn/v1" )
const ( // OpenCodeProviderName OpenCode Zen 模型供应商名 OpenCodeProviderName = "opencode" // OpenCodeBaseURL OpenCode Zen 默认 API 地址 OpenCodeBaseURL = "https://opencode.ai/zen/v1" // OpenCodeGoProviderName OpenCode Go 模型供应商名 OpenCodeGoProviderName = "opencode-go" // OpenCodeGoBaseURL OpenCode Go 默认 API 地址 OpenCodeGoBaseURL = "https://opencode.ai/zen/go/v1" )
const ( // OpenRouterProviderName OpenRouter 模型供应商名 OpenRouterProviderName = "openrouter" // OpenRouterBaseURL OpenRouter 默认 API 地址 OpenRouterBaseURL = "https://openrouter.ai/api/v1" )
const ( // QwenProviderName 通义千问模型供应商名 QwenProviderName = "qwen" // QwenBaseURL 通义千问默认 API 地址(也可称 dashscope 、灵积) QwenBaseURL = "https://dashscope.aliyuncs.com/compatible-mode/v1" )
const ( // TencentCloudProviderName 腾讯云 TokenHub 模型供应商名 TencentCloudProviderName = "tencent-cloud" // TencentCloudBaseURL 腾讯云 TokenHub 默认 API 地址 TencentCloudBaseURL = "https://tokenhub.tencentmaas.com/v1" )
const ( // ZAIProviderName 智谱模型供应商名 ZAIProviderName = "z-ai" // ZAIBaseURL 智谱默认 API 地址 ZAIBaseURL = "https://open.bigmodel.cn/api/paas/v4/" )
Variables ¶
var ( DeepseekV4Pro = ModelConfig{ Name: "deepseek-v4-pro", Reasoning: true, Prices: ModelPrices{ Input: 12, Output: 24, Cached: 0.1, }, ContextWindow: 1000000, Score: 10, } DeepseekV4Flash = ModelConfig{ Name: "deepseek-v4-flash", Reasoning: true, Prices: ModelPrices{ Input: 1, Output: 2, Cached: 0.02, }, ContextWindow: 1000000, Score: 8, } )
var ( KimiK26 = ModelConfig{ Name: "kimi-k2.6", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 6.5, Output: 27, Cached: 1.1, }, ContextWindow: 256000, Score: 7, } KimiK25 = ModelConfig{ Name: "kimi-k2.5", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 4, Output: 21, Cached: 0.7, }, ContextWindow: 256000, Score: 6, } )
var ( Gemini31ProPreview = ModelConfig{ Name: "gemini-3.1-pro-preview", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 2, Output: 12, Cached: 0.2, }, ContextWindow: 1050000, Score: 9, } GPT54 = ModelConfig{ Name: "gpt-5.4", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 2.5, Output: 15, Cached: 0.25, }, ContextWindow: 1050000, Score: 10, } ClaudeSonnet46 = ModelConfig{ Name: "claude-sonnet-4.6", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 3, Output: 15, Cached: 0.3, }, ContextWindow: 1000000, Score: 9, } ClaudeOpus47 = ModelConfig{ Name: "claude-opus-4.7", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 5, Output: 25, Cached: 0.5, }, ContextWindow: 1000000, Score: 10, } Grok420 = ModelConfig{ Name: "grok-4.20", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 2, Output: 6, Cached: 0.2, }, ContextWindow: 2000000, Score: 9, } )
var ( Qwen35_397b_a17b = ModelConfig{ Name: "qwen3.5-397b-a17b", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 3, Output: 18, }, ContextWindow: 254000, Score: 7, } Qwen36Plus = ModelConfig{ Name: "qwen3.6-plus", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 2, Output: 12, Cached: 0.2, }, ContextWindow: 991000, Score: 8, } Qwen36_35b_a3b = ModelConfig{ Name: "qwen3.6-35b-a3b", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 1.8, Output: 10.8, }, ContextWindow: 254000, Score: 4, } Qwen36Flash = ModelConfig{ Name: "qwen3.6-flash", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 1.2, Output: 7.2, Cached: 0.12, }, ContextWindow: 991000, Score: 5, } )
var ( GLM51 = ModelConfig{ Name: "glm-5.1", Reasoning: true, Prices: ModelPrices{ Input: 8, Output: 28, Cached: 2, }, ContextWindow: 200000, Score: 7, } GLM5VTurbo = ModelConfig{ Name: "glm-5v-turbo", Reasoning: true, Vision: true, Prices: ModelPrices{ Input: 7, Output: 26, Cached: 1.8, }, ContextWindow: 200000, Score: 6, } GLM5 = ModelConfig{ Name: "glm-5", Reasoning: true, Prices: ModelPrices{ Input: 6, Output: 22, Cached: 1.5, }, ContextWindow: 200000, Score: 6, } )
var DeepseekModels = []ModelConfig{ DeepseekV4Pro, DeepseekV4Flash, }
DeepseekModels 建议的 DeepSeek 模型
var DeepseekOpenAIExtension = OpenAICompatibleExtension{ ReasoningEffortFields: [3]map[string]any{ {"thinking": map[string]any{"type": "disabled"}}, { "thinking": map[string]any{"type": "enabled"}, "reasoning_effort": "high", }, { "thinking": map[string]any{"type": "enabled"}, "reasoning_effort": "max", }, }, ReasoningContentField: "reasoning_content", }
DeepseekOpenAIExtension Deepseek OpenAI 扩展
var DefaultOpenAIExtension = OpenAICompatibleExtension{ ReasoningEffortFields: [3]map[string]any{ { "thinking": map[string]any{"type": "disabled"}, }, { "thinking": map[string]any{"type": "enabled"}, "reasoning_effort": "medium", }, { "thinking": map[string]any{"type": "enabled"}, "reasoning_effort": "xhigh", }, }, ReasoningContentField: "reasoning_content", }
DefaultOpenAIExtension 默认 OpenAI 扩展
var ( HY3Preview = ModelConfig{ Name: "hy3-preview", Reasoning: true, Prices: ModelPrices{ Input: 2, Output: 8, Cached: 0.8, }, ContextWindow: 256000, Score: 3, } )
var MinimaxM27 = ModelConfig{ Name: "minimax-m2.7", Reasoning: true, Prices: ModelPrices{ Input: 2.1, Output: 8.4, Cached: 0.42, }, ContextWindow: 200000, Score: 5, }
var MinimaxModels = []ModelConfig{ MinimaxM27, }
MinimaxModels 建议的 MiniMax 模型
var MoonshotModels = []ModelConfig{ KimiK26, KimiK25, }
MoonshotModels 建议的月之暗面模型
var MoonshotOpenAIExtension = OpenAICompatibleExtension{ ReasoningEffortFields: [3]map[string]any{ { "thinking": map[string]any{"type": "disabled"}, }, { "thinking": map[string]any{"type": "enabled"}, "reasoning_effort": "medium", }, { "thinking": map[string]any{"type": "enabled"}, "reasoning_effort": "high", }, }, ReasoningContentField: "reasoning_content", }
MoonshotOpenAIExtension 月之暗面 OpenAI 扩展
var OpenCodeGoModels = []ModelConfig{ DeepseekV4Pro, DeepseekV4Flash, GLM51, GLM5, Qwen36Plus, KimiK26, KimiK25, MinimaxM27, }
OpenCodeGoModels 建议的 OpenCode Go 模型
var OpenCodeModels = []ModelConfig{ ClaudeOpus47.WithName("claude-opus-4-7"), ClaudeSonnet46.WithName("claude-sonnet-4-6"), GPT54, GLM51, GLM5, Qwen36Plus, KimiK26, KimiK25, MinimaxM27, }
OpenCodeModels 建议的 OpenCode Zen 模型
var OpenRouterModels = []ModelConfig{ Gemini31ProPreview.WithName("google/gemini-3.1-pro-preview"), GPT54.WithName("openai/gpt-5.4"), ClaudeSonnet46.WithName("anthropic/claude-sonnet-4.6"), ClaudeOpus47.WithName("anthropic/claude-opus-4.7"), Grok420.WithName("x-ai/grok-4.20"), }
OpenRouterModels 建议的 OpenRouter 模型
var OpenRouterOpenAIExtension = OpenAICompatibleExtension{ ReasoningEffortFields: [3]map[string]any{ {"reasoning": map[string]any{"effort": "none"}}, {"reasoning": map[string]any{"effort": "medium"}}, {"reasoning": map[string]any{"effort": "xhigh"}}, }, ReasoningContentField: "reasoning", }
OpenRouterOpenAIExtension OpenRouter OpenAI 扩展
var QwenModels = []ModelConfig{ Qwen35_397b_a17b, Qwen36Plus, Qwen36_35b_a3b, Qwen36Flash, }
QwenModels 建议的通义千问模型
var QwenOpenAIExtension = OpenAICompatibleExtension{ ReasoningEffortFields: [3]map[string]any{ {"enable_thinking": false}, {"enable_thinking": true}, {"enable_thinking": true}, }, ReasoningContentField: "reasoning_content", }
QwenOpenAIExtension 千问 OpenAI 扩展
var TencentCloudModels = []ModelConfig{ HY3Preview, DeepseekV4Pro, DeepseekV4Flash, KimiK26, KimiK25, GLM51, GLM5VTurbo, GLM5, MinimaxM27, }
TencentCloudModels 腾讯云推荐模型
var ZAIModels = []ModelConfig{ GLM51, GLM5VTurbo, GLM5, }
ZAIModels 建议的智谱 AI 模型
Functions ¶
This section is empty.
Types ¶
type ModelConfig ¶
type ModelConfig struct {
// 模型名称
Name string `json:"name"`
// 供应商名称
Provider string `json:"provider,omitempty"`
// 是否支持推理、思考模式
Reasoning bool `json:"reasoning,omitempty"`
// 是否支持视觉、图片理解
Vision bool `json:"vision,omitempty"`
// 上下文窗口大小
ContextWindow int64 `json:"contextWindow,omitempty"`
// 价格信息
Prices ModelPrices `json:"prices,omitempty"`
// 效果评分,0-10
Score int `json:"score,omitempty"`
}
ModelConfig 模型配置
func (ModelConfig) WithName ¶ added in v0.3.0
func (cfg ModelConfig) WithName(name string) ModelConfig
WithName 返回带指定名字的该模型
func (ModelConfig) WithPrices ¶ added in v0.3.0
func (cfg ModelConfig) WithPrices(prices ModelPrices) ModelConfig
WithPrices 返回带指定价格的该模型
type ModelPrices ¶ added in v0.3.0
type ModelPrices struct {
// 每百万输入 Token 价格
Input float64 `json:"input,omitempty"`
// 每百万输出 Token 价格
Output float64 `json:"output,omitempty"`
// 每百万缓存 Token 价格
Cached float64 `json:"cached,omitempty"`
}
ModelPrices 价格信息
type ModelProvider ¶
type ModelProvider struct {
Ollama *OllamaOptions `json:"ollama,omitempty"`
OpenAICompatible *OpenAICompatibleOptions `json:"openai-compatible,omitempty"`
OpenRouter *OpenAICompatibleOptions `json:"openrouter,omitempty"`
OpenCode *OpenAICompatibleOptions `json:"opencode,omitempty"`
OpenCodeGo *OpenAICompatibleOptions `json:"opencode-go,omitempty"`
Deepseek *OpenAICompatibleOptions `json:"deepseek,omitempty"`
Qwen *OpenAICompatibleOptions `json:"qwen,omitempty"`
MoonshotAI *OpenAICompatibleOptions `json:"moonshotai,omitempty"`
ZAI *OpenAICompatibleOptions `json:"z-ai,omitempty"`
TencentCloud *OpenAICompatibleOptions `json:"tencent-cloud,omitempty"`
Minimax *OpenAICompatibleOptions `json:"minimax,omitempty"`
}
ModelProvider 模型供应商配置
func (ModelProvider) Register ¶ added in v0.3.0
func (p ModelProvider) Register() ModelRegister
Register 返回对应的模型注册器
type ModelRegister ¶ added in v0.3.0
type ModelRegister interface {
// GenkitPlugin 获取对应 Genkit 插件
GenkitPlugin() api.Plugin
// RegisterModels 注册模型
RegisterModels(ctx context.Context, g *genkit.Genkit) ([]ModelConfig, error)
}
ModelRegister 模型注册器
type Models ¶
type Models struct {
// 主模型,用于回答用户问题
Primary string `json:"primary,omitempty"`
// 视觉模型,用于处理图片理解任务
Vision string `json:"vision,omitempty"`
// 思考级别
ReasoningLevel *int `json:"reasoningLevel,omitempty"`
}
Models 模型配置
func (Models) GetReasoningLevel ¶ added in v0.3.0
GetReasoningLevel 获取思考级别
type OllamaOptions ¶
type OllamaOptions struct {
// Ollama 服务端地址
//
// 默认 http://localhost:11434
BaseURL string `json:"baseURL,omitempty"`
// 模型响应超时时间,秒
//
// 默认 300
Timeout int `json:"timeout,omitempty"`
// 模型列表
Models []ModelConfig `json:"models,omitempty"`
}
OllamaOptions Ollama 选项
type OllamaRegister ¶ added in v0.3.0
type OllamaRegister struct {
Plugin *ollama.Ollama
Models []ModelConfig
}
OllamaRegister Ollama 模型注册器
func NewOllamaRegister ¶ added in v0.3.0
func NewOllamaRegister(opts OllamaOptions) *OllamaRegister
NewOllamaRegister 创建 Ollama 模型注册器
func (*OllamaRegister) GenkitPlugin ¶ added in v0.3.0
func (r *OllamaRegister) GenkitPlugin() api.Plugin
GenkitPlugin 获取对应 Genkit 插件
func (*OllamaRegister) RegisterModels ¶ added in v0.3.0
func (r *OllamaRegister) RegisterModels(_ context.Context, g *genkit.Genkit) ([]ModelConfig, error)
RegisterModels 注册模型
type OpenAICompatibleExtension ¶ added in v0.3.0
type OpenAICompatibleExtension struct {
// 三档思考程度字段
// 关闭 / 中档 / 最高
ReasoningEffortFields [3]map[string]any
// 思考内容字段
ReasoningContentField string
}
OpenAICompatibleExtension OpenAI 兼容接口扩展
type OpenAICompatibleOptions ¶
type OpenAICompatibleOptions struct {
// 供应商名
Name string `json:"name"`
// API 地址
BaseURL string `json:"baseURL"`
// API 密钥
APIKey string `json:"apiKey"`
// 模型列表
Models []ModelConfig `json:"models,omitempty"`
}
OpenAICompatibleOptions OpenAI 兼容选项
type OpenAICompatibleRegister ¶ added in v0.3.0
type OpenAICompatibleRegister struct {
Plugin *oai.OpenAICompatible
Models []ModelConfig
// 默认添加的模型
DefaultModels []ModelConfig
// OpenAI 兼容接口扩展
Extension OpenAICompatibleExtension
}
OpenAICompatibleRegister OpenAI 兼容模型注册器
func NewOpenAICompatibleRegister ¶ added in v0.3.0
func NewOpenAICompatibleRegister( opts OpenAICompatibleOptions, defaultProvider, defaultBaseURL string, defaultModels []ModelConfig, ext OpenAICompatibleExtension, ) *OpenAICompatibleRegister
NewOpenAICompatibleRegister 创建 OpenAI 兼容模型注册器
func (*OpenAICompatibleRegister) GenkitPlugin ¶ added in v0.3.0
func (r *OpenAICompatibleRegister) GenkitPlugin() api.Plugin
GenkitPlugin 获取对应 Genkit 插件
func (*OpenAICompatibleRegister) RegisterModels ¶ added in v0.3.0
func (r *OpenAICompatibleRegister) RegisterModels(_ context.Context, g *genkit.Genkit) ([]ModelConfig, error)
RegisterModels 注册模型