22 lines
725 B
Go
22 lines
725 B
Go
package ai
|
|
|
|
import (
|
|
"fmt"
|
|
"stream-bot/internal/db"
|
|
)
|
|
|
|
func NewProvider(cfg *db.AIConfig) (Provider, error) {
|
|
switch cfg.Provider {
|
|
case "ollama":
|
|
return NewOllamaProvider(cfg.Endpoint, cfg.Model, cfg.SystemPrompt), nil
|
|
case "chatgpt":
|
|
return NewChatGPTProvider(cfg.APIKey, cfg.Model, cfg.SystemPrompt), nil
|
|
case "gigachat":
|
|
if cfg.ClientID == "" || cfg.ClientSecret == "" {
|
|
return nil, fmt.Errorf("client_id and client_secret required for GigaChat")
|
|
}
|
|
return NewGigaChatProvider(cfg.ClientID, cfg.ClientSecret, cfg.Endpoint, cfg.Model, cfg.SystemPrompt), nil
|
|
default:
|
|
return nil, fmt.Errorf("unknown provider: %s", cfg.Provider)
|
|
}
|
|
} |