|
6 | 6 |
|
7 | 7 | from pydantic_ai.agent import Agent |
8 | 8 | from pydantic_ai.exceptions import UserError |
| 9 | +from pydantic_ai.messages import ModelRequest, ModelResponse, TextPart, UserPromptPart |
| 10 | +from pydantic_ai.usage import Usage |
9 | 11 |
|
10 | | -from ..conftest import TestEnv, try_import |
| 12 | +from ..conftest import IsDatetime, IsStr, TestEnv, try_import |
11 | 13 |
|
12 | 14 | with try_import() as imports_successful: |
13 | 15 | import openai |
14 | 16 |
|
15 | | - from pydantic_ai.models.openai import OpenAIModel |
| 17 | + from pydantic_ai.models.openrouter import OpenRouterModel |
16 | 18 | from pydantic_ai.providers.openrouter import OpenRouterProvider |
17 | 19 |
|
18 | 20 |
|
@@ -57,11 +59,41 @@ def test_openrouter_pass_openai_client() -> None: |
57 | 59 |
|
58 | 60 | async def test_openrouter_with_google_model(allow_model_requests: None, openrouter_api_key: str) -> None: |
59 | 61 | provider = OpenRouterProvider(api_key=openrouter_api_key) |
60 | | - model = OpenAIModel('google/gemini-2.0-flash-exp:free', provider=provider) |
61 | | - agent = Agent(model, instructions='Be helpful.') |
| 62 | + model = OpenRouterModel('google/gemini-2.0-flash-exp:free', provider=provider) |
| 63 | + agent = Agent(model, instructions='Be helpful.', retries=1) |
62 | 64 | response = await agent.run('Tell me a joke.') |
63 | 65 | assert response.output == snapshot("""\ |
64 | 66 | Why don't scientists trust atoms? \n\ |
65 | 67 |
|
66 | 68 | Because they make up everything! |
67 | 69 | """) |
| 70 | + |
| 71 | + assert response.all_messages() == snapshot( |
| 72 | + [ |
| 73 | + ModelRequest( |
| 74 | + parts=[ |
| 75 | + UserPromptPart( |
| 76 | + content='Tell me a joke.', |
| 77 | + timestamp=IsDatetime(iso_string=True), |
| 78 | + ) |
| 79 | + ], |
| 80 | + instructions='Be helpful.', |
| 81 | + ), |
| 82 | + ModelResponse( |
| 83 | + parts=[ |
| 84 | + TextPart( |
| 85 | + content="""\ |
| 86 | +Why don't scientists trust atoms? \n\ |
| 87 | +
|
| 88 | +Because they make up everything! |
| 89 | +""" |
| 90 | + ) |
| 91 | + ], |
| 92 | + usage=Usage(requests=1, request_tokens=8, response_tokens=17, total_tokens=25, details={}), |
| 93 | + model_name='google/gemini-2.0-flash-exp:free', |
| 94 | + timestamp=IsDatetime(iso_string=True), |
| 95 | + vendor_details={'provider': 'Google'}, |
| 96 | + vendor_id=IsStr(), |
| 97 | + ), |
| 98 | + ] |
| 99 | + ) |
0 commit comments