in src/frontends/streamlit/frontend/utils/multimodal_utils.py [0:0]
def format_content(content: str | list[dict[str, Any]]) -> str:
"""Formats content as a string, handling both text and multimedia inputs."""
if isinstance(content, str):
return content
if len(content) == 1 and content[0]["type"] == "text":
return content[0]["text"]
markdown = """Media:
"""
text = ""
for part in content:
if part["type"] == "text":
text = part["text"]
# Local Images:
if part["type"] == "image_url":
image_url = part["image_url"]["url"]
image_markdown = f'<img src="{image_url}" width="100">'
markdown = (
markdown
+ f"""
- {image_markdown}
"""
)
if part["type"] == "media":
# Local other media
if "data" in part:
markdown = markdown + f"- Local media: {part['file_name']}\n"
# From GCS:
if "file_uri" in part:
# GCS images
if "image" in part["mime_type"]:
image_url = gs_uri_to_https_url(part["file_uri"])
image_markdown = f'<img src="{image_url}" width="100">'
markdown = (
markdown
+ f"""
- {image_markdown}
"""
)
# GCS other media
else:
image_url = gs_uri_to_https_url(part["file_uri"])
markdown = (
markdown + f"- Remote media: "
f"[{part['file_uri']}]({image_url})\n"
)
markdown = (
markdown
+ f"""
{text}"""
)
return markdown