MCPcopy Create free account
hub / github.com/astercloud/aster / NewOpenRouterProvider

Function NewOpenRouterProvider

pkg/provider/openrouter.go:42–83  ·  view source on GitHub ↗

NewOpenRouterProvider 创建 OpenRouter 提供商

(config *types.ModelConfig, orConfig *OpenRouterConfig)

Source from the content-addressed store, hash-verified

40
41// NewOpenRouterProvider 创建 OpenRouter 提供商
42func NewOpenRouterProvider(config *types.ModelConfig, orConfig *OpenRouterConfig) (Provider, error) {
43 if orConfig == nil {
44 orConfig = &OpenRouterConfig{
45 AllowFallbacks: true,
46 }
47 }
48
49 // OpenRouter 配置选项
50 options := &OpenAICompatibleOptions{
51 RequireAPIKey: true,
52 DefaultModel: "openai/gpt-4o", // 默认使用 GPT-4o
53 SupportReasoning: true, // 支持推理模型
54 SupportPromptCache: true, // 支持 Prompt Caching
55 SupportVision: true, // 支持多模态
56 SupportAudio: true,
57 CustomHeaders: make(map[string]string),
58 }
59
60 // 添加 OpenRouter 特定请求头
61 if orConfig.AppName != "" {
62 options.CustomHeaders["HTTP-Referer"] = orConfig.SiteURL
63 options.CustomHeaders["X-Title"] = orConfig.AppName
64 }
65
66 // 创建 OpenAI 兼容 Provider
67 baseProvider, err := NewOpenAICompatibleProvider(
68 config,
69 OpenRouterAPIBaseURL,
70 "OpenRouter",
71 options,
72 )
73 if err != nil {
74 return nil, err
75 }
76
77 return &OpenRouterProvider{
78 OpenAICompatibleProvider: baseProvider,
79 providerPreference: orConfig.ProviderPreference,
80 providerOrder: orConfig.ProviderOrder,
81 allowFallbacks: orConfig.AllowFallbacks,
82 }, nil
83}
84
85// NewOpenRouterProviderSimple 创建 OpenRouter 提供商(简化版)
86func NewOpenRouterProviderSimple(config *types.ModelConfig) (Provider, error) {

Callers 2

CreateMethod · 0.85

Calls 1

Tested by

no test coverage detected