Skip to content

ImageBase64Content

Base classes

Name Children Inherits
BaseImageContent
llmling_agent.models.content
Base for image content.

⋔ Inheritance diagram

graph TD
  94461877930224["content.ImageBase64Content"]
  94461877432032["content.BaseImageContent"]
  94461877390128["content.BaseContent"]
  94461844082608["main.BaseModel"]
  139711135027392["builtins.object"]
  94461877432032 --> 94461877930224
  94461877390128 --> 94461877432032
  94461844082608 --> 94461877390128
  139711135027392 --> 94461844082608

🛈 DocStrings

Bases: BaseImageContent

Image from base64 data.

Source code in src/llmling_agent/models/content.py
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
class ImageBase64Content(BaseImageContent):
    """Image from base64 data."""

    type: Literal["image_base64"] = Field("image_base64", init=False)
    """Base64-encoded image."""

    data: str
    """Base64-encoded image data."""

    mime_type: str = "image/jpeg"
    """MIME type of the image."""

    def to_openai_format(self) -> dict[str, Any]:
        """Convert to OpenAI API format for vision models."""
        data_url = f"data:{self.mime_type};base64,{self.data}"
        content = {"url": data_url, "detail": self.detail or "auto"}
        return {"type": "image_url", "image_url": content}

    @classmethod
    def from_bytes(
        cls,
        data: bytes,
        *,
        detail: DetailLevel | None = None,
        description: str | None = None,
    ) -> ImageBase64Content:
        """Create image content from raw bytes.

        Args:
            data: Raw image bytes
            detail: Optional detail level for processing
            description: Optional description of the image
        """
        content = base64.b64encode(data).decode()
        return cls(data=content, detail=detail, description=description)

    @classmethod
    def from_pil_image(cls, image: PIL.Image.Image) -> ImageBase64Content:
        """Create content from PIL Image."""
        with io.BytesIO() as buffer:
            image.save(buffer, format="PNG")
            return cls(data=base64.b64encode(buffer.getvalue()).decode())

data instance-attribute

data: str

Base64-encoded image data.

mime_type class-attribute instance-attribute

mime_type: str = 'image/jpeg'

MIME type of the image.

type class-attribute instance-attribute

type: Literal['image_base64'] = Field('image_base64', init=False)

Base64-encoded image.

from_bytes classmethod

from_bytes(
    data: bytes, *, detail: DetailLevel | None = None, description: str | None = None
) -> ImageBase64Content

Create image content from raw bytes.

Parameters:

Name Type Description Default
data bytes

Raw image bytes

required
detail DetailLevel | None

Optional detail level for processing

None
description str | None

Optional description of the image

None
Source code in src/llmling_agent/models/content.py
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
@classmethod
def from_bytes(
    cls,
    data: bytes,
    *,
    detail: DetailLevel | None = None,
    description: str | None = None,
) -> ImageBase64Content:
    """Create image content from raw bytes.

    Args:
        data: Raw image bytes
        detail: Optional detail level for processing
        description: Optional description of the image
    """
    content = base64.b64encode(data).decode()
    return cls(data=content, detail=detail, description=description)

from_pil_image classmethod

from_pil_image(image: Image) -> ImageBase64Content

Create content from PIL Image.

Source code in src/llmling_agent/models/content.py
133
134
135
136
137
138
@classmethod
def from_pil_image(cls, image: PIL.Image.Image) -> ImageBase64Content:
    """Create content from PIL Image."""
    with io.BytesIO() as buffer:
        image.save(buffer, format="PNG")
        return cls(data=base64.b64encode(buffer.getvalue()).decode())

to_openai_format

to_openai_format() -> dict[str, Any]

Convert to OpenAI API format for vision models.

Source code in src/llmling_agent/models/content.py
109
110
111
112
113
def to_openai_format(self) -> dict[str, Any]:
    """Convert to OpenAI API format for vision models."""
    data_url = f"data:{self.mime_type};base64,{self.data}"
    content = {"url": data_url, "detail": self.detail or "auto"}
    return {"type": "image_url", "image_url": content}

Show source on GitHub