provider

package
v0.0.0-...-5c6d8ba Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2026 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnknownAlias      = errors.New("unknown alias")
	ErrUnknownModel      = errors.New("unknown model")
	ErrRouteNotResolved  = errors.New("route not resolved")
	ErrModalityMismatch  = errors.New("modality mismatch")
	ErrCapabilityMissing = errors.New("capability missing")
	ErrAdapterMissing    = errors.New("adapter missing")
)

Functions

func ProviderRuntimeEnabled

func ProviderRuntimeEnabled(name string, providerCfg config.ProviderConfig) bool

Types

type Model

type Model struct {
	ID                string                `json:"id"`
	Object            string                `json:"object"`
	Kind              string                `json:"kind,omitempty"`
	Provider          string                `json:"provider,omitempty"`
	ProviderVariant   string                `json:"provider_variant,omitempty"`
	Name              string                `json:"-"`
	DisplayName       string                `json:"display_name,omitempty"`
	FamilyID          string                `json:"family_id,omitempty"`
	FamilyDisplayName string                `json:"family_display_name,omitempty"`
	Status            string                `json:"status,omitempty"`
	VerificationClass string                `json:"verification_class,omitempty"`
	CostTier          string                `json:"cost_tier,omitempty"`
	LatencyTier       string                `json:"latency_tier,omitempty"`
	DocURL            string                `json:"doc_url,omitempty"`
	LastVerified      string                `json:"last_verified,omitempty"`
	Modality          modality.Modality     `json:"modality"`
	Capabilities      []modality.Capability `json:"capabilities,omitempty"`
	Aliases           []string              `json:"aliases,omitempty"`
	CapabilityFlags   ModelCapabilityFlags  `json:"capability_flags"`
	Lifecycle         ModelLifecycle        `json:"lifecycle"`
	HostedTools       []ModelHostedTool     `json:"hosted_tools,omitempty"`
	Billing           *ModelBillingMetadata `json:"billing,omitempty"`
	Quota             *ModelQuotaMetadata   `json:"quota,omitempty"`
	ContextWindow     int                   `json:"context_window,omitempty"`
	MaxOutputTokens   int                   `json:"max_output_tokens,omitempty"`
	MaxDuration       int                   `json:"max_duration,omitempty"`
	AllowedDurations  []int                 `json:"allowed_durations,omitempty"`
	AspectRatios      []string              `json:"aspect_ratios,omitempty"`
	Resolutions       []string              `json:"resolutions,omitempty"`
	Cancelable        bool                  `json:"cancelable,omitempty"`
	Voices            []string              `json:"voices,omitempty"`
	Formats           []string              `json:"formats,omitempty"`
	OutputFormats     []string              `json:"output_formats,omitempty"`
	MinDurationMs     int                   `json:"min_duration_ms,omitempty"`
	MaxDurationMs     int                   `json:"max_duration_ms,omitempty"`
	SampleRatesHz     []int                 `json:"sample_rates_hz,omitempty"`
	Dimensions        int                   `json:"dimensions,omitempty"`
	SessionTTL        int64                 `json:"session_ttl,omitempty"`
	ResolvesTo        string                `json:"resolves_to,omitempty"`
	FamilyPriority    int                   `json:"-"`
}

type ModelBillingMetadata

type ModelBillingMetadata struct {
	BillingMode     string                        `json:"billing_mode,omitempty"`
	Unit            string                        `json:"unit,omitempty"`
	Currency        string                        `json:"currency,omitempty"`
	Source          string                        `json:"source,omitempty"`
	EffectiveFrom   string                        `json:"effective_from,omitempty"`
	EffectiveUntil  string                        `json:"effective_until,omitempty"`
	Notes           string                        `json:"notes,omitempty"`
	Rates           map[string]float64            `json:"rates,omitempty"`
	Tiers           map[string]map[string]float64 `json:"tiers,omitempty"`
	TieredRates     []ModelTieredRate             `json:"tiered_rates,omitempty"`
	AdditionalUnits map[string]float64            `json:"additional_units,omitempty"`
}

type ModelCapabilityFlags

type ModelCapabilityFlags struct {
	Chat              bool `json:"chat"`
	Vision            bool `json:"vision"`
	FileUnderstanding bool `json:"file_understanding"`
	ImageGeneration   bool `json:"image_generation"`
	ImageEdit         bool `json:"image_edit"`
	MusicGeneration   bool `json:"music_generation"`
	LyricsGeneration  bool `json:"lyrics_generation"`
	VideoGeneration   bool `json:"video_generation"`
	ToolCalling       bool `json:"tool_calling"`
	Streaming         bool `json:"streaming"`
}

type ModelCatalogEntry

type ModelCatalogEntry = catalog.Entry

type ModelCatalogFamily

type ModelCatalogFamily = catalog.Family

type ModelExecutorDefault

type ModelExecutorDefault struct {
	Alias        string                `json:"alias"`
	Model        string                `json:"model"`
	Provider     string                `json:"provider,omitempty"`
	Modality     modality.Modality     `json:"modality,omitempty"`
	Capabilities []modality.Capability `json:"capabilities,omitempty"`
}

type ModelHostedTool

type ModelHostedTool struct {
	Name               string `json:"name"`
	Capability         string `json:"capability"`
	ResolvedServerSide bool   `json:"resolved_server_side"`
}

type ModelLifecycle

type ModelLifecycle struct {
	Enabled           bool   `json:"enabled"`
	Status            string `json:"status,omitempty"`
	Stability         string `json:"stability,omitempty"`
	VerificationClass string `json:"verification_class,omitempty"`
}

type ModelQuotaMetadata

type ModelQuotaMetadata struct {
	QuotaBucket      string   `json:"quota_bucket,omitempty"`
	Unit             string   `json:"unit,omitempty"`
	DailyLimit       *float64 `json:"daily_limit,omitempty"`
	ConcurrencyLimit *int     `json:"concurrency_limit,omitempty"`
}

type ModelRoutingAlias

type ModelRoutingAlias struct {
	Alias      string `json:"alias"`
	Target     string `json:"target"`
	ResolvesTo string `json:"resolves_to"`
	Kind       string `json:"kind"`
}

type ModelRoutingMetadata

type ModelRoutingMetadata struct {
	Aliases   []ModelRoutingAlias             `json:"aliases,omitempty"`
	Selectors []ModelRoutingSelector          `json:"selectors,omitempty"`
	Defaults  map[string]ModelExecutorDefault `json:"defaults,omitempty"`
}

type ModelRoutingSelector

type ModelRoutingSelector struct {
	Alias               string                `json:"alias"`
	ResolvesTo          string                `json:"resolves_to,omitempty"`
	Modality            modality.Modality     `json:"modality,omitempty"`
	Capabilities        []modality.Capability `json:"capabilities,omitempty"`
	Providers           []string              `json:"providers,omitempty"`
	ExcludeProviders    []string              `json:"exclude_providers,omitempty"`
	Statuses            []string              `json:"statuses,omitempty"`
	VerificationClasses []string              `json:"verification_classes,omitempty"`
	Prefer              []string              `json:"prefer,omitempty"`
	CostTier            string                `json:"cost_tier,omitempty"`
	LatencyTier         string                `json:"latency_tier,omitempty"`
}

type ModelTieredRate

type ModelTieredRate struct {
	ID    string             `json:"id,omitempty"`
	Range [2]int             `json:"range"`
	Rates map[string]float64 `json:"rates,omitempty"`
}

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

func New

func New(cfg *config.Config) (*Registry, []string, error)

func (*Registry) Count

func (r *Registry) Count() int

func (*Registry) GetAudioAdapter

func (r *Registry) GetAudioAdapter(name string) (modality.AudioAdapter, Model, error)

func (*Registry) GetAudioNotesAdapter

func (r *Registry) GetAudioNotesAdapter(name string) (modality.AudioNotesAdapter, Model, error)

func (*Registry) GetBatchAdapter

func (r *Registry) GetBatchAdapter(providerName string) (modality.BatchAdapter, error)

func (*Registry) GetChatAdapter

func (r *Registry) GetChatAdapter(name string) (modality.ChatAdapter, Model, error)

func (*Registry) GetEmbedAdapter

func (r *Registry) GetEmbedAdapter(name string) (modality.EmbedAdapter, Model, error)

func (*Registry) GetFallbacks

func (r *Registry) GetFallbacks(modelID string) []string

func (*Registry) GetFilesAdapter

func (r *Registry) GetFilesAdapter(providerName string) (modality.FilesAdapter, error)

func (*Registry) GetImageAdapter

func (r *Registry) GetImageAdapter(name string) (modality.ImageAdapter, Model, error)

func (*Registry) GetInterpretingAdapter

func (r *Registry) GetInterpretingAdapter(name string) (modality.InterpretingAdapter, Model, error)

func (*Registry) GetMusicAdapter

func (r *Registry) GetMusicAdapter(name string) (modality.MusicAdapter, Model, error)

func (*Registry) GetNativeMessagesAdapter

func (r *Registry) GetNativeMessagesAdapter(name string) (modality.NativeMessagesAdapter, Model, error)

func (*Registry) GetPodcastAdapter

func (r *Registry) GetPodcastAdapter(name string) (modality.PodcastAdapter, Model, error)

func (*Registry) GetStreamingTranscriptionAdapter

func (r *Registry) GetStreamingTranscriptionAdapter(name string) (modality.StreamingTranscriptionAdapter, Model, error)

func (*Registry) GetTranslationAdapter

func (r *Registry) GetTranslationAdapter(name string) (modality.TranslationAdapter, Model, error)

func (*Registry) GetVideoAdapter

func (r *Registry) GetVideoAdapter(name string) (modality.VideoAdapter, Model, error)

func (*Registry) GetVoiceAdapter

func (r *Registry) GetVoiceAdapter(name string) (modality.VoiceAdapter, Model, error)

func (*Registry) GetVoiceAssetAdapter

func (r *Registry) GetVoiceAssetAdapter(providerName string) (modality.VoiceAssetAdapter, error)

func (*Registry) GetVoiceCatalogAdapter

func (r *Registry) GetVoiceCatalogAdapter(providerName string) (modality.VoiceCatalogAdapter, error)

func (*Registry) ListConfiguredVoices

func (r *Registry) ListConfiguredVoices(providerFilter string, modelName string) ([]modality.VoiceCatalogItem, error)

func (*Registry) ListModels

func (r *Registry) ListModels(includeAliases bool) []Model

func (*Registry) ProviderCount

func (r *Registry) ProviderCount() int

func (*Registry) RequireModel

func (r *Registry) RequireModel(name string, requiredModality modality.Modality, requiredCapabilities ...modality.Capability) (Model, error)

func (*Registry) RequireResolvedModel

func (r *Registry) RequireResolvedModel(name string, requiredModality modality.Modality, routing *modality.RoutingOptions, requiredCapabilities ...modality.Capability) (Resolution, error)

func (*Registry) ResolveAlias

func (r *Registry) ResolveAlias(alias string) (string, error)

func (*Registry) ResolveModel

func (r *Registry) ResolveModel(name string) (Model, error)

func (*Registry) RoutingMetadata

func (r *Registry) RoutingMetadata() ModelRoutingMetadata

type Resolution

type Resolution struct {
	Model            Model
	RequestedModel   string
	ResolvedModel    string
	ResolvedProvider string
	Mode             string
}

Directories

Path Synopsis
common
aws
Package core holds small, dependency-light helpers shared across provider adapters, the provider registry, and the verification tooling.
Package core holds small, dependency-light helpers shared across provider adapters, the provider registry, and the verification tooling.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL