mirror of
https://github.com/wassname/openrouter-python-sdk-retry-errors.git
synced 2026-07-30 12:20:57 +08:00
Co-authored-by: speakeasybot <bot@speakeasyapi.dev> Co-authored-by: speakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
71 lines
2.8 KiB
Python
71 lines
2.8 KiB
Python
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
|
|
from __future__ import annotations
|
|
from .anthropicbase64imagesource import (
|
|
AnthropicBase64ImageSource,
|
|
AnthropicBase64ImageSourceTypedDict,
|
|
)
|
|
from .anthropiccachecontroldirective import (
|
|
AnthropicCacheControlDirective,
|
|
AnthropicCacheControlDirectiveTypedDict,
|
|
)
|
|
from .anthropicurlimagesource import (
|
|
AnthropicURLImageSource,
|
|
AnthropicURLImageSourceTypedDict,
|
|
)
|
|
from openrouter.types import BaseModel, UNSET_SENTINEL
|
|
from openrouter.utils import get_discriminator
|
|
from pydantic import Discriminator, Tag, model_serializer
|
|
from typing import Literal, Optional, Union
|
|
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
|
|
|
|
|
|
AnthropicImageBlockParamSourceTypedDict = TypeAliasType(
|
|
"AnthropicImageBlockParamSourceTypedDict",
|
|
Union[AnthropicURLImageSourceTypedDict, AnthropicBase64ImageSourceTypedDict],
|
|
)
|
|
|
|
|
|
AnthropicImageBlockParamSource = Annotated[
|
|
Union[
|
|
Annotated[AnthropicBase64ImageSource, Tag("base64")],
|
|
Annotated[AnthropicURLImageSource, Tag("url")],
|
|
],
|
|
Discriminator(lambda m: get_discriminator(m, "type", "type")),
|
|
]
|
|
|
|
|
|
AnthropicImageBlockParamType = Literal["image",]
|
|
|
|
|
|
class AnthropicImageBlockParamTypedDict(TypedDict):
|
|
source: AnthropicImageBlockParamSourceTypedDict
|
|
type: AnthropicImageBlockParamType
|
|
cache_control: NotRequired[AnthropicCacheControlDirectiveTypedDict]
|
|
r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format."""
|
|
|
|
|
|
class AnthropicImageBlockParam(BaseModel):
|
|
source: AnthropicImageBlockParamSource
|
|
|
|
type: AnthropicImageBlockParamType
|
|
|
|
cache_control: Optional[AnthropicCacheControlDirective] = None
|
|
r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format."""
|
|
|
|
@model_serializer(mode="wrap")
|
|
def serialize_model(self, handler):
|
|
optional_fields = set(["cache_control"])
|
|
serialized = handler(self)
|
|
m = {}
|
|
|
|
for n, f in type(self).model_fields.items():
|
|
k = f.alias or n
|
|
val = serialized.get(k, serialized.get(n))
|
|
|
|
if val != UNSET_SENTINEL:
|
|
if val is not None or k not in optional_fields:
|
|
m[k] = val
|
|
|
|
return m
|