Documentation
¶
Index ¶
- Constants
- Variables
- type CacheCapabilitiesOverride
- type CacheControlCapabilitiesOverride
- type DeleteModelPresetRequest
- type DeleteModelPresetResponse
- type DeleteProviderPresetRequest
- type DeleteProviderPresetResponse
- type GetDefaultProviderRequest
- type GetDefaultProviderResponse
- type GetDefaultProviderResponseBody
- type GetModelPresetRequest
- type GetModelPresetResponse
- type GetModelPresetResponseBody
- type ListProviderPresetsRequest
- type ListProviderPresetsResponse
- type ListProviderPresetsResponseBody
- type ModelCapabilitiesOverride
- type ModelDisplayName
- type ModelName
- type ModelPreset
- type ModelPresetID
- type ModelPresetPatch
- type ModelPresetRef
- type ModelSlug
- type OutputCapabilitiesOverride
- type ParamDialectOverride
- type PatchDefaultProviderRequest
- type PatchDefaultProviderRequestBody
- type PatchDefaultProviderResponse
- type PatchModelPresetRequest
- type PatchModelPresetRequestBody
- type PatchModelPresetResponse
- type PatchProviderPresetRequest
- type PatchProviderPresetRequestBody
- type PatchProviderPresetResponse
- type PostModelPresetRequest
- type PostModelPresetRequestBody
- type PostModelPresetResponse
- type PostProviderPresetRequest
- type PostProviderPresetRequestBody
- type PostProviderPresetResponse
- type PresetsSchema
- type ProviderDisplayName
- type ProviderPageToken
- type ProviderPreset
- type ReasoningCapabilitiesOverride
- type StopSequenceCapabilitiesOverride
- type ToolCapabilitiesOverride
Constants ¶
const ( ModelPresetsFile = "modelpresets.json" // Single JSON file. ModelPresetsBuiltInOverlayDBFileName = "modelpresetsbuiltin.overlay.sqlite" )
const ( SchemaVersion = "2025-07-01" MaxPageSize = 256 // Max allowed page size. DefaultPageSize = 256 // Default page size. BuiltInSnapshotMaxAge = time.Hour )
const ( DefaultAuthorizationHeaderKey = "Authorization" DefaultAPITimeout = 300 * time.Second DefaultAnthropicOrigin = "https://api.anthropic.com" DefaultAnthropicChatCompletionPrefix = "/v1/messages" DefaultAnthropicAuthorizationHeaderKey = "x-api-key" DefaultOpenAIOrigin = "https://api.openai.com" DefaultOpenAIChatCompletionsPrefix = "/v1/chat/completions" )
Variables ¶
var ( ErrInvalidDir = errors.New("invalid directory") ErrProviderNotFound = errors.New("provider not found") ErrProviderPresetAlreadyExists = errors.New("provider preset already exists") ErrBuiltInProviderAbsent = errors.New("provider not found in built-in data") ErrNilProvider = errors.New("provider preset is nil") ErrModelPresetNotFound = errors.New("model preset not found") ErrModelPresetAlreadyExists = errors.New("model preset already exists") ErrNilModelPreset = errors.New("model preset is nil") ErrNoModelPresets = errors.New("provider has no model presets") ErrInvalidTimestamp = errors.New("zero timestamp") ErrBuiltInReadOnly = errors.New("built-in resource is read-only") )
var OpenAIChatCompletionsDefaultHeaders = map[string]string{"content-type": "application/json"}
Functions ¶
This section is empty.
Types ¶
type CacheCapabilitiesOverride ¶ added in v0.0.95
type CacheCapabilitiesOverride struct {
SupportsAutomaticCaching *bool `json:"supportsAutomaticCaching,omitempty"`
TopLevel *CacheControlCapabilitiesOverride `json:"topLevel,omitempty"`
InputOutputContent *CacheControlCapabilitiesOverride `json:"inputOutputContent,omitempty"`
ReasoningContent *CacheControlCapabilitiesOverride `json:"reasoningContent,omitempty"`
ToolChoice *CacheControlCapabilitiesOverride `json:"toolChoice,omitempty"`
ToolCall *CacheControlCapabilitiesOverride `json:"toolCall,omitempty"`
ToolOutput *CacheControlCapabilitiesOverride `json:"toolOutput,omitempty"`
}
type CacheControlCapabilitiesOverride ¶ added in v0.0.95
type CacheControlCapabilitiesOverride struct {
SupportsTTL *bool `json:"supportsTTL,omitempty"`
SupportedKinds []inferenceSpec.CacheControlKind `json:"supportedKinds,omitempty"`
SupportedTTLs []inferenceSpec.CacheControlTTL `json:"supportedTTLs,omitempty"`
SupportsKey *bool `json:"supportsKey,omitempty"`
}
type DeleteModelPresetRequest ¶
type DeleteModelPresetRequest struct {
ProviderName inferenceSpec.ProviderName `path:"providerName" required:"true"`
ModelPresetID ModelPresetID `path:"modelPresetID" required:"true"`
}
type DeleteModelPresetResponse ¶
type DeleteModelPresetResponse struct{}
type DeleteProviderPresetRequest ¶
type DeleteProviderPresetRequest struct {
ProviderName inferenceSpec.ProviderName `path:"providerName" required:"true"`
}
type DeleteProviderPresetResponse ¶
type DeleteProviderPresetResponse struct{}
type GetDefaultProviderRequest ¶
type GetDefaultProviderRequest struct{}
type GetDefaultProviderResponse ¶
type GetDefaultProviderResponse struct {
Body *GetDefaultProviderResponseBody
}
type GetDefaultProviderResponseBody ¶
type GetDefaultProviderResponseBody struct {
DefaultProvider inferenceSpec.ProviderName `json:"defaultProvider"`
}
type GetModelPresetRequest ¶ added in v0.0.81
type GetModelPresetRequest struct {
ProviderName inferenceSpec.ProviderName `path:"providerName" required:"true"`
ModelPresetID ModelPresetID `path:"modelPresetID" required:"true"`
// If false, disabled provider/model return an error.
IncludeDisabled bool `query:"includeDisabled"`
}
type GetModelPresetResponse ¶ added in v0.0.81
type GetModelPresetResponse struct {
Body *GetModelPresetResponseBody
}
type GetModelPresetResponseBody ¶ added in v0.0.81
type GetModelPresetResponseBody struct {
// Provider includes CapabilitiesOverride (provider-wide).
// ModelPresets map is intentionally omitted/empty in store response for safety/perf.
Provider ProviderPreset `json:"provider"`
// Model includes Name + CapabilitiesOverride (model-specific).
Model ModelPreset `json:"model"`
}
type ListProviderPresetsRequest ¶
type ListProviderPresetsRequest struct {
Names []inferenceSpec.ProviderName `query:"names"`
IncludeDisabled bool `query:"includeDisabled"`
PageSize int `query:"pageSize"`
PageToken string `query:"pageToken"`
}
type ListProviderPresetsResponse ¶
type ListProviderPresetsResponse struct {
Body *ListProviderPresetsResponseBody
}
type ListProviderPresetsResponseBody ¶
type ListProviderPresetsResponseBody struct {
Providers []ProviderPreset `json:"providers"`
NextPageToken *string `json:"nextPageToken,omitempty"`
}
type ModelCapabilitiesOverride ¶ added in v0.0.81
type ModelCapabilitiesOverride struct {
ModalitiesIn []inferenceSpec.Modality `json:"modalitiesIn,omitempty"`
ModalitiesOut []inferenceSpec.Modality `json:"modalitiesOut,omitempty"`
ReasoningCapabilities *ReasoningCapabilitiesOverride `json:"reasoningCapabilities,omitempty"`
StopSequenceCapabilities *StopSequenceCapabilitiesOverride `json:"stopSequenceCapabilities,omitempty"`
OutputCapabilities *OutputCapabilitiesOverride `json:"outputCapabilities,omitempty"`
ToolCapabilities *ToolCapabilitiesOverride `json:"toolCapabilities,omitempty"`
CacheCapabilities *CacheCapabilitiesOverride `json:"cacheCapabilities,omitempty"`
ParamDialect *ParamDialectOverride `json:"paramDialect,omitempty"`
}
ModelCapabilitiesOverride is a "patch-like" version of inference-go's ModelCapabilities.
Semantics:
- nil slice => no override provided
- empty slice => override to empty (disable completely)
- pointer scalars => nil means "not provided", non-nil means "override"
This struct is intended for storage and API transport as an override only. The effective/derived capabilities MUST be computed at runtime and should not be stored.
type ModelDisplayName ¶
type ModelDisplayName string
type ModelPreset ¶
type ModelPreset struct {
ModelPresetPatch
SchemaVersion string `json:"schemaVersion" required:"true"`
ID ModelPresetID `json:"id" required:"true"`
Name ModelName `json:"name" required:"true"`
DisplayName ModelDisplayName `json:"displayName" required:"true"`
Slug ModelSlug `json:"slug" required:"true"`
IsEnabled bool `json:"isEnabled" required:"true"`
CreatedAt time.Time `json:"createdAt"`
ModifiedAt time.Time `json:"modifiedAt"`
IsBuiltIn bool `json:"isBuiltIn"`
}
ModelPreset is the entire "model + default knobs" bundle the user can save. Anything not present in the preset is considered to be taken as default from any global or inbuilt model defaults.
type ModelPresetID ¶
type ModelPresetID string
type ModelPresetPatch ¶ added in v0.0.85
type ModelPresetPatch struct {
Stream *bool `json:"stream,omitempty"`
MaxPromptLength *int `json:"maxPromptLength,omitempty"`
MaxOutputLength *int `json:"maxOutputLength,omitempty"`
Temperature *float64 `json:"temperature,omitempty"`
Reasoning *inferenceSpec.ReasoningParam `json:"reasoning,omitempty"`
SystemPrompt *string `json:"systemPrompt,omitempty"`
Timeout *int `json:"timeout,omitempty"`
CacheControl *inferenceSpec.CacheControl `json:"cacheControl,omitempty"`
OutputParam *inferenceSpec.OutputParam `json:"outputParam,omitempty"`
StopSequences *[]string `json:"stopSequences,omitempty"`
AdditionalParametersRawJSON *string `json:"additionalParametersRawJSON,omitempty"`
// CapabilitiesOverride is a stored override for runtime capability resolution.
// This is NOT the derived/effective capability profile.
CapabilitiesOverride *ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`
}
ModelPresetPatch is the reusable set of persisted model-preset knobs.
PATCH semantics:
- nil pointer/object fields => not provided
- StopSequences is a pointer-to-slice so PATCH can distinguish:
- nil => not provided
- non-nil empty slice => explicitly set to empty
Note: PATCH does not support generic "clear to nil" semantics.
type ModelPresetRef ¶ added in v0.0.85
type ModelPresetRef struct {
ProviderName inferenceSpec.ProviderName `json:"providerName"`
ModelPresetID ModelPresetID `json:"modelPresetID"`
}
ModelPresetRef identifies a model preset inside a provider namespace. It is intended for internal helpers and JSON payloads, not HTTP path binding.
func (ModelPresetRef) IsZero ¶ added in v0.0.85
func (r ModelPresetRef) IsZero() bool
type OutputCapabilitiesOverride ¶ added in v0.0.81
type OutputCapabilitiesOverride struct {
SupportedOutputFormats []inferenceSpec.OutputFormatKind `json:"supportedOutputFormats,omitempty"`
SupportsVerbosity *bool `json:"supportsVerbosity,omitempty"`
}
type ParamDialectOverride ¶ added in v0.1.0
type ParamDialectOverride struct {
MaxOutputTokensParamName *inferenceSpec.MaxOutputTokensParamName `json:"maxOutputTokensParamName,omitempty"`
ToolChoiceParamStyle *inferenceSpec.ToolChoiceParamStyle `json:"toolChoiceParamStyle,omitempty"`
}
type PatchDefaultProviderRequest ¶
type PatchDefaultProviderRequest struct {
Body *PatchDefaultProviderRequestBody
}
type PatchDefaultProviderRequestBody ¶
type PatchDefaultProviderRequestBody struct {
DefaultProvider inferenceSpec.ProviderName `json:"defaultProvider" required:"true"`
}
type PatchDefaultProviderResponse ¶
type PatchDefaultProviderResponse struct{}
type PatchModelPresetRequest ¶
type PatchModelPresetRequest struct {
ProviderName inferenceSpec.ProviderName `path:"providerName" required:"true"`
ModelPresetID ModelPresetID `path:"modelPresetID" required:"true"`
Body *PatchModelPresetRequestBody
}
type PatchModelPresetRequestBody ¶
type PatchModelPresetRequestBody struct {
ModelPresetPatch
Name *ModelName `json:"name,omitempty"`
Slug *ModelSlug `json:"slug,omitempty"`
DisplayName *ModelDisplayName `json:"displayName,omitempty"`
IsEnabled *bool `json:"isEnabled,omitempty"`
}
PatchModelPresetRequestBody patches a stored model preset.
Semantics:
- nil pointer/object fields => not provided
- StopSequences=nil => not provided
- StopSequences=&[]{} => explicitly set to empty
- at least one field/override field must be supplied
type PatchModelPresetResponse ¶
type PatchModelPresetResponse struct{}
type PatchProviderPresetRequest ¶
type PatchProviderPresetRequest struct {
ProviderName inferenceSpec.ProviderName `path:"providerName" required:"true"`
Body *PatchProviderPresetRequestBody
}
type PatchProviderPresetRequestBody ¶
type PatchProviderPresetRequestBody struct {
DisplayName *ProviderDisplayName `json:"displayName,omitempty"`
SDKType *inferenceSpec.ProviderSDKType `json:"sdkType,omitempty"`
IsEnabled *bool `json:"isEnabled,omitempty"`
Origin *string `json:"origin,omitempty"`
ChatCompletionPathPrefix *string `json:"chatCompletionPathPrefix,omitempty"`
APIKeyHeaderKey *string `json:"apiKeyHeaderKey,omitempty"`
DefaultHeaders map[string]string `json:"defaultHeaders,omitempty"`
DefaultModelPresetID *ModelPresetID `json:"defaultModelPresetID,omitempty"`
CapabilitiesOverride *ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`
}
PatchProviderPresetRequestBody patches an existing provider preset.
Semantics:
- nil pointer fields => not provided
- DefaultHeaders nil => not provided
- DefaultHeaders {} => replace with empty map
- only user providers can patch provider metadata/capabilities
- built-ins only support isEnabled and defaultModelPresetID
type PatchProviderPresetResponse ¶
type PatchProviderPresetResponse struct{}
type PostModelPresetRequest ¶ added in v0.0.85
type PostModelPresetRequest struct {
ProviderName inferenceSpec.ProviderName `path:"providerName" required:"true"`
ModelPresetID ModelPresetID `path:"modelPresetID" required:"true"`
Body *PostModelPresetRequestBody
}
type PostModelPresetRequestBody ¶ added in v0.0.85
type PostModelPresetRequestBody struct {
ModelPresetPatch
Name ModelName `json:"name" required:"true"`
Slug ModelSlug `json:"slug" required:"true"`
DisplayName ModelDisplayName `json:"displayName" required:"true"`
IsEnabled bool `json:"isEnabled" required:"true"`
}
type PostModelPresetResponse ¶ added in v0.0.85
type PostModelPresetResponse struct{}
type PostProviderPresetRequest ¶ added in v0.0.85
type PostProviderPresetRequest struct {
ProviderName inferenceSpec.ProviderName `path:"providerName" required:"true"`
Body *PostProviderPresetRequestBody
}
type PostProviderPresetRequestBody ¶ added in v0.0.85
type PostProviderPresetRequestBody struct {
DisplayName ProviderDisplayName `json:"displayName" required:"true"`
SDKType inferenceSpec.ProviderSDKType `json:"sdkType" required:"true"`
IsEnabled bool `json:"isEnabled" required:"true"`
Origin string `json:"origin" required:"true"`
ChatCompletionPathPrefix string `json:"chatCompletionPathPrefix" required:"true"`
APIKeyHeaderKey string `json:"apiKeyHeaderKey,omitempty"`
DefaultHeaders map[string]string `json:"defaultHeaders,omitempty"`
CapabilitiesOverride *ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`
}
type PostProviderPresetResponse ¶ added in v0.0.85
type PostProviderPresetResponse struct{}
type PresetsSchema ¶
type PresetsSchema struct {
SchemaVersion string `json:"schemaVersion"`
DefaultProvider inferenceSpec.ProviderName `json:"defaultProvider"`
ProviderPresets map[inferenceSpec.ProviderName]ProviderPreset `json:"providerPresets"`
}
type ProviderDisplayName ¶
type ProviderDisplayName string
type ProviderPageToken ¶
type ProviderPageToken struct {
Names []inferenceSpec.ProviderName `json:"n,omitempty"` //nolint:tagliatelle // PageToken Specific.
IncludeDisabled bool `json:"d,omitempty"` //nolint:tagliatelle // PageToken Specific.
PageSize int `json:"s,omitempty"` //nolint:tagliatelle // PageToken Specific.
CursorSlug inferenceSpec.ProviderName `json:"c,omitempty"` //nolint:tagliatelle // PageToken Specific.
}
type ProviderPreset ¶
type ProviderPreset struct {
SchemaVersion string `json:"schemaVersion" required:"true"`
Name inferenceSpec.ProviderName `json:"name" required:"true"`
DisplayName ProviderDisplayName `json:"displayName" required:"true"`
SDKType inferenceSpec.ProviderSDKType `json:"sdkType" required:"true"`
IsEnabled bool `json:"isEnabled" required:"true"`
CreatedAt time.Time `json:"createdAt"`
ModifiedAt time.Time `json:"modifiedAt"`
IsBuiltIn bool `json:"isBuiltIn"`
Origin string `json:"origin" required:"true"`
ChatCompletionPathPrefix string `json:"chatCompletionPathPrefix" required:"true"`
APIKeyHeaderKey string `json:"apiKeyHeaderKey" required:"true"`
DefaultHeaders map[string]string `json:"defaultHeaders"`
// CapabilitiesOverride is a provider-wide stored override. Model overrides take precedence.
// This is NOT the derived/effective capability profile.
CapabilitiesOverride *ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`
DefaultModelPresetID ModelPresetID `json:"defaultModelPresetID"`
ModelPresets map[ModelPresetID]ModelPreset `json:"modelPresets"`
}
type ReasoningCapabilitiesOverride ¶ added in v0.0.81
type ReasoningCapabilitiesOverride struct {
SupportsReasoningConfig *bool `json:"supportsReasoningConfig,omitempty"`
SupportedReasoningTypes []inferenceSpec.ReasoningType `json:"supportedReasoningTypes,omitempty"`
SupportedReasoningLevels []inferenceSpec.ReasoningLevel `json:"supportedReasoningLevels,omitempty"`
SupportsSummaryStyle *bool `json:"supportsSummaryStyle,omitempty"`
SupportsEncryptedReasoningInput *bool `json:"supportsEncryptedReasoningInput,omitempty"`
TemperatureDisallowedWhenEnabled *bool `json:"temperatureDisallowedWhenEnabled,omitempty"`
}
type StopSequenceCapabilitiesOverride ¶ added in v0.0.81
type ToolCapabilitiesOverride ¶ added in v0.0.81
type ToolCapabilitiesOverride struct {
SupportedToolTypes []inferenceSpec.ToolType `json:"supportedToolTypes,omitempty"`
SupportedToolPolicyModes []inferenceSpec.ToolPolicyMode `json:"supportedToolPolicyModes,omitempty"`
SupportsParallelToolCalls *bool `json:"supportsParallelToolCalls,omitempty"`
MaxForcedTools *int `json:"maxForcedTools,omitempty"`
SupportedClientToolOutputFormats []inferenceSpec.ToolOutputFormatKind `json:"supportedClientToolOutputFormats,omitempty"`
}