# This file was auto-generated by Fern from our API Definition.

import typing

import typing_extensions
from .think_settings_v1context_length import ThinkSettingsV1ContextLengthParams
from .think_settings_v1endpoint import ThinkSettingsV1EndpointParams
from .think_settings_v1functions_item import ThinkSettingsV1FunctionsItemParams
from .think_settings_v1provider import ThinkSettingsV1ProviderParams


class ThinkSettingsV1Params(typing_extensions.TypedDict):
    provider: ThinkSettingsV1ProviderParams
    endpoint: typing_extensions.NotRequired[ThinkSettingsV1EndpointParams]
    """
    Optional for non-Deepgram LLM providers. When present, must include url field and headers object
    """

    functions: typing_extensions.NotRequired[typing.Sequence[ThinkSettingsV1FunctionsItemParams]]
    prompt: typing_extensions.NotRequired[str]
    context_length: typing_extensions.NotRequired[ThinkSettingsV1ContextLengthParams]
    """
    Specifies the number of characters retained in context between user messages, agent responses, and function calls. This setting is only configurable when a custom think endpoint is used
    """
