Files
Tradarr/backend/internal/ai/provider.go

34 lines
845 B
Go

package ai
import (
"context"
"fmt"
)
// GenOptions permet de contrôler le comportement de génération par appel.
type GenOptions struct {
Think bool // active le mode raisonnement (Qwen3 /think)
NumCtx int // taille du contexte KV (0 = valeur par défaut du provider)
}
type Provider interface {
Name() string
Summarize(ctx context.Context, prompt string, opts GenOptions) (string, error)
ListModels(ctx context.Context) ([]string, error)
}
func NewProvider(name, apiKey, model, endpoint string) (Provider, error) {
switch name {
case "openai":
return newOpenAI(apiKey, model), nil
case "anthropic":
return newAnthropic(apiKey, model), nil
case "gemini":
return newGemini(apiKey, model), nil
case "ollama":
return newOllama(endpoint, model), nil
default:
return nil, fmt.Errorf("unknown provider: %s", name)
}
}