pydantic-ai 0.1.7__tar.gz → 0.1.9__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 (190) hide show
  1. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/PKG-INFO +3 -3
  2. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/pyproject.toml +1 -1
  3. pydantic_ai-0.1.9/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +327 -0
  4. pydantic_ai-0.1.9/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +327 -0
  5. pydantic_ai-0.1.9/tests/cassettes/test_mcp/test_tool_returning_error.yaml +515 -0
  6. pydantic_ai-0.1.9/tests/cassettes/test_mcp/test_tool_returning_image.yaml +334 -0
  7. pydantic_ai-0.1.9/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +334 -0
  8. pydantic_ai-0.1.9/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +334 -0
  9. pydantic_ai-0.1.9/tests/cassettes/test_mcp/test_tool_returning_none.yaml +327 -0
  10. pydantic_ai-0.1.9/tests/cassettes/test_mcp/test_tool_returning_str.yaml +327 -0
  11. pydantic_ai-0.1.9/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +341 -0
  12. pydantic_ai-0.1.9/tests/mcp_server.py +114 -0
  13. pydantic_ai-0.1.9/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +153 -0
  14. pydantic_ai-0.1.9/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +150 -0
  15. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +21 -19
  16. pydantic_ai-0.1.9/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +184 -0
  17. pydantic_ai-0.1.9/tests/models/cassettes/test_groq/test_image_url_input.yaml +78 -0
  18. pydantic_ai-0.1.9/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +193 -0
  19. pydantic_ai-0.1.9/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +204 -0
  20. pydantic_ai-0.1.7/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml → pydantic_ai-0.1.9/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +50 -51
  21. pydantic_ai-0.1.9/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +237 -0
  22. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_anthropic.py +128 -5
  23. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_gemini.py +61 -0
  24. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_groq.py +59 -13
  25. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_mistral.py +57 -0
  26. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_openai.py +106 -0
  27. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_openai_responses.py +56 -0
  28. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_examples.py +31 -0
  29. pydantic_ai-0.1.9/tests/test_mcp.py +560 -0
  30. pydantic_ai-0.1.7/tests/mcp_server.py +0 -38
  31. pydantic_ai-0.1.7/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -84
  32. pydantic_ai-0.1.7/tests/test_mcp.py +0 -139
  33. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/.gitignore +0 -0
  34. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/LICENSE +0 -0
  35. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/Makefile +0 -0
  36. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/README.md +0 -0
  37. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/__init__.py +0 -0
  38. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/assets/dummy.pdf +0 -0
  39. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/assets/kiwi.png +0 -0
  40. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/assets/marcelo.mp3 +0 -0
  41. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/assets/small_video.mp4 +0 -0
  42. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
  43. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
  44. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
  45. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
  46. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
  47. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
  48. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
  49. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/conftest.py +0 -0
  50. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/__init__.py +0 -0
  51. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_dataset.py +0 -0
  52. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_evaluator_base.py +0 -0
  53. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_evaluator_common.py +0 -0
  54. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_evaluator_context.py +0 -0
  55. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_evaluator_spec.py +0 -0
  56. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_evaluators.py +0 -0
  57. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_llm_as_a_judge.py +0 -0
  58. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_otel.py +0 -0
  59. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_render_numbers.py +0 -0
  60. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_reporting.py +0 -0
  61. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_reports.py +0 -0
  62. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/test_utils.py +0 -0
  63. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/evals/utils.py +0 -0
  64. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/example_modules/README.md +0 -0
  65. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/example_modules/bank_database.py +0 -0
  66. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/example_modules/fake_database.py +0 -0
  67. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/example_modules/weather_service.py +0 -0
  68. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/graph/__init__.py +0 -0
  69. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/graph/test_file_persistence.py +0 -0
  70. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/graph/test_graph.py +0 -0
  71. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/graph/test_mermaid.py +0 -0
  72. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/graph/test_persistence.py +0 -0
  73. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/graph/test_state.py +0 -0
  74. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/graph/test_utils.py +0 -0
  75. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/import_examples.py +0 -0
  76. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/json_body_serializer.py +0 -0
  77. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/__init__.py +0 -0
  78. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
  79. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
  80. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
  81. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
  82. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
  83. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
  84. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
  85. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
  86. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
  87. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
  88. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
  89. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
  90. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
  91. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
  92. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
  93. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
  94. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
  95. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
  96. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_response.yaml +0 -0
  97. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
  98. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
  99. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
  100. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
  101. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
  102. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
  103. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
  104. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
  105. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
  106. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
  107. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
  108. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
  109. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
  110. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
  111. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
  112. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
  113. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
  114. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
  115. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
  116. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
  117. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
  118. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
  119. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
  120. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
  121. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
  122. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
  123. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
  124. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
  125. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
  126. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
  127. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
  128. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
  129. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
  130. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
  131. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
  132. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
  133. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
  134. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
  135. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
  136. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
  137. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
  138. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
  139. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
  140. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
  141. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
  142. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
  143. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
  144. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
  145. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
  146. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
  147. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
  148. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
  149. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
  150. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
  151. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
  152. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/mock_async_stream.py +0 -0
  153. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_bedrock.py +0 -0
  154. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_cohere.py +0 -0
  155. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_fallback.py +0 -0
  156. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_instrumented.py +0 -0
  157. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_model.py +0 -0
  158. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_model_function.py +0 -0
  159. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_model_names.py +0 -0
  160. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/models/test_model_test.py +0 -0
  161. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/__init__.py +0 -0
  162. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
  163. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
  164. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/test_anthropic.py +0 -0
  165. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/test_azure.py +0 -0
  166. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/test_bedrock.py +0 -0
  167. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/test_cohere.py +0 -0
  168. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/test_deepseek.py +0 -0
  169. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/test_google_gla.py +0 -0
  170. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/test_google_vertex.py +0 -0
  171. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/test_groq.py +0 -0
  172. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/test_mistral.py +0 -0
  173. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/test_openai.py +0 -0
  174. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/providers/test_provider_names.py +0 -0
  175. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_agent.py +0 -0
  176. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_cli.py +0 -0
  177. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_deps.py +0 -0
  178. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_format_as_xml.py +0 -0
  179. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_json_body_serializer.py +0 -0
  180. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_live.py +0 -0
  181. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_logfire.py +0 -0
  182. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_messages.py +0 -0
  183. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_parts_manager.py +0 -0
  184. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_settings.py +0 -0
  185. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_streaming.py +0 -0
  186. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_tools.py +0 -0
  187. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_usage_limits.py +0 -0
  188. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/test_utils.py +0 -0
  189. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/typed_agent.py +0 -0
  190. {pydantic_ai-0.1.7 → pydantic_ai-0.1.9}/tests/typed_graph.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pydantic-ai
3
- Version: 0.1.7
3
+ Version: 0.1.9
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[anthropic,bedrock,cli,cohere,evals,groq,mcp,mistral,openai,vertexai]==0.1.7
31
+ Requires-Dist: pydantic-ai-slim[anthropic,bedrock,cli,cohere,evals,groq,mcp,mistral,openai,vertexai]==0.1.9
32
32
  Provides-Extra: examples
33
- Requires-Dist: pydantic-ai-examples==0.1.7; extra == 'examples'
33
+ Requires-Dist: pydantic-ai-examples==0.1.9; extra == 'examples'
34
34
  Provides-Extra: logfire
35
35
  Requires-Dist: logfire>=3.11.0; extra == 'logfire'
36
36
  Description-Content-Type: text/markdown
@@ -243,7 +243,7 @@ snap = ["create"]
243
243
 
244
244
  [tool.codespell]
245
245
  # Ref: https://github.com/codespell-project/codespell#using-a-config-file
246
- skip = '.git*,*.svg,*.lock,*.css'
246
+ skip = '.git*,*.svg,*.lock,*.css,*.yaml'
247
247
  check-hidden = true
248
248
  # Ignore "formatting" like **L**anguage
249
249
  ignore-regex = '\*\*[A-Z]\*\*[a-z]+\b'
@@ -0,0 +1,327 @@
1
+ interactions:
2
+ - request:
3
+ headers:
4
+ accept:
5
+ - application/json
6
+ accept-encoding:
7
+ - gzip, deflate
8
+ connection:
9
+ - keep-alive
10
+ content-length:
11
+ - '1776'
12
+ content-type:
13
+ - application/json
14
+ host:
15
+ - api.openai.com
16
+ method: POST
17
+ parsed_body:
18
+ messages:
19
+ - content: What is 0 degrees Celsius in Fahrenheit?
20
+ role: user
21
+ model: gpt-4o
22
+ n: 1
23
+ stream: false
24
+ tool_choice: auto
25
+ tools:
26
+ - function:
27
+ description: "Convert Celsius to Fahrenheit.\n\n Args:\n celsius: Temperature in Celsius\n\n Returns:\n
28
+ \ Temperature in Fahrenheit\n "
29
+ name: celsius_to_fahrenheit
30
+ parameters:
31
+ properties:
32
+ celsius:
33
+ type: number
34
+ required:
35
+ - celsius
36
+ type: object
37
+ type: function
38
+ - function:
39
+ description: "Get the weather forecast for a location.\n\n Args:\n location: The location to get the weather
40
+ forecast for.\n\n Returns:\n The weather forecast for the location.\n "
41
+ name: get_weather_forecast
42
+ parameters:
43
+ properties:
44
+ location:
45
+ type: string
46
+ required:
47
+ - location
48
+ type: object
49
+ type: function
50
+ - function:
51
+ description: ''
52
+ name: get_image_resource
53
+ parameters:
54
+ properties: {}
55
+ type: object
56
+ type: function
57
+ - function:
58
+ description: ''
59
+ name: get_image
60
+ parameters:
61
+ properties: {}
62
+ type: object
63
+ type: function
64
+ - function:
65
+ description: ''
66
+ name: get_dict
67
+ parameters:
68
+ properties: {}
69
+ type: object
70
+ type: function
71
+ - function:
72
+ description: ''
73
+ name: get_error
74
+ parameters:
75
+ properties:
76
+ value:
77
+ type: boolean
78
+ type: object
79
+ type: function
80
+ - function:
81
+ description: ''
82
+ name: get_none
83
+ parameters:
84
+ properties: {}
85
+ type: object
86
+ type: function
87
+ - function:
88
+ description: ''
89
+ name: get_multiple_items
90
+ parameters:
91
+ properties: {}
92
+ type: object
93
+ type: function
94
+ - function:
95
+ description: "Get the current log level.\n\n Returns:\n The current log level.\n "
96
+ name: get_log_level
97
+ parameters:
98
+ properties: {}
99
+ type: object
100
+ type: function
101
+ uri: https://api.openai.com/v1/chat/completions
102
+ response:
103
+ headers:
104
+ access-control-expose-headers:
105
+ - X-Request-ID
106
+ alt-svc:
107
+ - h3=":443"; ma=86400
108
+ connection:
109
+ - keep-alive
110
+ content-length:
111
+ - '1086'
112
+ content-type:
113
+ - application/json
114
+ openai-organization:
115
+ - pydantic-28gund
116
+ openai-processing-ms:
117
+ - '2632'
118
+ openai-version:
119
+ - '2020-10-01'
120
+ strict-transport-security:
121
+ - max-age=31536000; includeSubDomains; preload
122
+ transfer-encoding:
123
+ - chunked
124
+ parsed_body:
125
+ choices:
126
+ - finish_reason: tool_calls
127
+ index: 0
128
+ logprobs: null
129
+ message:
130
+ annotations: []
131
+ content: null
132
+ refusal: null
133
+ role: assistant
134
+ tool_calls:
135
+ - function:
136
+ arguments: '{"celsius":0}'
137
+ name: celsius_to_fahrenheit
138
+ id: call_QssdxTGkPblTYHmyVES1tKBj
139
+ type: function
140
+ created: 1745958315
141
+ id: chatcmpl-BRlnvvqIPFofAtKqtQKMWZkgXhzlT
142
+ model: gpt-4o-2024-08-06
143
+ object: chat.completion
144
+ service_tier: default
145
+ system_fingerprint: fp_f5bdcc3276
146
+ usage:
147
+ completion_tokens: 19
148
+ completion_tokens_details:
149
+ accepted_prediction_tokens: 0
150
+ audio_tokens: 0
151
+ reasoning_tokens: 0
152
+ rejected_prediction_tokens: 0
153
+ prompt_tokens: 195
154
+ prompt_tokens_details:
155
+ audio_tokens: 0
156
+ cached_tokens: 0
157
+ total_tokens: 214
158
+ status:
159
+ code: 200
160
+ message: OK
161
+ - request:
162
+ headers:
163
+ accept:
164
+ - application/json
165
+ accept-encoding:
166
+ - gzip, deflate
167
+ connection:
168
+ - keep-alive
169
+ content-length:
170
+ - '2023'
171
+ content-type:
172
+ - application/json
173
+ cookie:
174
+ - __cf_bm=UyRzBUJQ1BiB9T_si4uSo1QOHvt3jzINd95Ab5qSPR4-1745958318-1.0.1.1-dXvFJu1Kw9lQqM6cmwZKizLsanBZpJSYtEA2RTLVqeEbvTKEeBaoc_8iwKDx0Ui.HG5NnEcnOBR02OVABBiXTbQZxdcugMe3rAtvqS5hHSM;
175
+ _cfuvid=htgokfgH9.vmsTQnmS6v9S1Vwm3MHhQrDtRQ8IVdCfE-1745958318072-0.0.1.1-604800000
176
+ host:
177
+ - api.openai.com
178
+ method: POST
179
+ parsed_body:
180
+ messages:
181
+ - content: What is 0 degrees Celsius in Fahrenheit?
182
+ role: user
183
+ - role: assistant
184
+ tool_calls:
185
+ - function:
186
+ arguments: '{"celsius":0}'
187
+ name: celsius_to_fahrenheit
188
+ id: call_QssdxTGkPblTYHmyVES1tKBj
189
+ type: function
190
+ - content: '32.0'
191
+ role: tool
192
+ tool_call_id: call_QssdxTGkPblTYHmyVES1tKBj
193
+ model: gpt-4o
194
+ n: 1
195
+ stream: false
196
+ tool_choice: auto
197
+ tools:
198
+ - function:
199
+ description: "Convert Celsius to Fahrenheit.\n\n Args:\n celsius: Temperature in Celsius\n\n Returns:\n
200
+ \ Temperature in Fahrenheit\n "
201
+ name: celsius_to_fahrenheit
202
+ parameters:
203
+ properties:
204
+ celsius:
205
+ type: number
206
+ required:
207
+ - celsius
208
+ type: object
209
+ type: function
210
+ - function:
211
+ description: "Get the weather forecast for a location.\n\n Args:\n location: The location to get the weather
212
+ forecast for.\n\n Returns:\n The weather forecast for the location.\n "
213
+ name: get_weather_forecast
214
+ parameters:
215
+ properties:
216
+ location:
217
+ type: string
218
+ required:
219
+ - location
220
+ type: object
221
+ type: function
222
+ - function:
223
+ description: ''
224
+ name: get_image_resource
225
+ parameters:
226
+ properties: {}
227
+ type: object
228
+ type: function
229
+ - function:
230
+ description: ''
231
+ name: get_image
232
+ parameters:
233
+ properties: {}
234
+ type: object
235
+ type: function
236
+ - function:
237
+ description: ''
238
+ name: get_dict
239
+ parameters:
240
+ properties: {}
241
+ type: object
242
+ type: function
243
+ - function:
244
+ description: ''
245
+ name: get_error
246
+ parameters:
247
+ properties:
248
+ value:
249
+ type: boolean
250
+ type: object
251
+ type: function
252
+ - function:
253
+ description: ''
254
+ name: get_none
255
+ parameters:
256
+ properties: {}
257
+ type: object
258
+ type: function
259
+ - function:
260
+ description: ''
261
+ name: get_multiple_items
262
+ parameters:
263
+ properties: {}
264
+ type: object
265
+ type: function
266
+ - function:
267
+ description: "Get the current log level.\n\n Returns:\n The current log level.\n "
268
+ name: get_log_level
269
+ parameters:
270
+ properties: {}
271
+ type: object
272
+ type: function
273
+ uri: https://api.openai.com/v1/chat/completions
274
+ response:
275
+ headers:
276
+ access-control-expose-headers:
277
+ - X-Request-ID
278
+ alt-svc:
279
+ - h3=":443"; ma=86400
280
+ connection:
281
+ - keep-alive
282
+ content-length:
283
+ - '856'
284
+ content-type:
285
+ - application/json
286
+ openai-organization:
287
+ - pydantic-28gund
288
+ openai-processing-ms:
289
+ - '1002'
290
+ openai-version:
291
+ - '2020-10-01'
292
+ strict-transport-security:
293
+ - max-age=31536000; includeSubDomains; preload
294
+ transfer-encoding:
295
+ - chunked
296
+ parsed_body:
297
+ choices:
298
+ - finish_reason: stop
299
+ index: 0
300
+ logprobs: null
301
+ message:
302
+ annotations: []
303
+ content: 0 degrees Celsius is equal to 32 degrees Fahrenheit.
304
+ refusal: null
305
+ role: assistant
306
+ created: 1745958318
307
+ id: chatcmpl-BRlnyjUo5wlyqvdNdM5I8vIWjo1qF
308
+ model: gpt-4o-2024-08-06
309
+ object: chat.completion
310
+ service_tier: default
311
+ system_fingerprint: fp_f5bdcc3276
312
+ usage:
313
+ completion_tokens: 13
314
+ completion_tokens_details:
315
+ accepted_prediction_tokens: 0
316
+ audio_tokens: 0
317
+ reasoning_tokens: 0
318
+ rejected_prediction_tokens: 0
319
+ prompt_tokens: 227
320
+ prompt_tokens_details:
321
+ audio_tokens: 0
322
+ cached_tokens: 0
323
+ total_tokens: 240
324
+ status:
325
+ code: 200
326
+ message: OK
327
+ version: 1
@@ -0,0 +1,327 @@
1
+ interactions:
2
+ - request:
3
+ headers:
4
+ accept:
5
+ - application/json
6
+ accept-encoding:
7
+ - gzip, deflate
8
+ connection:
9
+ - keep-alive
10
+ content-length:
11
+ - '1770'
12
+ content-type:
13
+ - application/json
14
+ host:
15
+ - api.openai.com
16
+ method: POST
17
+ parsed_body:
18
+ messages:
19
+ - content: Get me a dict, respond on one line
20
+ role: user
21
+ model: gpt-4o
22
+ n: 1
23
+ stream: false
24
+ tool_choice: auto
25
+ tools:
26
+ - function:
27
+ description: "Convert Celsius to Fahrenheit.\n\n Args:\n celsius: Temperature in Celsius\n\n Returns:\n
28
+ \ Temperature in Fahrenheit\n "
29
+ name: celsius_to_fahrenheit
30
+ parameters:
31
+ properties:
32
+ celsius:
33
+ type: number
34
+ required:
35
+ - celsius
36
+ type: object
37
+ type: function
38
+ - function:
39
+ description: "Get the weather forecast for a location.\n\n Args:\n location: The location to get the weather
40
+ forecast for.\n\n Returns:\n The weather forecast for the location.\n "
41
+ name: get_weather_forecast
42
+ parameters:
43
+ properties:
44
+ location:
45
+ type: string
46
+ required:
47
+ - location
48
+ type: object
49
+ type: function
50
+ - function:
51
+ description: ''
52
+ name: get_image_resource
53
+ parameters:
54
+ properties: {}
55
+ type: object
56
+ type: function
57
+ - function:
58
+ description: ''
59
+ name: get_image
60
+ parameters:
61
+ properties: {}
62
+ type: object
63
+ type: function
64
+ - function:
65
+ description: ''
66
+ name: get_dict
67
+ parameters:
68
+ properties: {}
69
+ type: object
70
+ type: function
71
+ - function:
72
+ description: ''
73
+ name: get_error
74
+ parameters:
75
+ properties:
76
+ value:
77
+ type: boolean
78
+ type: object
79
+ type: function
80
+ - function:
81
+ description: ''
82
+ name: get_none
83
+ parameters:
84
+ properties: {}
85
+ type: object
86
+ type: function
87
+ - function:
88
+ description: ''
89
+ name: get_multiple_items
90
+ parameters:
91
+ properties: {}
92
+ type: object
93
+ type: function
94
+ - function:
95
+ description: "Get the current log level.\n\n Returns:\n The current log level.\n "
96
+ name: get_log_level
97
+ parameters:
98
+ properties: {}
99
+ type: object
100
+ type: function
101
+ uri: https://api.openai.com/v1/chat/completions
102
+ response:
103
+ headers:
104
+ access-control-expose-headers:
105
+ - X-Request-ID
106
+ alt-svc:
107
+ - h3=":443"; ma=86400
108
+ connection:
109
+ - keep-alive
110
+ content-length:
111
+ - '1060'
112
+ content-type:
113
+ - application/json
114
+ openai-organization:
115
+ - pydantic-28gund
116
+ openai-processing-ms:
117
+ - '953'
118
+ openai-version:
119
+ - '2020-10-01'
120
+ strict-transport-security:
121
+ - max-age=31536000; includeSubDomains; preload
122
+ transfer-encoding:
123
+ - chunked
124
+ parsed_body:
125
+ choices:
126
+ - finish_reason: tool_calls
127
+ index: 0
128
+ logprobs: null
129
+ message:
130
+ annotations: []
131
+ content: null
132
+ refusal: null
133
+ role: assistant
134
+ tool_calls:
135
+ - function:
136
+ arguments: '{}'
137
+ name: get_dict
138
+ id: call_oqKviITBj8PwpQjGyUu4Zu5x
139
+ type: function
140
+ created: 1745958344
141
+ id: chatcmpl-BRloOs7Bb2tq8wJyy9Rv7SQ7L65a7
142
+ model: gpt-4o-2024-08-06
143
+ object: chat.completion
144
+ service_tier: default
145
+ system_fingerprint: fp_55d88aaf2f
146
+ usage:
147
+ completion_tokens: 11
148
+ completion_tokens_details:
149
+ accepted_prediction_tokens: 0
150
+ audio_tokens: 0
151
+ reasoning_tokens: 0
152
+ rejected_prediction_tokens: 0
153
+ prompt_tokens: 195
154
+ prompt_tokens_details:
155
+ audio_tokens: 0
156
+ cached_tokens: 0
157
+ total_tokens: 206
158
+ status:
159
+ code: 200
160
+ message: OK
161
+ - request:
162
+ headers:
163
+ accept:
164
+ - application/json
165
+ accept-encoding:
166
+ - gzip, deflate
167
+ connection:
168
+ - keep-alive
169
+ content-length:
170
+ - '2016'
171
+ content-type:
172
+ - application/json
173
+ cookie:
174
+ - __cf_bm=94n.etM.XZ9BhUYXG5FF37vBIe2HNdQ7nnq7Gg8.1ag-1745958345-1.0.1.1-ZEZQ7xzSm7sKO765NF_Fo0.Q6NdO5_GvkwNpG8Pbp8ano7693MTkVhD.J2osxvzVzpOZDDLVbPB1HGzeyU21YDrYCmlLngKsBJSk3VdZiLE;
175
+ _cfuvid=Hi7j4oFyo9z_jtpwAyznvhgoGw56MiYKy4HxoOqazEM-1745958345551-0.0.1.1-604800000
176
+ host:
177
+ - api.openai.com
178
+ method: POST
179
+ parsed_body:
180
+ messages:
181
+ - content: Get me a dict, respond on one line
182
+ role: user
183
+ - role: assistant
184
+ tool_calls:
185
+ - function:
186
+ arguments: '{}'
187
+ name: get_dict
188
+ id: call_oqKviITBj8PwpQjGyUu4Zu5x
189
+ type: function
190
+ - content: '{"foo":"bar","baz":123}'
191
+ role: tool
192
+ tool_call_id: call_oqKviITBj8PwpQjGyUu4Zu5x
193
+ model: gpt-4o
194
+ n: 1
195
+ stream: false
196
+ tool_choice: auto
197
+ tools:
198
+ - function:
199
+ description: "Convert Celsius to Fahrenheit.\n\n Args:\n celsius: Temperature in Celsius\n\n Returns:\n
200
+ \ Temperature in Fahrenheit\n "
201
+ name: celsius_to_fahrenheit
202
+ parameters:
203
+ properties:
204
+ celsius:
205
+ type: number
206
+ required:
207
+ - celsius
208
+ type: object
209
+ type: function
210
+ - function:
211
+ description: "Get the weather forecast for a location.\n\n Args:\n location: The location to get the weather
212
+ forecast for.\n\n Returns:\n The weather forecast for the location.\n "
213
+ name: get_weather_forecast
214
+ parameters:
215
+ properties:
216
+ location:
217
+ type: string
218
+ required:
219
+ - location
220
+ type: object
221
+ type: function
222
+ - function:
223
+ description: ''
224
+ name: get_image_resource
225
+ parameters:
226
+ properties: {}
227
+ type: object
228
+ type: function
229
+ - function:
230
+ description: ''
231
+ name: get_image
232
+ parameters:
233
+ properties: {}
234
+ type: object
235
+ type: function
236
+ - function:
237
+ description: ''
238
+ name: get_dict
239
+ parameters:
240
+ properties: {}
241
+ type: object
242
+ type: function
243
+ - function:
244
+ description: ''
245
+ name: get_error
246
+ parameters:
247
+ properties:
248
+ value:
249
+ type: boolean
250
+ type: object
251
+ type: function
252
+ - function:
253
+ description: ''
254
+ name: get_none
255
+ parameters:
256
+ properties: {}
257
+ type: object
258
+ type: function
259
+ - function:
260
+ description: ''
261
+ name: get_multiple_items
262
+ parameters:
263
+ properties: {}
264
+ type: object
265
+ type: function
266
+ - function:
267
+ description: "Get the current log level.\n\n Returns:\n The current log level.\n "
268
+ name: get_log_level
269
+ parameters:
270
+ properties: {}
271
+ type: object
272
+ type: function
273
+ uri: https://api.openai.com/v1/chat/completions
274
+ response:
275
+ headers:
276
+ access-control-expose-headers:
277
+ - X-Request-ID
278
+ alt-svc:
279
+ - h3=":443"; ma=86400
280
+ connection:
281
+ - keep-alive
282
+ content-length:
283
+ - '833'
284
+ content-type:
285
+ - application/json
286
+ openai-organization:
287
+ - pydantic-28gund
288
+ openai-processing-ms:
289
+ - '728'
290
+ openai-version:
291
+ - '2020-10-01'
292
+ strict-transport-security:
293
+ - max-age=31536000; includeSubDomains; preload
294
+ transfer-encoding:
295
+ - chunked
296
+ parsed_body:
297
+ choices:
298
+ - finish_reason: stop
299
+ index: 0
300
+ logprobs: null
301
+ message:
302
+ annotations: []
303
+ content: '{"foo":"bar","baz":123}'
304
+ refusal: null
305
+ role: assistant
306
+ created: 1745958345
307
+ id: chatcmpl-BRloPczU1HSCWnreyo21DdNtdOM7L
308
+ model: gpt-4o-2024-08-06
309
+ object: chat.completion
310
+ service_tier: default
311
+ system_fingerprint: fp_f5bdcc3276
312
+ usage:
313
+ completion_tokens: 11
314
+ completion_tokens_details:
315
+ accepted_prediction_tokens: 0
316
+ audio_tokens: 0
317
+ reasoning_tokens: 0
318
+ rejected_prediction_tokens: 0
319
+ prompt_tokens: 222
320
+ prompt_tokens_details:
321
+ audio_tokens: 0
322
+ cached_tokens: 0
323
+ total_tokens: 233
324
+ status:
325
+ code: 200
326
+ message: OK
327
+ version: 1