pydantic-ai 0.4.3__tar.gz → 0.4.4__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.
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/PKG-INFO +35 -35
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/README.md +31 -31
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/pyproject.toml +4 -1
- pydantic_ai-0.4.3/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml → pydantic_ai-0.4.4/tests/cassettes/test_mcp/test_agent_with_server_not_running.yaml +82 -32
- pydantic_ai-0.4.4/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +345 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/conftest.py +6 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/example_modules/mcp_server.py +1 -1
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/ext/test_langchain.py +27 -18
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/mcp_server.py +2 -2
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +8 -8
- pydantic_ai-0.4.4/tests/models/cassettes/test_google/test_google_model_empty_assistant_response.yaml +60 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +2 -1
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_anthropic.py +1 -1
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_gemini.py +36 -1
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_google.py +15 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_model.py +16 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_model_names.py +3 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_model_test.py +3 -2
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_groq.py +7 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_a2a.py +9 -2
- pydantic_ai-0.4.4/tests/test_ag_ui.py +939 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_agent.py +392 -22
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_cli.py +3 -2
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_examples.py +36 -6
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_logfire.py +117 -56
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_mcp.py +74 -55
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_streaming.py +130 -35
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_tools.py +204 -18
- pydantic_ai-0.4.4/tests/test_toolsets.py +471 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_usage_limits.py +9 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/typed_agent.py +15 -1
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/.gitignore +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/LICENSE +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/Makefile +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/__init__.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/__init__.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_dataset.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/evals/utils.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/example_modules/README.md +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/ext/__init__.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/graph/__init__.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/graph/test_state.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/import_examples.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/__init__.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_stream.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_model_youtube_video_url_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_huggingface/test_hf_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_huggingface/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_huggingface/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[Qwen-Qwen2.5-72B-Instruct].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[deepseek-ai-DeepSeek-R1-0528].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[meta-llama-Llama-3.3-70B-Instruct].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_huggingface/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_huggingface/test_request_simple_usage.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_huggingface/test_simple_completion.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_huggingface/test_stream_completion.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_responses_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_bedrock.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_deepseek.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_download_item.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_gemini_vertex.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_groq.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_huggingface.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_instrumented.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_mcp_sampling.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_model_request_parameters.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_model_settings.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_openai.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/models/test_openai_responses.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/__init__.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_fireworks.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_github.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_grok.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_heroku.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_huggingface.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_openrouter.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/providers/test_together.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_deps.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_direct.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_history_processor.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_live.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_messages.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_settings.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_thinking_part.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/test_utils.py +0 -0
- {pydantic_ai-0.4.3 → pydantic_ai-0.4.4}/tests/typed_graph.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
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
|
|
7
7
|
Project-URL: Documentation, https://ai.pydantic.dev
|
|
8
8
|
Project-URL: Changelog, https://github.com/pydantic/pydantic-ai/releases
|
|
9
|
-
Author-email: Samuel Colvin <samuel@pydantic.dev>, Marcelo Trylesinski <marcelotryle@gmail.com>, David Montague <david@pydantic.dev>, Alex Hall <alex@pydantic.dev>
|
|
9
|
+
Author-email: Samuel Colvin <samuel@pydantic.dev>, Marcelo Trylesinski <marcelotryle@gmail.com>, David Montague <david@pydantic.dev>, Alex Hall <alex@pydantic.dev>, Douwe Maan <douwe@pydantic.dev>
|
|
10
10
|
License-Expression: MIT
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
Classifier: Development Status :: 4 - Beta
|
|
@@ -28,11 +28,11 @@ 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,google,groq,huggingface,mcp,mistral,openai,vertexai]==0.4.
|
|
31
|
+
Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,mcp,mistral,openai,vertexai]==0.4.4
|
|
32
32
|
Provides-Extra: a2a
|
|
33
33
|
Requires-Dist: fasta2a>=0.4.1; extra == 'a2a'
|
|
34
34
|
Provides-Extra: examples
|
|
35
|
-
Requires-Dist: pydantic-ai-examples==0.4.
|
|
35
|
+
Requires-Dist: pydantic-ai-examples==0.4.4; extra == 'examples'
|
|
36
36
|
Provides-Extra: logfire
|
|
37
37
|
Requires-Dist: logfire>=3.11.0; extra == 'logfire'
|
|
38
38
|
Description-Content-Type: text/markdown
|
|
@@ -41,7 +41,7 @@ Description-Content-Type: text/markdown
|
|
|
41
41
|
<a href="https://ai.pydantic.dev/">
|
|
42
42
|
<picture>
|
|
43
43
|
<source media="(prefers-color-scheme: dark)" srcset="https://ai.pydantic.dev/img/pydantic-ai-dark.svg">
|
|
44
|
-
<img src="https://ai.pydantic.dev/img/pydantic-ai-light.svg" alt="
|
|
44
|
+
<img src="https://ai.pydantic.dev/img/pydantic-ai-light.svg" alt="Pydantic AI">
|
|
45
45
|
</picture>
|
|
46
46
|
</a>
|
|
47
47
|
</div>
|
|
@@ -63,47 +63,47 @@ Description-Content-Type: text/markdown
|
|
|
63
63
|
|
|
64
64
|
---
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
Pydantic AI is a Python agent framework designed to make it less painful to build production grade applications with Generative AI.
|
|
67
67
|
|
|
68
|
-
FastAPI revolutionized web development by offering an innovative and ergonomic design, built on the foundation of [Pydantic](https://docs.pydantic.dev).
|
|
68
|
+
FastAPI revolutionized web development by offering an innovative and ergonomic design, built on the foundation of [Pydantic Validation](https://docs.pydantic.dev).
|
|
69
69
|
|
|
70
|
-
Similarly, virtually every agent framework and LLM library in Python uses Pydantic, yet when we began to use LLMs in [Pydantic Logfire](https://pydantic.dev/logfire), we couldn't find anything that gave us the same feeling.
|
|
70
|
+
Similarly, virtually every agent framework and LLM library in Python uses Pydantic Validation, yet when we began to use LLMs in [Pydantic Logfire](https://pydantic.dev/logfire), we couldn't find anything that gave us the same feeling.
|
|
71
71
|
|
|
72
|
-
We built
|
|
72
|
+
We built Pydantic AI with one simple aim: to bring that FastAPI feeling to GenAI app development.
|
|
73
73
|
|
|
74
|
-
## Why use
|
|
74
|
+
## Why use Pydantic AI
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
Built by the team behind [Pydantic](https://docs.pydantic.dev/latest/) (the validation layer of the OpenAI SDK, the Anthropic SDK, LangChain, LlamaIndex, AutoGPT, Transformers, CrewAI, Instructor and many more).
|
|
76
|
+
- **Built by the Pydantic Team**
|
|
77
|
+
Built by the team behind [Pydantic Validation](https://docs.pydantic.dev/latest/) (the validation layer of the OpenAI SDK, the Anthropic SDK, LangChain, LlamaIndex, AutoGPT, Transformers, CrewAI, Instructor and many more).
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
Supports OpenAI, Anthropic, Gemini, Deepseek, Ollama, Groq, Cohere, and Mistral, and there is a simple interface to implement support for [other models](https://ai.pydantic.dev/models/).
|
|
79
|
+
- **Model-agnostic**
|
|
80
|
+
Supports OpenAI, Anthropic, Gemini, Deepseek, Ollama, Groq, Cohere, and Mistral, and there is a simple interface to implement support for [other models](https://ai.pydantic.dev/models/).
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
Seamlessly [integrates](https://ai.pydantic.dev/logfire/) with [Pydantic Logfire](https://pydantic.dev/logfire) for real-time debugging, performance monitoring, and behavior tracking of your LLM-powered applications.
|
|
82
|
+
- **Pydantic Logfire Integration**
|
|
83
|
+
Seamlessly [integrates](https://ai.pydantic.dev/logfire/) with [Pydantic Logfire](https://pydantic.dev/logfire) for real-time debugging, performance monitoring, and behavior tracking of your LLM-powered applications.
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
Designed to make [type checking](https://ai.pydantic.dev/agents/#static-type-checking) as powerful and informative as possible for you.
|
|
85
|
+
- **Type-safe**
|
|
86
|
+
Designed to make [type checking](https://ai.pydantic.dev/agents/#static-type-checking) as powerful and informative as possible for you.
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
Leverages Python's familiar control flow and agent composition to build your AI-driven projects, making it easy to apply standard Python best practices you'd use in any other (non-AI) project.
|
|
88
|
+
- **Python-centric Design**
|
|
89
|
+
Leverages Python's familiar control flow and agent composition to build your AI-driven projects, making it easy to apply standard Python best practices you'd use in any other (non-AI) project.
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
Harnesses the power of [Pydantic](https://docs.pydantic.dev/latest/) to [validate and structure](https://ai.pydantic.dev/output/#structured-output) model outputs, ensuring responses are consistent across runs.
|
|
91
|
+
- **Structured Responses**
|
|
92
|
+
Harnesses the power of [Pydantic Validation](https://docs.pydantic.dev/latest/) to [validate and structure](https://ai.pydantic.dev/output/#structured-output) model outputs, ensuring responses are consistent across runs.
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
Offers an optional [dependency injection](https://ai.pydantic.dev/dependencies/) system to provide data and services to your agent's [system prompts](https://ai.pydantic.dev/agents/#system-prompts), [tools](https://ai.pydantic.dev/tools/) and [output validators](https://ai.pydantic.dev/output/#output-validator-functions).
|
|
96
|
-
This is useful for testing and eval-driven iterative development.
|
|
94
|
+
- **Dependency Injection System**
|
|
95
|
+
Offers an optional [dependency injection](https://ai.pydantic.dev/dependencies/) system to provide data and services to your agent's [system prompts](https://ai.pydantic.dev/agents/#system-prompts), [tools](https://ai.pydantic.dev/tools/) and [output validators](https://ai.pydantic.dev/output/#output-validator-functions).
|
|
96
|
+
This is useful for testing and eval-driven iterative development.
|
|
97
97
|
|
|
98
|
-
|
|
99
|
-
Provides the ability to [stream](https://ai.pydantic.dev/output/#streamed-results) LLM outputs continuously, with immediate validation, ensuring rapid and accurate outputs.
|
|
98
|
+
- **Streamed Responses**
|
|
99
|
+
Provides the ability to [stream](https://ai.pydantic.dev/output/#streamed-results) LLM outputs continuously, with immediate validation, ensuring rapid and accurate outputs.
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
[Pydantic Graph](https://ai.pydantic.dev/graph) provides a powerful way to define graphs using typing hints, this is useful in complex applications where standard control flow can degrade to spaghetti code.
|
|
101
|
+
- **Graph Support**
|
|
102
|
+
[Pydantic Graph](https://ai.pydantic.dev/graph) provides a powerful way to define graphs using typing hints, this is useful in complex applications where standard control flow can degrade to spaghetti code.
|
|
103
103
|
|
|
104
104
|
## Hello World Example
|
|
105
105
|
|
|
106
|
-
Here's a minimal example of
|
|
106
|
+
Here's a minimal example of Pydantic AI:
|
|
107
107
|
|
|
108
108
|
```python
|
|
109
109
|
from pydantic_ai import Agent
|
|
@@ -117,7 +117,7 @@ agent = Agent(
|
|
|
117
117
|
)
|
|
118
118
|
|
|
119
119
|
# Run the agent synchronously, conducting a conversation with the LLM.
|
|
120
|
-
# Here the exchange should be very short:
|
|
120
|
+
# Here the exchange should be very short: Pydantic AI will send the system prompt and the user query to the LLM,
|
|
121
121
|
# the model will return a text response. See below for a more complex run.
|
|
122
122
|
result = agent.run_sync('Where does "hello world" come from?')
|
|
123
123
|
print(result.output)
|
|
@@ -132,7 +132,7 @@ Not very interesting yet, but we can easily add "tools", dynamic system prompts,
|
|
|
132
132
|
|
|
133
133
|
## Tools & Dependency Injection Example
|
|
134
134
|
|
|
135
|
-
Here is a concise example using
|
|
135
|
+
Here is a concise example using Pydantic AI to build a support agent for a bank:
|
|
136
136
|
|
|
137
137
|
**(Better documented example [in the docs](https://ai.pydantic.dev/#tools-dependency-injection-example))**
|
|
138
138
|
|
|
@@ -226,8 +226,8 @@ async def main():
|
|
|
226
226
|
|
|
227
227
|
## Next Steps
|
|
228
228
|
|
|
229
|
-
To try
|
|
229
|
+
To try Pydantic AI yourself, follow the instructions [in the examples](https://ai.pydantic.dev/examples/).
|
|
230
230
|
|
|
231
|
-
Read the [docs](https://ai.pydantic.dev/agents/) to learn more about building applications with
|
|
231
|
+
Read the [docs](https://ai.pydantic.dev/agents/) to learn more about building applications with Pydantic AI.
|
|
232
232
|
|
|
233
|
-
Read the [API Reference](https://ai.pydantic.dev/api/agent/) to understand
|
|
233
|
+
Read the [API Reference](https://ai.pydantic.dev/api/agent/) to understand Pydantic AI's interface.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<a href="https://ai.pydantic.dev/">
|
|
3
3
|
<picture>
|
|
4
4
|
<source media="(prefers-color-scheme: dark)" srcset="https://ai.pydantic.dev/img/pydantic-ai-dark.svg">
|
|
5
|
-
<img src="https://ai.pydantic.dev/img/pydantic-ai-light.svg" alt="
|
|
5
|
+
<img src="https://ai.pydantic.dev/img/pydantic-ai-light.svg" alt="Pydantic AI">
|
|
6
6
|
</picture>
|
|
7
7
|
</a>
|
|
8
8
|
</div>
|
|
@@ -24,47 +24,47 @@
|
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Pydantic AI is a Python agent framework designed to make it less painful to build production grade applications with Generative AI.
|
|
28
28
|
|
|
29
|
-
FastAPI revolutionized web development by offering an innovative and ergonomic design, built on the foundation of [Pydantic](https://docs.pydantic.dev).
|
|
29
|
+
FastAPI revolutionized web development by offering an innovative and ergonomic design, built on the foundation of [Pydantic Validation](https://docs.pydantic.dev).
|
|
30
30
|
|
|
31
|
-
Similarly, virtually every agent framework and LLM library in Python uses Pydantic, yet when we began to use LLMs in [Pydantic Logfire](https://pydantic.dev/logfire), we couldn't find anything that gave us the same feeling.
|
|
31
|
+
Similarly, virtually every agent framework and LLM library in Python uses Pydantic Validation, yet when we began to use LLMs in [Pydantic Logfire](https://pydantic.dev/logfire), we couldn't find anything that gave us the same feeling.
|
|
32
32
|
|
|
33
|
-
We built
|
|
33
|
+
We built Pydantic AI with one simple aim: to bring that FastAPI feeling to GenAI app development.
|
|
34
34
|
|
|
35
|
-
## Why use
|
|
35
|
+
## Why use Pydantic AI
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
Built by the team behind [Pydantic](https://docs.pydantic.dev/latest/) (the validation layer of the OpenAI SDK, the Anthropic SDK, LangChain, LlamaIndex, AutoGPT, Transformers, CrewAI, Instructor and many more).
|
|
37
|
+
- **Built by the Pydantic Team**
|
|
38
|
+
Built by the team behind [Pydantic Validation](https://docs.pydantic.dev/latest/) (the validation layer of the OpenAI SDK, the Anthropic SDK, LangChain, LlamaIndex, AutoGPT, Transformers, CrewAI, Instructor and many more).
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
Supports OpenAI, Anthropic, Gemini, Deepseek, Ollama, Groq, Cohere, and Mistral, and there is a simple interface to implement support for [other models](https://ai.pydantic.dev/models/).
|
|
40
|
+
- **Model-agnostic**
|
|
41
|
+
Supports OpenAI, Anthropic, Gemini, Deepseek, Ollama, Groq, Cohere, and Mistral, and there is a simple interface to implement support for [other models](https://ai.pydantic.dev/models/).
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
Seamlessly [integrates](https://ai.pydantic.dev/logfire/) with [Pydantic Logfire](https://pydantic.dev/logfire) for real-time debugging, performance monitoring, and behavior tracking of your LLM-powered applications.
|
|
43
|
+
- **Pydantic Logfire Integration**
|
|
44
|
+
Seamlessly [integrates](https://ai.pydantic.dev/logfire/) with [Pydantic Logfire](https://pydantic.dev/logfire) for real-time debugging, performance monitoring, and behavior tracking of your LLM-powered applications.
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
Designed to make [type checking](https://ai.pydantic.dev/agents/#static-type-checking) as powerful and informative as possible for you.
|
|
46
|
+
- **Type-safe**
|
|
47
|
+
Designed to make [type checking](https://ai.pydantic.dev/agents/#static-type-checking) as powerful and informative as possible for you.
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
Leverages Python's familiar control flow and agent composition to build your AI-driven projects, making it easy to apply standard Python best practices you'd use in any other (non-AI) project.
|
|
49
|
+
- **Python-centric Design**
|
|
50
|
+
Leverages Python's familiar control flow and agent composition to build your AI-driven projects, making it easy to apply standard Python best practices you'd use in any other (non-AI) project.
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
Harnesses the power of [Pydantic](https://docs.pydantic.dev/latest/) to [validate and structure](https://ai.pydantic.dev/output/#structured-output) model outputs, ensuring responses are consistent across runs.
|
|
52
|
+
- **Structured Responses**
|
|
53
|
+
Harnesses the power of [Pydantic Validation](https://docs.pydantic.dev/latest/) to [validate and structure](https://ai.pydantic.dev/output/#structured-output) model outputs, ensuring responses are consistent across runs.
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
Offers an optional [dependency injection](https://ai.pydantic.dev/dependencies/) system to provide data and services to your agent's [system prompts](https://ai.pydantic.dev/agents/#system-prompts), [tools](https://ai.pydantic.dev/tools/) and [output validators](https://ai.pydantic.dev/output/#output-validator-functions).
|
|
57
|
-
This is useful for testing and eval-driven iterative development.
|
|
55
|
+
- **Dependency Injection System**
|
|
56
|
+
Offers an optional [dependency injection](https://ai.pydantic.dev/dependencies/) system to provide data and services to your agent's [system prompts](https://ai.pydantic.dev/agents/#system-prompts), [tools](https://ai.pydantic.dev/tools/) and [output validators](https://ai.pydantic.dev/output/#output-validator-functions).
|
|
57
|
+
This is useful for testing and eval-driven iterative development.
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
Provides the ability to [stream](https://ai.pydantic.dev/output/#streamed-results) LLM outputs continuously, with immediate validation, ensuring rapid and accurate outputs.
|
|
59
|
+
- **Streamed Responses**
|
|
60
|
+
Provides the ability to [stream](https://ai.pydantic.dev/output/#streamed-results) LLM outputs continuously, with immediate validation, ensuring rapid and accurate outputs.
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
[Pydantic Graph](https://ai.pydantic.dev/graph) provides a powerful way to define graphs using typing hints, this is useful in complex applications where standard control flow can degrade to spaghetti code.
|
|
62
|
+
- **Graph Support**
|
|
63
|
+
[Pydantic Graph](https://ai.pydantic.dev/graph) provides a powerful way to define graphs using typing hints, this is useful in complex applications where standard control flow can degrade to spaghetti code.
|
|
64
64
|
|
|
65
65
|
## Hello World Example
|
|
66
66
|
|
|
67
|
-
Here's a minimal example of
|
|
67
|
+
Here's a minimal example of Pydantic AI:
|
|
68
68
|
|
|
69
69
|
```python
|
|
70
70
|
from pydantic_ai import Agent
|
|
@@ -78,7 +78,7 @@ agent = Agent(
|
|
|
78
78
|
)
|
|
79
79
|
|
|
80
80
|
# Run the agent synchronously, conducting a conversation with the LLM.
|
|
81
|
-
# Here the exchange should be very short:
|
|
81
|
+
# Here the exchange should be very short: Pydantic AI will send the system prompt and the user query to the LLM,
|
|
82
82
|
# the model will return a text response. See below for a more complex run.
|
|
83
83
|
result = agent.run_sync('Where does "hello world" come from?')
|
|
84
84
|
print(result.output)
|
|
@@ -93,7 +93,7 @@ Not very interesting yet, but we can easily add "tools", dynamic system prompts,
|
|
|
93
93
|
|
|
94
94
|
## Tools & Dependency Injection Example
|
|
95
95
|
|
|
96
|
-
Here is a concise example using
|
|
96
|
+
Here is a concise example using Pydantic AI to build a support agent for a bank:
|
|
97
97
|
|
|
98
98
|
**(Better documented example [in the docs](https://ai.pydantic.dev/#tools-dependency-injection-example))**
|
|
99
99
|
|
|
@@ -187,8 +187,8 @@ async def main():
|
|
|
187
187
|
|
|
188
188
|
## Next Steps
|
|
189
189
|
|
|
190
|
-
To try
|
|
190
|
+
To try Pydantic AI yourself, follow the instructions [in the examples](https://ai.pydantic.dev/examples/).
|
|
191
191
|
|
|
192
|
-
Read the [docs](https://ai.pydantic.dev/agents/) to learn more about building applications with
|
|
192
|
+
Read the [docs](https://ai.pydantic.dev/agents/) to learn more about building applications with Pydantic AI.
|
|
193
193
|
|
|
194
|
-
Read the [API Reference](https://ai.pydantic.dev/api/agent/) to understand
|
|
194
|
+
Read the [API Reference](https://ai.pydantic.dev/api/agent/) to understand Pydantic AI's interface.
|
|
@@ -19,6 +19,7 @@ authors = [
|
|
|
19
19
|
{ name = "Marcelo Trylesinski", email = "marcelotryle@gmail.com" },
|
|
20
20
|
{ name = "David Montague", email = "david@pydantic.dev" },
|
|
21
21
|
{ name = "Alex Hall", email = "alex@pydantic.dev" },
|
|
22
|
+
{ name = "Douwe Maan", email = "douwe@pydantic.dev" },
|
|
22
23
|
]
|
|
23
24
|
license = "MIT"
|
|
24
25
|
readme = "README.md"
|
|
@@ -46,7 +47,7 @@ requires-python = ">=3.9"
|
|
|
46
47
|
|
|
47
48
|
[tool.hatch.metadata.hooks.uv-dynamic-versioning]
|
|
48
49
|
dependencies = [
|
|
49
|
-
"pydantic-ai-slim[openai,vertexai,google,groq,anthropic,mistral,cohere,bedrock,huggingface,cli,mcp,evals]=={{ version }}",
|
|
50
|
+
"pydantic-ai-slim[openai,vertexai,google,groq,anthropic,mistral,cohere,bedrock,huggingface,cli,mcp,evals,ag-ui]=={{ version }}",
|
|
50
51
|
]
|
|
51
52
|
|
|
52
53
|
[tool.hatch.metadata.hooks.uv-dynamic-versioning.optional-dependencies]
|
|
@@ -199,6 +200,8 @@ filterwarnings = [
|
|
|
199
200
|
"error",
|
|
200
201
|
# Issue with python-multipart - we don't want to bump the minimum version of starlette.
|
|
201
202
|
"ignore::PendingDeprecationWarning:starlette",
|
|
203
|
+
# mistralai accesses model_fields on the instance, which is deprecated in Pydantic 2.11.
|
|
204
|
+
"ignore:Accessing the 'model_fields' attribute",
|
|
202
205
|
# boto3
|
|
203
206
|
"ignore::DeprecationWarning:botocore.*",
|
|
204
207
|
"ignore::RuntimeWarning:pydantic_ai.mcp",
|
|
@@ -8,7 +8,7 @@ interactions:
|
|
|
8
8
|
connection:
|
|
9
9
|
- keep-alive
|
|
10
10
|
content-length:
|
|
11
|
-
- '
|
|
11
|
+
- '2501'
|
|
12
12
|
content-type:
|
|
13
13
|
- application/json
|
|
14
14
|
host:
|
|
@@ -16,10 +16,9 @@ interactions:
|
|
|
16
16
|
method: POST
|
|
17
17
|
parsed_body:
|
|
18
18
|
messages:
|
|
19
|
-
- content:
|
|
19
|
+
- content: What is 0 degrees Celsius in Fahrenheit?
|
|
20
20
|
role: user
|
|
21
21
|
model: gpt-4o
|
|
22
|
-
n: 1
|
|
23
22
|
stream: false
|
|
24
23
|
tool_choice: auto
|
|
25
24
|
tools:
|
|
@@ -54,6 +53,13 @@ interactions:
|
|
|
54
53
|
properties: {}
|
|
55
54
|
type: object
|
|
56
55
|
type: function
|
|
56
|
+
- function:
|
|
57
|
+
description: ''
|
|
58
|
+
name: get_audio_resource
|
|
59
|
+
parameters:
|
|
60
|
+
properties: {}
|
|
61
|
+
type: object
|
|
62
|
+
type: function
|
|
57
63
|
- function:
|
|
58
64
|
description: ''
|
|
59
65
|
name: get_product_name
|
|
@@ -105,6 +111,25 @@ interactions:
|
|
|
105
111
|
properties: {}
|
|
106
112
|
type: object
|
|
107
113
|
type: function
|
|
114
|
+
- function:
|
|
115
|
+
description: "Echo the run context.\n\n Args:\n ctx: Context object containing request and session information.\n\n
|
|
116
|
+
\ Returns:\n Dictionary with an echo message and the deps.\n "
|
|
117
|
+
name: echo_deps
|
|
118
|
+
parameters:
|
|
119
|
+
properties: {}
|
|
120
|
+
type: object
|
|
121
|
+
type: function
|
|
122
|
+
- function:
|
|
123
|
+
description: Use sampling callback.
|
|
124
|
+
name: use_sampling
|
|
125
|
+
parameters:
|
|
126
|
+
properties:
|
|
127
|
+
foo:
|
|
128
|
+
type: string
|
|
129
|
+
required:
|
|
130
|
+
- foo
|
|
131
|
+
type: object
|
|
132
|
+
type: function
|
|
108
133
|
uri: https://api.openai.com/v1/chat/completions
|
|
109
134
|
response:
|
|
110
135
|
headers:
|
|
@@ -115,13 +140,13 @@ interactions:
|
|
|
115
140
|
connection:
|
|
116
141
|
- keep-alive
|
|
117
142
|
content-length:
|
|
118
|
-
- '
|
|
143
|
+
- '1086'
|
|
119
144
|
content-type:
|
|
120
145
|
- application/json
|
|
121
146
|
openai-organization:
|
|
122
147
|
- pydantic-28gund
|
|
123
148
|
openai-processing-ms:
|
|
124
|
-
- '
|
|
149
|
+
- '420'
|
|
125
150
|
openai-version:
|
|
126
151
|
- '2020-10-01'
|
|
127
152
|
strict-transport-security:
|
|
@@ -140,28 +165,28 @@ interactions:
|
|
|
140
165
|
role: assistant
|
|
141
166
|
tool_calls:
|
|
142
167
|
- function:
|
|
143
|
-
arguments: '{}'
|
|
144
|
-
name:
|
|
145
|
-
id:
|
|
168
|
+
arguments: '{"celsius":0}'
|
|
169
|
+
name: celsius_to_fahrenheit
|
|
170
|
+
id: call_hS0oexgCNI6TneJuPPuwn9jQ
|
|
146
171
|
type: function
|
|
147
|
-
created:
|
|
148
|
-
id: chatcmpl-
|
|
172
|
+
created: 1751491994
|
|
173
|
+
id: chatcmpl-BozMoBhgfC5D8QBjkiOwz5OxxrwQK
|
|
149
174
|
model: gpt-4o-2024-08-06
|
|
150
175
|
object: chat.completion
|
|
151
176
|
service_tier: default
|
|
152
|
-
system_fingerprint:
|
|
177
|
+
system_fingerprint: fp_a288987b44
|
|
153
178
|
usage:
|
|
154
|
-
completion_tokens:
|
|
179
|
+
completion_tokens: 18
|
|
155
180
|
completion_tokens_details:
|
|
156
181
|
accepted_prediction_tokens: 0
|
|
157
182
|
audio_tokens: 0
|
|
158
183
|
reasoning_tokens: 0
|
|
159
184
|
rejected_prediction_tokens: 0
|
|
160
|
-
prompt_tokens:
|
|
185
|
+
prompt_tokens: 268
|
|
161
186
|
prompt_tokens_details:
|
|
162
187
|
audio_tokens: 0
|
|
163
188
|
cached_tokens: 0
|
|
164
|
-
total_tokens:
|
|
189
|
+
total_tokens: 286
|
|
165
190
|
status:
|
|
166
191
|
code: 200
|
|
167
192
|
message: OK
|
|
@@ -174,31 +199,30 @@ interactions:
|
|
|
174
199
|
connection:
|
|
175
200
|
- keep-alive
|
|
176
201
|
content-length:
|
|
177
|
-
- '
|
|
202
|
+
- '2748'
|
|
178
203
|
content-type:
|
|
179
204
|
- application/json
|
|
180
205
|
cookie:
|
|
181
|
-
- __cf_bm=
|
|
182
|
-
_cfuvid=
|
|
206
|
+
- __cf_bm=JOV7WG2Y48FZrZxdh0IZvA9mCj_ljIN3DhGMuC1pw6M-1751491995-1.0.1.1-zGPrLbzYx7y3iZT28xogbHO1KAIej60kPEwQ8ZxGMxv1r.ICtqI0T8WCnlyUccKfLSXB6ZTNQT05xCma8LSvq2pk4X2eEuSkYC1sPqbuLU8;
|
|
207
|
+
_cfuvid=LdoyX0uKYwM98NSSSvySlZAiJHCVHz_1krUGKbWmNHg-1751491995391-0.0.1.1-604800000
|
|
183
208
|
host:
|
|
184
209
|
- api.openai.com
|
|
185
210
|
method: POST
|
|
186
211
|
parsed_body:
|
|
187
212
|
messages:
|
|
188
|
-
- content:
|
|
213
|
+
- content: What is 0 degrees Celsius in Fahrenheit?
|
|
189
214
|
role: user
|
|
190
215
|
- role: assistant
|
|
191
216
|
tool_calls:
|
|
192
217
|
- function:
|
|
193
|
-
arguments: '{}'
|
|
194
|
-
name:
|
|
195
|
-
id:
|
|
218
|
+
arguments: '{"celsius":0}'
|
|
219
|
+
name: celsius_to_fahrenheit
|
|
220
|
+
id: call_hS0oexgCNI6TneJuPPuwn9jQ
|
|
196
221
|
type: function
|
|
197
|
-
- content:
|
|
222
|
+
- content: '32.0'
|
|
198
223
|
role: tool
|
|
199
|
-
tool_call_id:
|
|
224
|
+
tool_call_id: call_hS0oexgCNI6TneJuPPuwn9jQ
|
|
200
225
|
model: gpt-4o
|
|
201
|
-
n: 1
|
|
202
226
|
stream: false
|
|
203
227
|
tool_choice: auto
|
|
204
228
|
tools:
|
|
@@ -233,6 +257,13 @@ interactions:
|
|
|
233
257
|
properties: {}
|
|
234
258
|
type: object
|
|
235
259
|
type: function
|
|
260
|
+
- function:
|
|
261
|
+
description: ''
|
|
262
|
+
name: get_audio_resource
|
|
263
|
+
parameters:
|
|
264
|
+
properties: {}
|
|
265
|
+
type: object
|
|
266
|
+
type: function
|
|
236
267
|
- function:
|
|
237
268
|
description: ''
|
|
238
269
|
name: get_product_name
|
|
@@ -284,6 +315,25 @@ interactions:
|
|
|
284
315
|
properties: {}
|
|
285
316
|
type: object
|
|
286
317
|
type: function
|
|
318
|
+
- function:
|
|
319
|
+
description: "Echo the run context.\n\n Args:\n ctx: Context object containing request and session information.\n\n
|
|
320
|
+
\ Returns:\n Dictionary with an echo message and the deps.\n "
|
|
321
|
+
name: echo_deps
|
|
322
|
+
parameters:
|
|
323
|
+
properties: {}
|
|
324
|
+
type: object
|
|
325
|
+
type: function
|
|
326
|
+
- function:
|
|
327
|
+
description: Use sampling callback.
|
|
328
|
+
name: use_sampling
|
|
329
|
+
parameters:
|
|
330
|
+
properties:
|
|
331
|
+
foo:
|
|
332
|
+
type: string
|
|
333
|
+
required:
|
|
334
|
+
- foo
|
|
335
|
+
type: object
|
|
336
|
+
type: function
|
|
287
337
|
uri: https://api.openai.com/v1/chat/completions
|
|
288
338
|
response:
|
|
289
339
|
headers:
|
|
@@ -294,13 +344,13 @@ interactions:
|
|
|
294
344
|
connection:
|
|
295
345
|
- keep-alive
|
|
296
346
|
content-length:
|
|
297
|
-
- '
|
|
347
|
+
- '849'
|
|
298
348
|
content-type:
|
|
299
349
|
- application/json
|
|
300
350
|
openai-organization:
|
|
301
351
|
- pydantic-28gund
|
|
302
352
|
openai-processing-ms:
|
|
303
|
-
- '
|
|
353
|
+
- '520'
|
|
304
354
|
openai-version:
|
|
305
355
|
- '2020-10-01'
|
|
306
356
|
strict-transport-security:
|
|
@@ -314,15 +364,15 @@ interactions:
|
|
|
314
364
|
logprobs: null
|
|
315
365
|
message:
|
|
316
366
|
annotations: []
|
|
317
|
-
content:
|
|
367
|
+
content: 0 degrees Celsius is 32.0 degrees Fahrenheit.
|
|
318
368
|
refusal: null
|
|
319
369
|
role: assistant
|
|
320
|
-
created:
|
|
321
|
-
id: chatcmpl-
|
|
370
|
+
created: 1751491998
|
|
371
|
+
id: chatcmpl-BozMsevK8quJblNOyNCaDQpdtDwI5
|
|
322
372
|
model: gpt-4o-2024-08-06
|
|
323
373
|
object: chat.completion
|
|
324
374
|
service_tier: default
|
|
325
|
-
system_fingerprint:
|
|
375
|
+
system_fingerprint: fp_a288987b44
|
|
326
376
|
usage:
|
|
327
377
|
completion_tokens: 12
|
|
328
378
|
completion_tokens_details:
|
|
@@ -330,11 +380,11 @@ interactions:
|
|
|
330
380
|
audio_tokens: 0
|
|
331
381
|
reasoning_tokens: 0
|
|
332
382
|
rejected_prediction_tokens: 0
|
|
333
|
-
prompt_tokens:
|
|
383
|
+
prompt_tokens: 300
|
|
334
384
|
prompt_tokens_details:
|
|
335
385
|
audio_tokens: 0
|
|
336
386
|
cached_tokens: 0
|
|
337
|
-
total_tokens:
|
|
387
|
+
total_tokens: 312
|
|
338
388
|
status:
|
|
339
389
|
code: 200
|
|
340
390
|
message: OK
|