TTW_Bot_GO/internal/ai/factory.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)
}
}