Skip to content

nimgent/providers/provider_options

This page is generated from the module’s exported API and ## documentation comments.

Portable and provider-scoped request options.

Provider-neutral generation controls. Providers map these canonical fields to their native request names where supported.

GenerationOptions = object
temperature*: Option[float]
topP*: Option[float]
topK*: Option[int]
presencePenalty*: Option[float]
frequencyPenalty*: Option[float]
stopSequences*: Option[seq[string]]
seed*: Option[int]
reasoning*: Option[string]

View source

Provider-specific extensions. Use extra for settings without a typed namespace; its keys are always namespaced by provider name.

ProviderOptions = object
openai*: OpenAIOptions
anthropic*: AnthropicOptions
google*: GoogleOptions
openrouter*: OpenRouterOptions
hyper*: HyperOptions
extra*: JsonNode ## Additional native namespaces, e.g. {"google": {...}}.

View source

Serialize common settings using the selected provider’s wire names.

proc toProviderJson(value: GenerationOptions; providerName: string): JsonNode {.
raises: [], tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
value GenerationOptions
providerName string

View source

Merge provider-specific and provider-neutral generation settings.

proc resolveGenerationOptions(options: GenerationOptions;
scoped: ProviderOptions; providerName: string): JsonNode {.
raises: [ProviderError, KeyError], tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
options GenerationOptions
scoped ProviderOptions
providerName string

View source

Low-level merge: raw request options < namespace extra < typed namespace. Copy to keep serialization and adapter changes from mutating caller JSON.

proc resolveOptions(options: JsonNode; scoped: ProviderOptions;
providerName: string): JsonNode {.
raises: [ProviderError, KeyError], tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
options JsonNode
scoped ProviderOptions
providerName string

View source