Skip to content

Unsupported binary content type: video/mp4 #3121

@ddgszc

Description

@ddgszc

Initial Checks

Description

mp4 video content is not supported

this is my code:

from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.openai import OpenAIProvider
from pydantic_ai import Agent,BinaryContent

def get_model():
    model = OpenAIChatModel(
        model_name="xxx",
        provider=OpenAIProvider(
            api_key="xxx",
            base_url="xxx",
        ),
    )
    return model
with open("./test.mp4", "rb") as f:
    image_data = f.read()

agent=Agent(
    model=get_model(),
    system_prompt="You are a helpful assistant.",
)

result=agent.run_sync(
    [
        "Tell me the content of the video",
        BinaryContent(data=image_data, media_type="video/mp4"),
    ]
)

print(result.output)

Error info:

Traceback (most recent call last):
  File "/home/liuy/test/main.py", line 22, in <module>
    result=agent.run_sync(
           ^^^^^^^^^^^^^^^
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_ai/agent/abstract.py", line 328, in run_sync
    return get_event_loop().run_until_complete(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.local/share/uv/python/cpython-3.12.11-linux-x86_64-gnu/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_ai/agent/abstract.py", line 229, in run
    async for node in agent_run:
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_ai/run.py", line 150, in __anext__
    next_node = await self._graph_run.__anext__()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_graph/graph.py", line 758, in __anext__
    return await self.next(self._next_node)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_graph/graph.py", line 731, in next
    self._next_node = await node.run(ctx)
                      ^^^^^^^^^^^^^^^^^^^
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_ai/_agent_graph.py", line 397, in run
    return await self._make_request(ctx)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_ai/_agent_graph.py", line 439, in _make_request
    model_response = await ctx.deps.model.request(message_history, model_settings, model_request_parameters)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_ai/models/openai.py", line 402, in request
    response = await self._completions_create(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_ai/models/openai.py", line 465, in _completions_create
    openai_messages = await self._map_messages(messages)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_ai/models/openai.py", line 664, in _map_messages
    async for item in self._map_user_message(message):
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_ai/models/openai.py", line 747, in _map_user_message
    yield await self._map_user_prompt(part)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/liuy/test/.venv/lib/python3.12/site-packages/pydantic_ai/models/openai.py", line 813, in _map_user_prompt
    raise RuntimeError(f'Unsupported binary content type: {item.media_type}')
RuntimeError: Unsupported binary content type: video/mp4

Example Code

Python, Pydantic AI & LLM client version

requires-python = ">=3.12"
dependencies = [
    "pydantic-ai>=1.0.16",
]

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions