chatprovider

package
v2.32.0-rc.0 Latest Latest
Warning

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

Go to latest
Published: Mar 24, 2026 License: AGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CloneWithPreviousResponseID

func CloneWithPreviousResponseID(
	opts fantasy.ProviderOptions,
	previousResponseID string,
) fantasy.ProviderOptions

CloneWithPreviousResponseID shallow-clones the provider options map and the OpenAI Responses entry, setting PreviousResponseID on the clone. The original map and entry are not mutated.

func IsEnvPresetProvider

func IsEnvPresetProvider(provider string) bool

IsEnvPresetProvider reports whether provider supports env presets.

func IsResponsesStoreEnabled

func IsResponsesStoreEnabled(opts fantasy.ProviderOptions) bool

IsResponsesStoreEnabled checks if the OpenAI Responses provider options are present and have Store set to true. When true, the provider stores conversation history server-side, enabling follow-up chaining via PreviousResponseID.

func MergeMissingModelCostConfig

func MergeMissingModelCostConfig(
	dst **codersdk.ModelCostConfig,
	defaults *codersdk.ModelCostConfig,
)

MergeMissingModelCostConfig fills unset pricing metadata from defaults.

func MergeMissingProviderOptions

func MergeMissingProviderOptions(
	dst **codersdk.ChatModelProviderOptions,
	defaults *codersdk.ChatModelProviderOptions,
)

MergeMissingProviderOptions fills unset provider option fields from defaults.

func ModelFromConfig

func ModelFromConfig(
	providerHint string,
	modelName string,
	providerKeys ProviderAPIKeys,
	userAgent string,
) (fantasy.LanguageModel, error)

ModelFromConfig resolves a provider/model pair and constructs a fantasy language model client using the provided provider credentials. The userAgent is sent as the User-Agent header on every outgoing LLM API request.

func NormalizeProvider

func NormalizeProvider(provider string) string

NormalizeProvider canonicalizes a provider name.

func OpenAITextVerbosityFromChat

func OpenAITextVerbosityFromChat(value *string) *fantasyopenai.TextVerbosity

OpenAITextVerbosityFromChat normalizes chat-config text verbosity values for OpenAI and returns the canonical provider verbosity value.

func ProviderDisplayName

func ProviderDisplayName(provider string) string

ProviderDisplayName returns a default display name for a provider.

func ProviderOptionsFromChatModelConfig

func ProviderOptionsFromChatModelConfig(
	model fantasy.LanguageModel,
	options *codersdk.ChatModelProviderOptions,
) fantasy.ProviderOptions

ProviderOptionsFromChatModelConfig converts chat model provider options to fantasy provider options used for inference calls.

func ReasoningEffortFromChat

func ReasoningEffortFromChat(provider string, value *string) *string

ReasoningEffortFromChat normalizes chat-config reasoning effort values for a provider and returns the canonical provider effort value.

func ResolveModelWithProviderHint

func ResolveModelWithProviderHint(modelName, providerHint string) (provider string, model string, err error)

func SupportedProviders

func SupportedProviders() []string

SupportedProviders returns all chat providers supported by Fantasy.

func UserAgent

func UserAgent() string

UserAgent returns the User-Agent string sent on all outgoing LLM API requests made by Coder's built-in chat (chatd). The format mirrors conventions used by other coding agents so that LLM providers can identify traffic originating from Coder.

Example: coder-agents/v2.21.0 (linux/amd64)

Types

type ConfiguredModel

type ConfiguredModel struct {
	Provider    string
	Model       string
	DisplayName string
}

ConfiguredModel is an enabled model loaded from database config.

type ConfiguredProvider

type ConfiguredProvider struct {
	Provider string
	APIKey   string
	BaseURL  string
}

ConfiguredProvider is an enabled provider loaded from database config.

type ModelCatalog

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

func NewModelCatalog

func NewModelCatalog(keys ProviderAPIKeys) *ModelCatalog

func (*ModelCatalog) ListConfiguredModels

func (c *ModelCatalog) ListConfiguredModels(
	configuredProviders []ConfiguredProvider,
	configuredModels []ConfiguredModel,
) (codersdk.ChatModelsResponse, bool)

ListConfiguredModels returns a model catalog from enabled DB-backed model configs. The second return value reports whether DB-backed models were used.

func (*ModelCatalog) ListConfiguredProviderAvailability

func (c *ModelCatalog) ListConfiguredProviderAvailability(
	configuredProviders []ConfiguredProvider,
) codersdk.ChatModelsResponse

ListConfiguredProviderAvailability returns provider availability derived from deployment/env keys merged with enabled DB provider keys.

type ProviderAPIKeys

type ProviderAPIKeys struct {
	OpenAI            string
	Anthropic         string
	ByProvider        map[string]string
	BaseURLByProvider map[string]string
}

ProviderAPIKeys contains API keys for provider calls.

func MergeProviderAPIKeys

func MergeProviderAPIKeys(fallback ProviderAPIKeys, providers []ConfiguredProvider) ProviderAPIKeys

MergeProviderAPIKeys overlays configured provider keys over fallback keys.

func (ProviderAPIKeys) APIKey

func (k ProviderAPIKeys) APIKey(provider string) string

APIKey returns the effective API key for a provider.

func (ProviderAPIKeys) BaseURL

func (k ProviderAPIKeys) BaseURL(provider string) string

BaseURL returns the configured base URL for a provider.

Jump to

Keyboard shortcuts

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