Closed
Description
Description
When using OpenRouter with a Gemini model, it will try to download a file with a gs:// url even though Gemini supposedly can handle it directly.
import asyncio
import os
from dotenv import load_dotenv
from pydantic_ai import Agent
from pydantic_ai import AudioUrl
from pydantic_ai.models.openai import OpenAIModel
from pydantic_ai.providers.openrouter import OpenRouterProvider
async def main() -> None:
load_dotenv()
provider = OpenRouterProvider(
api_key=os.environ["OPENROUTER_API_KEY"],
)
agent = Agent(
model=OpenAIModel(
"google/gemini-2.0-flash-001",
provider=provider,
profile=provider.model_profile,
),
system_prompt="You are a helpful assistant that can transcribe audio to text.",
)
result = await agent.run(
[
"Here is the audio file to transcribe:",
AudioUrl(
url="gs://...",
force_download=False,
),
],
)
print(result.output)
if __name__ == "__main__":
asyncio.run(main())
The error stack
File "/Users/chenghao/Developer/ai-reports/.venv/lib/python3.12/site-packages/pydantic_ai/models/openai.py", line 229, in request
response = await self._completions_create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chenghao/Developer/ai-reports/.venv/lib/python3.12/site-packages/pydantic_ai/models/openai.py", line 293, in _completions_create
openai_messages = await self._map_messages(messages)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chenghao/Developer/ai-reports/.venv/lib/python3.12/site-packages/pydantic_ai/models/openai.py", line 416, in _map_messages
async for item in self._map_user_message(message):
File "/Users/chenghao/Developer/ai-reports/.venv/lib/python3.12/site-packages/pydantic_ai/models/openai.py", line 489, in _map_user_message
yield await self._map_user_prompt(part)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chenghao/Developer/ai-reports/.venv/lib/python3.12/site-packages/pydantic_ai/models/openai.py", line 545, in _map_user_prompt
downloaded_item = await download_item(item, data_format='base64', type_format='extension')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/chenghao/Developer/ai-reports/.venv/lib/python3.12/site-packages/pydantic_ai/models/__init__.py", line 689, in download_item
raise UserError('Downloading from protocol "gs://" is not supported.')
pydantic_ai.exceptions.UserError: Downloading from protocol "gs://" is not supported.
I am aware gs url support is available with Gemini/Google model classes from https://ai.pydantic.dev/input/#user-side-download-vs-direct-file-url, but I hope this downloading behavior could be more consistent with model profiles, in addition to model classes.
References
Metadata
Metadata
Assignees
Labels
No labels