types: allow additional properties in tool function schemas

Enable Pydantic's extra='allow' for Parameters and Property classes
to support complex JSON schemas with arbitrary additional fields.
This allows complex JSON schemas with additional fields when sending tool
definitions to the Ollama API.

Fixes compatibility with ollama#11444"
This commit is contained in:
Jonathan Gastón Löwenstern 2025-07-16 23:02:37 +02:00
parent b23d79d8b5
commit bd49f558dd

View File

@ -320,14 +320,14 @@ class Tool(SubscriptableBaseModel):
description: Optional[str] = None
class Parameters(SubscriptableBaseModel):
model_config = ConfigDict(populate_by_name=True)
model_config = ConfigDict(populate_by_name=True, extra='allow')
type: Optional[Literal['object']] = 'object'
defs: Optional[Any] = Field(None, alias='$defs')
items: Optional[Any] = None
required: Optional[Sequence[str]] = None
class Property(SubscriptableBaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True)
model_config = ConfigDict(arbitrary_types_allowed=True, extra='allow')
type: Optional[Union[str, Sequence[str]]] = None
items: Optional[Any] = None