pydantic-ai 0.2.16__tar.gz → 0.2.17__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pydantic-ai might be problematic. Click here for more details.

Files changed (260) hide show
  1. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/PKG-INFO +3 -3
  2. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/conftest.py +8 -2
  3. pydantic_ai-0.2.17/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +51 -0
  4. pydantic_ai-0.2.17/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +63 -0
  5. pydantic_ai-0.2.17/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +69 -0
  6. pydantic_ai-0.2.17/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +111 -0
  7. pydantic_ai-0.2.17/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +113 -0
  8. pydantic_ai-0.2.17/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +117 -0
  9. pydantic_ai-0.2.17/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +119 -0
  10. pydantic_ai-0.2.17/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +112 -0
  11. pydantic_ai-0.2.17/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +113 -0
  12. pydantic_ai-0.2.17/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +119 -0
  13. pydantic_ai-0.2.17/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +115 -0
  14. pydantic_ai-0.2.17/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +114 -0
  15. pydantic_ai-0.2.17/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +161 -0
  16. pydantic_ai-0.2.17/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +112 -0
  17. pydantic_ai-0.2.17/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +112 -0
  18. pydantic_ai-0.2.17/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +122 -0
  19. pydantic_ai-0.2.17/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +118 -0
  20. pydantic_ai-0.2.17/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +113 -0
  21. pydantic_ai-0.2.17/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +114 -0
  22. pydantic_ai-0.2.17/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +117 -0
  23. pydantic_ai-0.2.17/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +113 -0
  24. pydantic_ai-0.2.17/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +115 -0
  25. pydantic_ai-0.2.17/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +157 -0
  26. pydantic_ai-0.2.17/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +77 -0
  27. pydantic_ai-0.2.17/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +96 -0
  28. pydantic_ai-0.2.17/tests/models/test_download_item.py +53 -0
  29. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_gemini.py +44 -0
  30. pydantic_ai-0.2.17/tests/models/test_gemini_vertex.py +199 -0
  31. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_google.py +141 -6
  32. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_openai.py +10 -0
  33. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_openai_responses.py +10 -0
  34. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_logfire.py +71 -4
  35. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_messages.py +16 -0
  36. pydantic_ai-0.2.16/tests/models/test_gemini_vertexai.py +0 -51
  37. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/.gitignore +0 -0
  38. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/LICENSE +0 -0
  39. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/Makefile +0 -0
  40. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/README.md +0 -0
  41. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/pyproject.toml +0 -0
  42. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/__init__.py +0 -0
  43. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/assets/dummy.pdf +0 -0
  44. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/assets/kiwi.png +0 -0
  45. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/assets/marcelo.mp3 +0 -0
  46. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/assets/small_video.mp4 +0 -0
  47. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
  48. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
  49. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
  50. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
  51. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
  52. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
  53. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
  54. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
  55. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
  56. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
  57. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
  58. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
  59. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
  60. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
  61. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
  62. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
  63. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
  64. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/__init__.py +0 -0
  65. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_dataset.py +0 -0
  66. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_evaluator_base.py +0 -0
  67. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_evaluator_common.py +0 -0
  68. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_evaluator_context.py +0 -0
  69. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_evaluator_spec.py +0 -0
  70. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_evaluators.py +0 -0
  71. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_llm_as_a_judge.py +0 -0
  72. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_otel.py +0 -0
  73. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_render_numbers.py +0 -0
  74. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_reporting.py +0 -0
  75. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_reports.py +0 -0
  76. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/test_utils.py +0 -0
  77. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/evals/utils.py +0 -0
  78. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/example_modules/README.md +0 -0
  79. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/example_modules/bank_database.py +0 -0
  80. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/example_modules/fake_database.py +0 -0
  81. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/example_modules/weather_service.py +0 -0
  82. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/ext/__init__.py +0 -0
  83. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/ext/test_langchain.py +0 -0
  84. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/fasta2a/__init__.py +0 -0
  85. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/fasta2a/test_applications.py +0 -0
  86. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/graph/__init__.py +0 -0
  87. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/graph/test_file_persistence.py +0 -0
  88. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/graph/test_graph.py +0 -0
  89. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/graph/test_mermaid.py +0 -0
  90. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/graph/test_persistence.py +0 -0
  91. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/graph/test_state.py +0 -0
  92. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/graph/test_utils.py +0 -0
  93. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/import_examples.py +0 -0
  94. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/json_body_serializer.py +0 -0
  95. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/mcp_server.py +0 -0
  96. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/__init__.py +0 -0
  97. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
  98. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
  99. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
  100. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
  101. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
  102. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
  103. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
  104. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
  105. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
  106. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
  107. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
  108. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
  109. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
  110. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
  111. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
  112. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
  113. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
  114. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
  115. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
  116. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
  117. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
  118. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_response.yaml +0 -0
  119. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
  120. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
  121. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
  122. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
  123. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
  124. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
  125. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
  126. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
  127. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
  128. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
  129. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
  130. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
  131. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
  132. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
  133. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
  134. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
  135. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
  136. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
  137. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
  138. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
  139. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
  140. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
  141. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
  142. {pydantic_ai-0.2.16/tests/models/cassettes/test_gemini_vertexai → pydantic_ai-0.2.17/tests/models/cassettes/test_gemini_vertex}/test_labels.yaml +0 -0
  143. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
  144. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
  145. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
  146. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
  147. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
  148. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
  149. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
  150. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
  151. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
  152. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
  153. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
  154. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
  155. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_structured_response.yaml +0 -0
  156. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
  157. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
  158. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
  159. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
  160. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
  161. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
  162. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
  163. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
  164. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
  165. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
  166. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
  167. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
  168. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
  169. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
  170. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
  171. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
  172. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
  173. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
  174. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
  175. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
  176. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
  177. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
  178. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
  179. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
  180. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
  181. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
  182. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
  183. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
  184. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
  185. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
  186. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
  187. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
  188. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
  189. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
  190. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
  191. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
  192. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
  193. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
  194. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
  195. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
  196. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
  197. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
  198. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
  199. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
  200. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
  201. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
  202. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
  203. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
  204. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
  205. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
  206. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
  207. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
  208. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
  209. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/mock_async_stream.py +0 -0
  210. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_anthropic.py +0 -0
  211. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_bedrock.py +0 -0
  212. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_cohere.py +0 -0
  213. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_fallback.py +0 -0
  214. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_groq.py +0 -0
  215. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_instrumented.py +0 -0
  216. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_mistral.py +0 -0
  217. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_model.py +0 -0
  218. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_model_function.py +0 -0
  219. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_model_names.py +0 -0
  220. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_model_request_parameters.py +0 -0
  221. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/models/test_model_test.py +0 -0
  222. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/__init__.py +0 -0
  223. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
  224. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
  225. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
  226. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
  227. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_anthropic.py +0 -0
  228. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_azure.py +0 -0
  229. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_bedrock.py +0 -0
  230. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_cohere.py +0 -0
  231. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_deepseek.py +0 -0
  232. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_fireworks.py +0 -0
  233. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_google_gla.py +0 -0
  234. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_google_vertex.py +0 -0
  235. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_grok.py +0 -0
  236. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_groq.py +0 -0
  237. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_heroku.py +0 -0
  238. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_mistral.py +0 -0
  239. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_openai.py +0 -0
  240. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_openrouter.py +0 -0
  241. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_provider_names.py +0 -0
  242. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/providers/test_together.py +0 -0
  243. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_a2a.py +0 -0
  244. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_agent.py +0 -0
  245. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_cli.py +0 -0
  246. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_deps.py +0 -0
  247. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_direct.py +0 -0
  248. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_examples.py +0 -0
  249. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_format_as_xml.py +0 -0
  250. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_json_body_serializer.py +0 -0
  251. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_live.py +0 -0
  252. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_mcp.py +0 -0
  253. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_parts_manager.py +0 -0
  254. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_settings.py +0 -0
  255. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_streaming.py +0 -0
  256. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_tools.py +0 -0
  257. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_usage_limits.py +0 -0
  258. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/test_utils.py +0 -0
  259. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/typed_agent.py +0 -0
  260. {pydantic_ai-0.2.16 → pydantic_ai-0.2.17}/tests/typed_graph.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pydantic-ai
3
- Version: 0.2.16
3
+ Version: 0.2.17
4
4
  Summary: Agent Framework / shim to use Pydantic with LLMs
5
5
  Project-URL: Homepage, https://ai.pydantic.dev
6
6
  Project-URL: Source, https://github.com/pydantic/pydantic-ai
@@ -28,9 +28,9 @@ Classifier: Topic :: Internet
28
28
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Requires-Python: >=3.9
31
- Requires-Dist: pydantic-ai-slim[a2a,anthropic,bedrock,cli,cohere,evals,google,groq,mcp,mistral,openai,vertexai]==0.2.16
31
+ Requires-Dist: pydantic-ai-slim[a2a,anthropic,bedrock,cli,cohere,evals,google,groq,mcp,mistral,openai,vertexai]==0.2.17
32
32
  Provides-Extra: examples
33
- Requires-Dist: pydantic-ai-examples==0.2.16; extra == 'examples'
33
+ Requires-Dist: pydantic-ai-examples==0.2.17; extra == 'examples'
34
34
  Provides-Extra: logfire
35
35
  Requires-Dist: logfire>=3.11.0; extra == 'logfire'
36
36
  Description-Content-Type: text/markdown
@@ -24,21 +24,27 @@ import pydantic_ai.models
24
24
  from pydantic_ai.messages import BinaryContent
25
25
  from pydantic_ai.models import Model, cached_async_http_client
26
26
 
27
- __all__ = 'IsDatetime', 'IsFloat', 'IsNow', 'IsStr', 'IsInt', 'TestEnv', 'ClientWithHandler', 'try_import'
27
+ __all__ = 'IsDatetime', 'IsFloat', 'IsNow', 'IsStr', 'IsInt', 'IsInstance', 'TestEnv', 'ClientWithHandler', 'try_import'
28
28
 
29
29
 
30
30
  pydantic_ai.models.ALLOW_MODEL_REQUESTS = False
31
31
 
32
32
  if TYPE_CHECKING:
33
+ from typing import TypeVar
34
+
33
35
  from pydantic_ai.providers.bedrock import BedrockProvider
34
36
 
37
+ T = TypeVar('T')
38
+
39
+ def IsInstance(arg: type[T]) -> T: ...
40
+
35
41
  def IsDatetime(*args: Any, **kwargs: Any) -> datetime: ...
36
42
  def IsFloat(*args: Any, **kwargs: Any) -> float: ...
37
43
  def IsInt(*args: Any, **kwargs: Any) -> int: ...
38
44
  def IsNow(*args: Any, **kwargs: Any) -> datetime: ...
39
45
  def IsStr(*args: Any, **kwargs: Any) -> str: ...
40
46
  else:
41
- from dirty_equals import IsDatetime, IsFloat, IsInt, IsNow as _IsNow, IsStr
47
+ from dirty_equals import IsDatetime, IsFloat, IsInstance, IsInt, IsNow as _IsNow, IsStr
42
48
 
43
49
  def IsNow(*args: Any, **kwargs: Any):
44
50
  # Increase the default value of `delta` to 10 to reduce test flakiness on overburdened machines
@@ -0,0 +1,51 @@
1
+ interactions:
2
+ - request:
3
+ body: ""
4
+ headers:
5
+ accept:
6
+ - "*/*"
7
+ accept-encoding:
8
+ - gzip, deflate
9
+ connection:
10
+ - keep-alive
11
+ host:
12
+ - raw.githubusercontent.com
13
+ method: GET
14
+ uri: https://raw.githubusercontent.com/pydantic/pydantic-ai/refs/heads/main/tests/assets/small_video.mp4
15
+ response:
16
+ body:
17
+ string: !!binary |
18
+ AAAAHGZ0eXBtcDQyAAAAAWlzb21tcDQxbXA0MgAAAAFtZGF0AAAAAAAJiusAAAKsBgX//6jcRem9
19
+ YAAAHwwAACZMAACPRQAAM90AAB9FAAAhvwAAjNgAAEHMAAAgtQAAIdoAAAAYc3RjbwAAAAAAAAAC
20
+ AAAALAAHT2I=
21
+ headers:
22
+ accept-ranges:
23
+ - bytes
24
+ access-control-allow-origin:
25
+ - "*"
26
+ cache-control:
27
+ - max-age=300
28
+ connection:
29
+ - keep-alive
30
+ content-length:
31
+ - "122"
32
+ content-security-policy:
33
+ - default-src 'none'; style-src 'unsafe-inline'; sandbox
34
+ content-type:
35
+ - application/octet-stream
36
+ cross-origin-resource-policy:
37
+ - cross-origin
38
+ etag:
39
+ - W/"0e8fc2491b5d905053d769cebf41efa65670fdce574bc3d0a132431e025608d7"
40
+ expires:
41
+ - Sun, 01 Jun 2025 00:07:45 GMT
42
+ source-age:
43
+ - "105"
44
+ strict-transport-security:
45
+ - max-age=31536000
46
+ vary:
47
+ - Authorization,Accept-Encoding
48
+ status:
49
+ code: 200
50
+ message: OK
51
+ version: 1
@@ -0,0 +1,63 @@
1
+ interactions:
2
+ - request:
3
+ body: ""
4
+ headers:
5
+ accept:
6
+ - "*/*"
7
+ accept-encoding:
8
+ - gzip, deflate
9
+ connection:
10
+ - keep-alive
11
+ host:
12
+ - raw.githubusercontent.com
13
+ method: GET
14
+ uri: https://raw.githubusercontent.com/pydantic/pydantic-ai/refs/heads/main/docs/help.md
15
+ response:
16
+ body:
17
+ string: |
18
+ # Getting Help
19
+
20
+ If you need help getting started with PydanticAI or with advanced usage, the following sources may be useful.
21
+
22
+ ## :simple-slack: Slack
23
+
24
+ Join the `#pydantic-ai` channel in the [Pydantic Slack][slack] to ask questions, get help, and chat about PydanticAI. There's also channels for Pydantic, Logfire, and FastUI.
25
+
26
+ If you're on a [Logfire][logfire] Pro plan, you can also get a dedicated private slack collab channel with us.
27
+
28
+ ## :simple-github: GitHub Issues
29
+
30
+ The [PydanticAI GitHub Issues][github-issues] are a great place to ask questions and give us feedback.
31
+
32
+ [slack]: https://logfire.pydantic.dev/docs/join-slack/
33
+ [github-issues]: https://github.com/pydantic/pydantic-ai/issues
34
+ [logfire]: https://pydantic.dev/logfire
35
+ headers:
36
+ accept-ranges:
37
+ - bytes
38
+ access-control-allow-origin:
39
+ - "*"
40
+ cache-control:
41
+ - max-age=300
42
+ connection:
43
+ - keep-alive
44
+ content-length:
45
+ - "737"
46
+ content-security-policy:
47
+ - default-src 'none'; style-src 'unsafe-inline'; sandbox
48
+ cross-origin-resource-policy:
49
+ - cross-origin
50
+ etag:
51
+ - W/"ac68af1e83d8ab533a0b86ab888c49b56225d78e0152e93ec97f3bae1c3fdc2d"
52
+ expires:
53
+ - Sun, 01 Jun 2025 23:17:48 GMT
54
+ source-age:
55
+ - "0"
56
+ strict-transport-security:
57
+ - max-age=31536000
58
+ vary:
59
+ - Authorization,Accept-Encoding
60
+ status:
61
+ code: 200
62
+ message: OK
63
+ version: 1
@@ -0,0 +1,69 @@
1
+ interactions:
2
+ - request:
3
+ headers:
4
+ accept:
5
+ - '*/*'
6
+ accept-encoding:
7
+ - gzip, deflate
8
+ connection:
9
+ - keep-alive
10
+ content-length:
11
+ - '168'
12
+ content-type:
13
+ - application/json
14
+ host:
15
+ - generativelanguage.googleapis.com
16
+ method: POST
17
+ parsed_body:
18
+ contents:
19
+ - parts:
20
+ - text: What is the main content of this URL?
21
+ - fileData:
22
+ fileUri: https://youtu.be/lCdaVNyHtjU
23
+ mimeType: video/mp4
24
+ role: user
25
+ uri: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent
26
+ response:
27
+ headers:
28
+ alt-svc:
29
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
30
+ content-length:
31
+ - '1059'
32
+ content-type:
33
+ - application/json; charset=UTF-8
34
+ server-timing:
35
+ - gfet4t7; dur=5843
36
+ transfer-encoding:
37
+ - chunked
38
+ vary:
39
+ - Origin
40
+ - X-Origin
41
+ - Referer
42
+ parsed_body:
43
+ candidates:
44
+ - avgLogprobs: -0.2758338186475966
45
+ content:
46
+ parts:
47
+ - text: The main content of the URL is an analysis of recent 404 HTTP responses. The analysis identifies several
48
+ patterns, including the most common endpoints with 404 errors, request patterns (such as all requests being
49
+ GET requests), timeline-related issues, and configuration/authentication problems. The analysis also provides
50
+ recommendations for addressing the 404 errors.
51
+ role: model
52
+ finishReason: STOP
53
+ modelVersion: gemini-2.0-flash
54
+ usageMetadata:
55
+ candidatesTokenCount: 72
56
+ candidatesTokensDetails:
57
+ - modality: TEXT
58
+ tokenCount: 72
59
+ promptTokenCount: 9
60
+ promptTokensDetails:
61
+ - modality: TEXT
62
+ tokenCount: 9
63
+ - modality: VIDEO
64
+ - modality: AUDIO
65
+ totalTokenCount: 81
66
+ status:
67
+ code: 200
68
+ message: OK
69
+ version: 1
@@ -0,0 +1,111 @@
1
+ interactions:
2
+ - request:
3
+ body: grant_type=%5B%27refresh_token%27%5D&client_id=%5B%27764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com%27%5D&client_secret=%5B%27scrubbed%27%5D&refresh_token=%5B%27scrubbed%27%5D
4
+ headers:
5
+ accept:
6
+ - "*/*"
7
+ accept-encoding:
8
+ - gzip, deflate
9
+ connection:
10
+ - keep-alive
11
+ content-length:
12
+ - "268"
13
+ content-type:
14
+ - application/x-www-form-urlencoded
15
+ method: POST
16
+ uri: https://oauth2.googleapis.com/token
17
+ response:
18
+ headers:
19
+ alt-svc:
20
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
21
+ cache-control:
22
+ - no-cache, no-store, max-age=0, must-revalidate
23
+ content-length:
24
+ - "1419"
25
+ content-type:
26
+ - application/json; charset=utf-8
27
+ expires:
28
+ - Mon, 01 Jan 1990 00:00:00 GMT
29
+ pragma:
30
+ - no-cache
31
+ transfer-encoding:
32
+ - chunked
33
+ vary:
34
+ - Origin
35
+ - X-Origin
36
+ - Referer
37
+ parsed_body:
38
+ access_token: scrubbed
39
+ expires_in: 3599
40
+ id_token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjgyMWYzYmM2NmYwNzUxZjc4NDA2MDY3OTliMWFkZjllOWZiNjBkZmIiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhenAiOiI3NjQwODYwNTE4NTAtNnFyNHA2Z3BpNmhuNTA2cHQ4ZWp1cTgzZGkzNDFodXIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiI3NjQwODYwNTE4NTAtNnFyNHA2Z3BpNmhuNTA2cHQ4ZWp1cTgzZGkzNDFodXIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMDY1Njg0NzQzMTU3NzkyMTI1NTkiLCJoZCI6InB5ZGFudGljLmRldiIsImVtYWlsIjoibWFyY2Vsb0BweWRhbnRpYy5kZXYiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXRfaGFzaCI6ImlyckNRNE00c0Z0Z2dfS2hRTVNjekEiLCJpYXQiOjE3NDM0MTM3NzcsImV4cCI6MTc0MzQxNzM3N30.BAvb4TlcIoYcQODNLFqwtUQoSNJJbpAR0lk2OyFxXK9rSZ7m1e1_Dp1O4ApxPUS7f_NX34eSCuDJN2IXgh8VBv4k3IhI7CbMydYeqXuwlbgOOp1Z0farGEKneU1M7TvdngigAJ9wT-2LHjKd_GEcGau-CUvzXpcT1IOnNNyXGVqtuGmEfcw5jjPkKJNECUheeNHE3zeImatTstOLuKmI1ZK-etl41l3poSNuQkZkrbQ80Vst8BdT-b1tnJnXP1KGATBIamDy99OOiB9a7a9m_ikXYEyN91yR76DYot3hpDPlOX0H9hF-BOSqoOtlSS2TMBkMvFiiYWjID1e_9VlNUg
41
+ scope: https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/userinfo.email openid https://www.googleapis.com/auth/sqlservice.login
42
+ token_type: Bearer
43
+ status:
44
+ code: 200
45
+ message: OK
46
+ - request:
47
+ headers:
48
+ accept:
49
+ - "*/*"
50
+ accept-encoding:
51
+ - gzip, deflate
52
+ connection:
53
+ - keep-alive
54
+ content-length:
55
+ - "177"
56
+ content-type:
57
+ - application/json
58
+ host:
59
+ - us-central1-aiplatform.googleapis.com
60
+ method: POST
61
+ parsed_body:
62
+ contents:
63
+ - parts:
64
+ - text: What is the main content of this URL?
65
+ - fileData:
66
+ fileUri: gs://pydantic-ai-dev/openai-alloy.wav
67
+ mimeType: audio/wav
68
+ role: user
69
+ uri: https://us-central1-aiplatform.googleapis.com/v1/projects/pydantic-ai/locations/us-central1/publishers/google/models/gemini-2.0-flash:generateContent
70
+ response:
71
+ headers:
72
+ alt-svc:
73
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
74
+ content-length:
75
+ - "896"
76
+ content-type:
77
+ - application/json; charset=UTF-8
78
+ transfer-encoding:
79
+ - chunked
80
+ vary:
81
+ - Origin
82
+ - X-Origin
83
+ - Referer
84
+ parsed_body:
85
+ candidates:
86
+ - avgLogprobs: -0.257239756376847
87
+ content:
88
+ parts:
89
+ - text: The URL's main content is about the observation that the sun rises in the east and sets in the west.
90
+ role: model
91
+ finishReason: STOP
92
+ createTime: "2025-05-31T21:53:55.945222Z"
93
+ modelVersion: gemini-2.0-flash
94
+ responseId: c3o7aMbYOdWLmecPzZeogQw
95
+ usageMetadata:
96
+ candidatesTokenCount: 23
97
+ candidatesTokensDetails:
98
+ - modality: TEXT
99
+ tokenCount: 23
100
+ promptTokenCount: 159
101
+ promptTokensDetails:
102
+ - modality: TEXT
103
+ tokenCount: 9
104
+ - modality: AUDIO
105
+ tokenCount: 150
106
+ totalTokenCount: 182
107
+ trafficType: ON_DEMAND
108
+ status:
109
+ code: 200
110
+ message: OK
111
+ version: 1
@@ -0,0 +1,113 @@
1
+ interactions:
2
+ - request:
3
+ body: grant_type=%5B%27refresh_token%27%5D&client_id=%5B%27764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com%27%5D&client_secret=%5B%27scrubbed%27%5D&refresh_token=%5B%27scrubbed%27%5D
4
+ headers:
5
+ accept:
6
+ - "*/*"
7
+ accept-encoding:
8
+ - gzip, deflate
9
+ connection:
10
+ - keep-alive
11
+ content-length:
12
+ - "268"
13
+ content-type:
14
+ - application/x-www-form-urlencoded
15
+ method: POST
16
+ uri: https://oauth2.googleapis.com/token
17
+ response:
18
+ headers:
19
+ alt-svc:
20
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
21
+ cache-control:
22
+ - no-cache, no-store, max-age=0, must-revalidate
23
+ content-length:
24
+ - "1419"
25
+ content-type:
26
+ - application/json; charset=utf-8
27
+ expires:
28
+ - Mon, 01 Jan 1990 00:00:00 GMT
29
+ pragma:
30
+ - no-cache
31
+ transfer-encoding:
32
+ - chunked
33
+ vary:
34
+ - Origin
35
+ - X-Origin
36
+ - Referer
37
+ parsed_body:
38
+ access_token: scrubbed
39
+ expires_in: 3599
40
+ id_token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjgyMWYzYmM2NmYwNzUxZjc4NDA2MDY3OTliMWFkZjllOWZiNjBkZmIiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhenAiOiI3NjQwODYwNTE4NTAtNnFyNHA2Z3BpNmhuNTA2cHQ4ZWp1cTgzZGkzNDFodXIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiI3NjQwODYwNTE4NTAtNnFyNHA2Z3BpNmhuNTA2cHQ4ZWp1cTgzZGkzNDFodXIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMDY1Njg0NzQzMTU3NzkyMTI1NTkiLCJoZCI6InB5ZGFudGljLmRldiIsImVtYWlsIjoibWFyY2Vsb0BweWRhbnRpYy5kZXYiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXRfaGFzaCI6ImlyckNRNE00c0Z0Z2dfS2hRTVNjekEiLCJpYXQiOjE3NDM0MTM3NzcsImV4cCI6MTc0MzQxNzM3N30.BAvb4TlcIoYcQODNLFqwtUQoSNJJbpAR0lk2OyFxXK9rSZ7m1e1_Dp1O4ApxPUS7f_NX34eSCuDJN2IXgh8VBv4k3IhI7CbMydYeqXuwlbgOOp1Z0farGEKneU1M7TvdngigAJ9wT-2LHjKd_GEcGau-CUvzXpcT1IOnNNyXGVqtuGmEfcw5jjPkKJNECUheeNHE3zeImatTstOLuKmI1ZK-etl41l3poSNuQkZkrbQ80Vst8BdT-b1tnJnXP1KGATBIamDy99OOiB9a7a9m_ikXYEyN91yR76DYot3hpDPlOX0H9hF-BOSqoOtlSS2TMBkMvFiiYWjID1e_9VlNUg
41
+ scope: https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/userinfo.email openid https://www.googleapis.com/auth/sqlservice.login
42
+ token_type: Bearer
43
+ status:
44
+ code: 200
45
+ message: OK
46
+ - request:
47
+ headers:
48
+ accept:
49
+ - "*/*"
50
+ accept-encoding:
51
+ - gzip, deflate
52
+ connection:
53
+ - keep-alive
54
+ content-length:
55
+ - "187"
56
+ content-type:
57
+ - application/json
58
+ host:
59
+ - us-central1-aiplatform.googleapis.com
60
+ method: POST
61
+ parsed_body:
62
+ contents:
63
+ - parts:
64
+ - text: What is the main content of this URL?
65
+ - fileData:
66
+ fileUri: https://cdn.openai.com/API/docs/audio/alloy.wav
67
+ mimeType: audio/wav
68
+ role: user
69
+ uri: https://us-central1-aiplatform.googleapis.com/v1/projects/pydantic-ai/locations/us-central1/publishers/google/models/gemini-2.0-flash:generateContent
70
+ response:
71
+ headers:
72
+ alt-svc:
73
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
74
+ content-length:
75
+ - "957"
76
+ content-type:
77
+ - application/json; charset=UTF-8
78
+ transfer-encoding:
79
+ - chunked
80
+ vary:
81
+ - Origin
82
+ - X-Origin
83
+ - Referer
84
+ parsed_body:
85
+ candidates:
86
+ - avgLogprobs: -0.32768359780311584
87
+ content:
88
+ parts:
89
+ - text:
90
+ The content of the URL discusses the observation that the sun rises in the east and sets in the west, a
91
+ phenomenon that has been noted by humans for millennia.
92
+ role: model
93
+ finishReason: STOP
94
+ createTime: "2025-05-31T21:49:24.539116Z"
95
+ modelVersion: gemini-2.0-flash
96
+ responseId: ZHk7aOzzIPjqld8PpP6_qAk
97
+ usageMetadata:
98
+ candidatesTokenCount: 32
99
+ candidatesTokensDetails:
100
+ - modality: TEXT
101
+ tokenCount: 32
102
+ promptTokenCount: 159
103
+ promptTokensDetails:
104
+ - modality: TEXT
105
+ tokenCount: 9
106
+ - modality: AUDIO
107
+ tokenCount: 150
108
+ totalTokenCount: 191
109
+ trafficType: ON_DEMAND
110
+ status:
111
+ code: 200
112
+ message: OK
113
+ version: 1
@@ -0,0 +1,117 @@
1
+ interactions:
2
+ - request:
3
+ body: grant_type=%5B%27refresh_token%27%5D&client_id=%5B%27764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com%27%5D&client_secret=%5B%27scrubbed%27%5D&refresh_token=%5B%27scrubbed%27%5D
4
+ headers:
5
+ accept:
6
+ - "*/*"
7
+ accept-encoding:
8
+ - gzip, deflate
9
+ connection:
10
+ - keep-alive
11
+ content-length:
12
+ - "268"
13
+ content-type:
14
+ - application/x-www-form-urlencoded
15
+ method: POST
16
+ uri: https://oauth2.googleapis.com/token
17
+ response:
18
+ headers:
19
+ alt-svc:
20
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
21
+ cache-control:
22
+ - no-cache, no-store, max-age=0, must-revalidate
23
+ content-length:
24
+ - "1419"
25
+ content-type:
26
+ - application/json; charset=utf-8
27
+ expires:
28
+ - Mon, 01 Jan 1990 00:00:00 GMT
29
+ pragma:
30
+ - no-cache
31
+ transfer-encoding:
32
+ - chunked
33
+ vary:
34
+ - Origin
35
+ - X-Origin
36
+ - Referer
37
+ parsed_body:
38
+ access_token: scrubbed
39
+ expires_in: 3599
40
+ id_token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjgyMWYzYmM2NmYwNzUxZjc4NDA2MDY3OTliMWFkZjllOWZiNjBkZmIiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhenAiOiI3NjQwODYwNTE4NTAtNnFyNHA2Z3BpNmhuNTA2cHQ4ZWp1cTgzZGkzNDFodXIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiI3NjQwODYwNTE4NTAtNnFyNHA2Z3BpNmhuNTA2cHQ4ZWp1cTgzZGkzNDFodXIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMDY1Njg0NzQzMTU3NzkyMTI1NTkiLCJoZCI6InB5ZGFudGljLmRldiIsImVtYWlsIjoibWFyY2Vsb0BweWRhbnRpYy5kZXYiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXRfaGFzaCI6ImlyckNRNE00c0Z0Z2dfS2hRTVNjekEiLCJpYXQiOjE3NDM0MTM3NzcsImV4cCI6MTc0MzQxNzM3N30.BAvb4TlcIoYcQODNLFqwtUQoSNJJbpAR0lk2OyFxXK9rSZ7m1e1_Dp1O4ApxPUS7f_NX34eSCuDJN2IXgh8VBv4k3IhI7CbMydYeqXuwlbgOOp1Z0farGEKneU1M7TvdngigAJ9wT-2LHjKd_GEcGau-CUvzXpcT1IOnNNyXGVqtuGmEfcw5jjPkKJNECUheeNHE3zeImatTstOLuKmI1ZK-etl41l3poSNuQkZkrbQ80Vst8BdT-b1tnJnXP1KGATBIamDy99OOiB9a7a9m_ikXYEyN91yR76DYot3hpDPlOX0H9hF-BOSqoOtlSS2TMBkMvFiiYWjID1e_9VlNUg
41
+ scope: https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/userinfo.email openid https://www.googleapis.com/auth/sqlservice.login
42
+ token_type: Bearer
43
+ status:
44
+ code: 200
45
+ message: OK
46
+ - request:
47
+ headers:
48
+ accept:
49
+ - "*/*"
50
+ accept-encoding:
51
+ - gzip, deflate
52
+ connection:
53
+ - keep-alive
54
+ content-length:
55
+ - "213"
56
+ content-type:
57
+ - application/json
58
+ host:
59
+ - us-central1-aiplatform.googleapis.com
60
+ method: POST
61
+ parsed_body:
62
+ contents:
63
+ - parts:
64
+ - text: What is the main content of this URL?
65
+ - fileData:
66
+ fileUri: gs://pydantic-ai-dev/Gemini_1_5_Pro_Technical_Report_Arxiv_1805.pdf
67
+ mimeType: application/pdf
68
+ role: user
69
+ uri: https://us-central1-aiplatform.googleapis.com/v1/projects/pydantic-ai/locations/us-central1/publishers/google/models/gemini-2.0-flash:generateContent
70
+ response:
71
+ headers:
72
+ alt-svc:
73
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
74
+ content-length:
75
+ - "1412"
76
+ content-type:
77
+ - application/json; charset=UTF-8
78
+ transfer-encoding:
79
+ - chunked
80
+ vary:
81
+ - Origin
82
+ - X-Origin
83
+ - Referer
84
+ parsed_body:
85
+ candidates:
86
+ - avgLogprobs: -0.5160888263157436
87
+ content:
88
+ parts:
89
+ - text:
90
+ The main content of this URL is a technical report about Gemini 1.5 Pro, a new model from Google DeepMind's
91
+ Gemini family, that is designed to unlock multimodal understanding across millions of tokens of context. It
92
+ describes the model architecture, performance benchmarks, and new capabilities, such as near-perfect recall
93
+ in long-context retrieval tasks and the ability to translate between English and Kalamang, a language with very
94
+ few speakers, using only a provided grammar manual. The report also covers the responsible deployment of the
95
+ model, including impact assessments and safety evaluations.
96
+ role: model
97
+ finishReason: STOP
98
+ createTime: "2025-05-31T21:54:44.822227Z"
99
+ modelVersion: gemini-2.0-flash
100
+ responseId: pHo7aNOXMpKHm9IPsNr50As
101
+ usageMetadata:
102
+ candidatesTokenCount: 112
103
+ candidatesTokensDetails:
104
+ - modality: TEXT
105
+ tokenCount: 112
106
+ promptTokenCount: 19875
107
+ promptTokensDetails:
108
+ - modality: DOCUMENT
109
+ tokenCount: 19866
110
+ - modality: TEXT
111
+ tokenCount: 9
112
+ totalTokenCount: 19987
113
+ trafficType: ON_DEMAND
114
+ status:
115
+ code: 200
116
+ message: OK
117
+ version: 1