def format_content()

in src/frontends/streamlit_adk/frontend/utils/multimodal_utils.py [0:0]


def format_content(parts: list[types.Part] | str) -> str:
    """Formats content as a string, handling both text and multimedia inputs."""
    # Check if parts is empty
    if not parts:
        return ""

    # Handle case where parts might be a string
    if isinstance(parts, str):
        return parts

    markdown = ""
    text = ""
    for part in parts:
        # Convert to Part object if it's a dictionary
        if isinstance(part, dict):
            part = types.Part.model_validate(part)
        if part.text:
            text = part.text
        # Handle inline data (images and other media)
        elif part.inline_data:
            if "image" in part.inline_data.mime_type:
                # For images, create an HTML img tag
                image_data = base64.b64encode(part.inline_data.data).decode("utf-8")
                image_markdown = f'<img src="data:{part.inline_data.mime_type};base64,{image_data}" width="100">'
                markdown = (
                    markdown
                    + f"""
- {image_markdown}
"""
                )
            else:
                # For other media types
                markdown = markdown + f"- Local media: {part.inline_data.mime_type}\n"
        # Handle file data (GCS files)
        elif part.file_data:
            if part.file_data.mime_type and "image" in part.file_data.mime_type:
                # GCS images
                image_url = gs_uri_to_https_url(part.file_data.file_uri)
                image_markdown = f'<img src="{image_url}" width="100">'
                markdown = (
                    markdown
                    + f"""
- {image_markdown}
"""
                )
            else:
                # GCS other media
                image_url = gs_uri_to_https_url(part.file_data.file_uri)
                markdown = (
                    markdown + f"- Remote media: "
                    f"[{part.file_data.file_uri}]({image_url})\n"
                )
    markdown = (
        markdown
        + f"""

{text}"""
    )
    return markdown