You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
553 B
18 lines
553 B
package provider
|
|
|
|
import "fmt"
|
|
|
|
// NewProvider creates a provider based on SDK type.
|
|
// Supported sdkType values:
|
|
// - "openai_compat": OpenAI-compatible APIs (OpenAI, Qwen, Zhipu, DeepSeek, etc.)
|
|
// - "anthropic": Anthropic Claude models
|
|
func NewProvider(sdkType, baseUrl, apiKey string) (AIProvider, error) {
|
|
switch sdkType {
|
|
case "openai_compat":
|
|
return NewOpenAIProvider(baseUrl, apiKey), nil
|
|
case "anthropic":
|
|
return NewAnthropicProvider(baseUrl, apiKey), nil
|
|
default:
|
|
return nil, fmt.Errorf("unsupported sdk_type: %s", sdkType)
|
|
}
|
|
}
|
|
|