Source code for autogen_ext.models.ollama.config

from typing import Any, Mapping, Optional, Union

from autogen_core.models import ModelCapabilities, ModelInfo  # type: ignore
from ollama import Options
from pydantic import BaseModel
from typing_extensions import TypedDict


# response_format MUST be a pydantic.BaseModel type or None
# TODO: check if we can extend response_format to support json and/or dict
# TODO: extend arguments to all AsyncClient supported args
[docs] class CreateArguments(TypedDict, total=False): model: str host: Optional[str] response_format: Any
[docs] class BaseOllamaClientConfiguration(CreateArguments, total=False): follow_redirects: bool timeout: Any headers: Optional[Mapping[str, str]] model_capabilities: ModelCapabilities # type: ignore model_info: ModelInfo """What functionality the model supports, determined by default from model name but is overriden if value passed.""" options: Optional[Union[Mapping[str, Any], Options]]
# Pydantic equivalents of the above TypedDicts # response_format MUST be a pydantic.BaseModel type or None
[docs] class CreateArgumentsConfigModel(BaseModel): model: str host: str | None = None response_format: Any = None
[docs] class BaseOllamaClientConfigurationConfigModel(CreateArgumentsConfigModel): # Defaults for ollama.AsyncClient follow_redirects: bool = True timeout: Any = None headers: Mapping[str, str] | None = None model_capabilities: ModelCapabilities | None = None # type: ignore model_info: ModelInfo | None = None options: Mapping[str, Any] | Options | None = None