pydantic-ai 0.2.16__tar.gz → 0.2.18__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.2.16 → pydantic_ai-0.2.18}/PKG-INFO +3 -3
- pydantic_ai-0.2.18/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +226 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/conftest.py +8 -2
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/mcp_server.py +14 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +51 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +63 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +69 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +111 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +113 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +117 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +119 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +112 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +113 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +119 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +115 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +114 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +161 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +112 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +112 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +122 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +118 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +113 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +114 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +117 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +113 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +115 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +157 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +77 -0
- pydantic_ai-0.2.18/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +96 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_anthropic.py +50 -0
- pydantic_ai-0.2.18/tests/models/test_download_item.py +53 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_gemini.py +44 -0
- pydantic_ai-0.2.18/tests/models/test_gemini_vertex.py +199 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_google.py +153 -18
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_model.py +4 -18
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_openai.py +10 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_openai_responses.py +16 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_agent.py +37 -4
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_examples.py +2 -1
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_logfire.py +71 -4
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_mcp.py +65 -15
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_messages.py +16 -0
- pydantic_ai-0.2.16/tests/models/test_gemini_vertexai.py +0 -51
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/.gitignore +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/LICENSE +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/Makefile +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/README.md +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/pyproject.toml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/__init__.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/__init__.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_dataset.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/evals/utils.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/example_modules/README.md +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/ext/__init__.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/ext/test_langchain.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/fasta2a/__init__.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/fasta2a/test_applications.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/graph/__init__.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/graph/test_state.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/import_examples.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/__init__.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_response.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.2.16/tests/models/cassettes/test_gemini_vertexai → pydantic_ai-0.2.18/tests/models/cassettes/test_gemini_vertex}/test_labels.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_structured_response.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_bedrock.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_groq.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_instrumented.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_model_names.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_model_request_parameters.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/models/test_model_test.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/__init__.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_fireworks.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_grok.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_heroku.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_openrouter.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/providers/test_together.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_a2a.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_cli.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_deps.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_direct.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_live.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_settings.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_streaming.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_tools.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_usage_limits.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/test_utils.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/typed_agent.py +0 -0
- {pydantic_ai-0.2.16 → pydantic_ai-0.2.18}/tests/typed_graph.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.18
|
|
4
4
|
Summary: Agent Framework / shim to use Pydantic with LLMs
|
|
5
5
|
Project-URL: Homepage, https://ai.pydantic.dev
|
|
6
6
|
Project-URL: Source, https://github.com/pydantic/pydantic-ai
|
|
@@ -28,9 +28,9 @@ Classifier: Topic :: Internet
|
|
|
28
28
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
29
29
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
30
30
|
Requires-Python: >=3.9
|
|
31
|
-
Requires-Dist: pydantic-ai-slim[a2a,anthropic,bedrock,cli,cohere,evals,google,groq,mcp,mistral,openai,vertexai]==0.2.
|
|
31
|
+
Requires-Dist: pydantic-ai-slim[a2a,anthropic,bedrock,cli,cohere,evals,google,groq,mcp,mistral,openai,vertexai]==0.2.18
|
|
32
32
|
Provides-Extra: examples
|
|
33
|
-
Requires-Dist: pydantic-ai-examples==0.2.
|
|
33
|
+
Requires-Dist: pydantic-ai-examples==0.2.18; extra == 'examples'
|
|
34
34
|
Provides-Extra: logfire
|
|
35
35
|
Requires-Dist: logfire>=3.11.0; extra == 'logfire'
|
|
36
36
|
Description-Content-Type: text/markdown
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
headers:
|
|
4
|
+
accept:
|
|
5
|
+
- '*/*'
|
|
6
|
+
accept-encoding:
|
|
7
|
+
- gzip, deflate
|
|
8
|
+
connection:
|
|
9
|
+
- keep-alive
|
|
10
|
+
content-length:
|
|
11
|
+
- '1283'
|
|
12
|
+
content-type:
|
|
13
|
+
- application/json
|
|
14
|
+
host:
|
|
15
|
+
- generativelanguage.googleapis.com
|
|
16
|
+
method: POST
|
|
17
|
+
parsed_body:
|
|
18
|
+
contents:
|
|
19
|
+
- parts:
|
|
20
|
+
- text: What's the content of the audio resource?
|
|
21
|
+
role: user
|
|
22
|
+
tools:
|
|
23
|
+
functionDeclarations:
|
|
24
|
+
- description: "Convert Celsius to Fahrenheit.\n\n Args:\n celsius: Temperature in Celsius\n\n Returns:\n
|
|
25
|
+
\ Temperature in Fahrenheit\n "
|
|
26
|
+
name: celsius_to_fahrenheit
|
|
27
|
+
parameters:
|
|
28
|
+
properties:
|
|
29
|
+
celsius:
|
|
30
|
+
type: number
|
|
31
|
+
required:
|
|
32
|
+
- celsius
|
|
33
|
+
type: object
|
|
34
|
+
- description: "Get the weather forecast for a location.\n\n Args:\n location: The location to get the weather
|
|
35
|
+
forecast for.\n\n Returns:\n The weather forecast for the location.\n "
|
|
36
|
+
name: get_weather_forecast
|
|
37
|
+
parameters:
|
|
38
|
+
properties:
|
|
39
|
+
location:
|
|
40
|
+
type: string
|
|
41
|
+
required:
|
|
42
|
+
- location
|
|
43
|
+
type: object
|
|
44
|
+
- description: ''
|
|
45
|
+
name: get_image_resource
|
|
46
|
+
- description: ''
|
|
47
|
+
name: get_audio_resource
|
|
48
|
+
- description: ''
|
|
49
|
+
name: get_product_name
|
|
50
|
+
- description: ''
|
|
51
|
+
name: get_image
|
|
52
|
+
- description: ''
|
|
53
|
+
name: get_dict
|
|
54
|
+
- description: ''
|
|
55
|
+
name: get_error
|
|
56
|
+
parameters:
|
|
57
|
+
properties:
|
|
58
|
+
value:
|
|
59
|
+
type: boolean
|
|
60
|
+
type: object
|
|
61
|
+
- description: ''
|
|
62
|
+
name: get_none
|
|
63
|
+
- description: ''
|
|
64
|
+
name: get_multiple_items
|
|
65
|
+
- description: "Get the current log level.\n\n Returns:\n The current log level.\n "
|
|
66
|
+
name: get_log_level
|
|
67
|
+
uri: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro-preview-03-25:generateContent
|
|
68
|
+
response:
|
|
69
|
+
headers:
|
|
70
|
+
alt-svc:
|
|
71
|
+
- h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
|
|
72
|
+
content-length:
|
|
73
|
+
- '655'
|
|
74
|
+
content-type:
|
|
75
|
+
- application/json; charset=UTF-8
|
|
76
|
+
server-timing:
|
|
77
|
+
- gfet4t7; dur=2646
|
|
78
|
+
transfer-encoding:
|
|
79
|
+
- chunked
|
|
80
|
+
vary:
|
|
81
|
+
- Origin
|
|
82
|
+
- X-Origin
|
|
83
|
+
- Referer
|
|
84
|
+
parsed_body:
|
|
85
|
+
candidates:
|
|
86
|
+
- content:
|
|
87
|
+
parts:
|
|
88
|
+
- functionCall:
|
|
89
|
+
args: {}
|
|
90
|
+
name: get_audio_resource
|
|
91
|
+
role: model
|
|
92
|
+
finishReason: STOP
|
|
93
|
+
index: 0
|
|
94
|
+
modelVersion: models/gemini-2.5-pro-preview-05-06
|
|
95
|
+
responseId: NtBKaNyJNuzRvdIPls2XuQc
|
|
96
|
+
usageMetadata:
|
|
97
|
+
candidatesTokenCount: 12
|
|
98
|
+
promptTokenCount: 383
|
|
99
|
+
promptTokensDetails:
|
|
100
|
+
- modality: TEXT
|
|
101
|
+
tokenCount: 383
|
|
102
|
+
thoughtsTokenCount: 125
|
|
103
|
+
totalTokenCount: 520
|
|
104
|
+
status:
|
|
105
|
+
code: 200
|
|
106
|
+
message: OK
|
|
107
|
+
- request:
|
|
108
|
+
headers:
|
|
109
|
+
accept:
|
|
110
|
+
- '*/*'
|
|
111
|
+
accept-encoding:
|
|
112
|
+
- gzip, deflate
|
|
113
|
+
connection:
|
|
114
|
+
- keep-alive
|
|
115
|
+
content-length:
|
|
116
|
+
- '73381'
|
|
117
|
+
content-type:
|
|
118
|
+
- application/json
|
|
119
|
+
host:
|
|
120
|
+
- generativelanguage.googleapis.com
|
|
121
|
+
method: POST
|
|
122
|
+
parsed_body:
|
|
123
|
+
contents:
|
|
124
|
+
- parts:
|
|
125
|
+
- text: What's the content of the audio resource?
|
|
126
|
+
role: user
|
|
127
|
+
- parts:
|
|
128
|
+
- functionCall:
|
|
129
|
+
args: {}
|
|
130
|
+
name: get_audio_resource
|
|
131
|
+
role: model
|
|
132
|
+
- parts:
|
|
133
|
+
- functionResponse:
|
|
134
|
+
name: get_audio_resource
|
|
135
|
+
response:
|
|
136
|
+
return_value: See file 2d36ae
|
|
137
|
+
- text: 'This is file 2d36ae:'
|
|
138
|
+
- inlineData:
|
|
139
|
+
data: //t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//t0xAADwAABpAAAACAAADSAAAAETEFNRQMACQgABAAAAAAA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
|
|
140
|
+
mimeType: audio/mpeg
|
|
141
|
+
role: user
|
|
142
|
+
tools:
|
|
143
|
+
functionDeclarations:
|
|
144
|
+
- description: "Convert Celsius to Fahrenheit.\n\n Args:\n celsius: Temperature in Celsius\n\n Returns:\n
|
|
145
|
+
\ Temperature in Fahrenheit\n "
|
|
146
|
+
name: celsius_to_fahrenheit
|
|
147
|
+
parameters:
|
|
148
|
+
properties:
|
|
149
|
+
celsius:
|
|
150
|
+
type: number
|
|
151
|
+
required:
|
|
152
|
+
- celsius
|
|
153
|
+
type: object
|
|
154
|
+
- description: "Get the weather forecast for a location.\n\n Args:\n location: The location to get the weather
|
|
155
|
+
forecast for.\n\n Returns:\n The weather forecast for the location.\n "
|
|
156
|
+
name: get_weather_forecast
|
|
157
|
+
parameters:
|
|
158
|
+
properties:
|
|
159
|
+
location:
|
|
160
|
+
type: string
|
|
161
|
+
required:
|
|
162
|
+
- location
|
|
163
|
+
type: object
|
|
164
|
+
- description: ''
|
|
165
|
+
name: get_image_resource
|
|
166
|
+
- description: ''
|
|
167
|
+
name: get_audio_resource
|
|
168
|
+
- description: ''
|
|
169
|
+
name: get_product_name
|
|
170
|
+
- description: ''
|
|
171
|
+
name: get_image
|
|
172
|
+
- description: ''
|
|
173
|
+
name: get_dict
|
|
174
|
+
- description: ''
|
|
175
|
+
name: get_error
|
|
176
|
+
parameters:
|
|
177
|
+
properties:
|
|
178
|
+
value:
|
|
179
|
+
type: boolean
|
|
180
|
+
type: object
|
|
181
|
+
- description: ''
|
|
182
|
+
name: get_none
|
|
183
|
+
- description: ''
|
|
184
|
+
name: get_multiple_items
|
|
185
|
+
- description: "Get the current log level.\n\n Returns:\n The current log level.\n "
|
|
186
|
+
name: get_log_level
|
|
187
|
+
uri: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro-preview-03-25:generateContent
|
|
188
|
+
response:
|
|
189
|
+
headers:
|
|
190
|
+
alt-svc:
|
|
191
|
+
- h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
|
|
192
|
+
content-length:
|
|
193
|
+
- '679'
|
|
194
|
+
content-type:
|
|
195
|
+
- application/json; charset=UTF-8
|
|
196
|
+
server-timing:
|
|
197
|
+
- gfet4t7; dur=1756
|
|
198
|
+
transfer-encoding:
|
|
199
|
+
- chunked
|
|
200
|
+
vary:
|
|
201
|
+
- Origin
|
|
202
|
+
- X-Origin
|
|
203
|
+
- Referer
|
|
204
|
+
parsed_body:
|
|
205
|
+
candidates:
|
|
206
|
+
- content:
|
|
207
|
+
parts:
|
|
208
|
+
- text: The audio resource contains a voice saying "Hello, my name is Marcelo."
|
|
209
|
+
role: model
|
|
210
|
+
finishReason: STOP
|
|
211
|
+
index: 0
|
|
212
|
+
modelVersion: models/gemini-2.5-pro-preview-05-06
|
|
213
|
+
responseId: ONBKaP3rKvqP28oPqLnEkAQ
|
|
214
|
+
usageMetadata:
|
|
215
|
+
candidatesTokenCount: 15
|
|
216
|
+
promptTokenCount: 575
|
|
217
|
+
promptTokensDetails:
|
|
218
|
+
- modality: TEXT
|
|
219
|
+
tokenCount: 431
|
|
220
|
+
- modality: AUDIO
|
|
221
|
+
tokenCount: 144
|
|
222
|
+
totalTokenCount: 590
|
|
223
|
+
status:
|
|
224
|
+
code: 200
|
|
225
|
+
message: OK
|
|
226
|
+
version: 1
|
|
@@ -24,21 +24,27 @@ import pydantic_ai.models
|
|
|
24
24
|
from pydantic_ai.messages import BinaryContent
|
|
25
25
|
from pydantic_ai.models import Model, cached_async_http_client
|
|
26
26
|
|
|
27
|
-
__all__ = 'IsDatetime', 'IsFloat', 'IsNow', 'IsStr', 'IsInt', 'TestEnv', 'ClientWithHandler', 'try_import'
|
|
27
|
+
__all__ = 'IsDatetime', 'IsFloat', 'IsNow', 'IsStr', 'IsInt', 'IsInstance', 'TestEnv', 'ClientWithHandler', 'try_import'
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
pydantic_ai.models.ALLOW_MODEL_REQUESTS = False
|
|
31
31
|
|
|
32
32
|
if TYPE_CHECKING:
|
|
33
|
+
from typing import TypeVar
|
|
34
|
+
|
|
33
35
|
from pydantic_ai.providers.bedrock import BedrockProvider
|
|
34
36
|
|
|
37
|
+
T = TypeVar('T')
|
|
38
|
+
|
|
39
|
+
def IsInstance(arg: type[T]) -> T: ...
|
|
40
|
+
|
|
35
41
|
def IsDatetime(*args: Any, **kwargs: Any) -> datetime: ...
|
|
36
42
|
def IsFloat(*args: Any, **kwargs: Any) -> float: ...
|
|
37
43
|
def IsInt(*args: Any, **kwargs: Any) -> int: ...
|
|
38
44
|
def IsNow(*args: Any, **kwargs: Any) -> datetime: ...
|
|
39
45
|
def IsStr(*args: Any, **kwargs: Any) -> str: ...
|
|
40
46
|
else:
|
|
41
|
-
from dirty_equals import IsDatetime, IsFloat, IsInt, IsNow as _IsNow, IsStr
|
|
47
|
+
from dirty_equals import IsDatetime, IsFloat, IsInstance, IsInt, IsNow as _IsNow, IsStr
|
|
42
48
|
|
|
43
49
|
def IsNow(*args: Any, **kwargs: Any):
|
|
44
50
|
# Increase the default value of `delta` to 10 to reduce test flakiness on overburdened machines
|
|
@@ -4,6 +4,7 @@ from typing import Any
|
|
|
4
4
|
|
|
5
5
|
from mcp.server.fastmcp import Context, FastMCP, Image
|
|
6
6
|
from mcp.types import BlobResourceContents, EmbeddedResource, TextResourceContents
|
|
7
|
+
from pydantic import AnyUrl
|
|
7
8
|
|
|
8
9
|
mcp = FastMCP('PydanticAI MCP Server')
|
|
9
10
|
log_level = 'unset'
|
|
@@ -48,6 +49,19 @@ async def get_image_resource() -> EmbeddedResource:
|
|
|
48
49
|
)
|
|
49
50
|
|
|
50
51
|
|
|
52
|
+
@mcp.tool()
|
|
53
|
+
async def get_audio_resource() -> EmbeddedResource:
|
|
54
|
+
data = Path(__file__).parent.joinpath('assets/marcelo.mp3').read_bytes()
|
|
55
|
+
return EmbeddedResource(
|
|
56
|
+
type='resource',
|
|
57
|
+
resource=BlobResourceContents(
|
|
58
|
+
uri=AnyUrl('resource://marcelo.mp3'),
|
|
59
|
+
blob=base64.b64encode(data).decode('utf-8'),
|
|
60
|
+
mimeType='audio/mpeg',
|
|
61
|
+
),
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
|
|
51
65
|
@mcp.tool()
|
|
52
66
|
async def get_product_name() -> EmbeddedResource:
|
|
53
67
|
return EmbeddedResource(
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
body: ""
|
|
4
|
+
headers:
|
|
5
|
+
accept:
|
|
6
|
+
- "*/*"
|
|
7
|
+
accept-encoding:
|
|
8
|
+
- gzip, deflate
|
|
9
|
+
connection:
|
|
10
|
+
- keep-alive
|
|
11
|
+
host:
|
|
12
|
+
- raw.githubusercontent.com
|
|
13
|
+
method: GET
|
|
14
|
+
uri: https://raw.githubusercontent.com/pydantic/pydantic-ai/refs/heads/main/tests/assets/small_video.mp4
|
|
15
|
+
response:
|
|
16
|
+
body:
|
|
17
|
+
string: !!binary |
|
|
18
|
+
AAAAHGZ0eXBtcDQyAAAAAWlzb21tcDQxbXA0MgAAAAFtZGF0AAAAAAAJiusAAAKsBgX//6jcRem9
|
|
19
|
+
YAAAHwwAACZMAACPRQAAM90AAB9FAAAhvwAAjNgAAEHMAAAgtQAAIdoAAAAYc3RjbwAAAAAAAAAC
|
|
20
|
+
AAAALAAHT2I=
|
|
21
|
+
headers:
|
|
22
|
+
accept-ranges:
|
|
23
|
+
- bytes
|
|
24
|
+
access-control-allow-origin:
|
|
25
|
+
- "*"
|
|
26
|
+
cache-control:
|
|
27
|
+
- max-age=300
|
|
28
|
+
connection:
|
|
29
|
+
- keep-alive
|
|
30
|
+
content-length:
|
|
31
|
+
- "122"
|
|
32
|
+
content-security-policy:
|
|
33
|
+
- default-src 'none'; style-src 'unsafe-inline'; sandbox
|
|
34
|
+
content-type:
|
|
35
|
+
- application/octet-stream
|
|
36
|
+
cross-origin-resource-policy:
|
|
37
|
+
- cross-origin
|
|
38
|
+
etag:
|
|
39
|
+
- W/"0e8fc2491b5d905053d769cebf41efa65670fdce574bc3d0a132431e025608d7"
|
|
40
|
+
expires:
|
|
41
|
+
- Sun, 01 Jun 2025 00:07:45 GMT
|
|
42
|
+
source-age:
|
|
43
|
+
- "105"
|
|
44
|
+
strict-transport-security:
|
|
45
|
+
- max-age=31536000
|
|
46
|
+
vary:
|
|
47
|
+
- Authorization,Accept-Encoding
|
|
48
|
+
status:
|
|
49
|
+
code: 200
|
|
50
|
+
message: OK
|
|
51
|
+
version: 1
|
pydantic_ai-0.2.18/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
body: ""
|
|
4
|
+
headers:
|
|
5
|
+
accept:
|
|
6
|
+
- "*/*"
|
|
7
|
+
accept-encoding:
|
|
8
|
+
- gzip, deflate
|
|
9
|
+
connection:
|
|
10
|
+
- keep-alive
|
|
11
|
+
host:
|
|
12
|
+
- raw.githubusercontent.com
|
|
13
|
+
method: GET
|
|
14
|
+
uri: https://raw.githubusercontent.com/pydantic/pydantic-ai/refs/heads/main/docs/help.md
|
|
15
|
+
response:
|
|
16
|
+
body:
|
|
17
|
+
string: |
|
|
18
|
+
# Getting Help
|
|
19
|
+
|
|
20
|
+
If you need help getting started with PydanticAI or with advanced usage, the following sources may be useful.
|
|
21
|
+
|
|
22
|
+
## :simple-slack: Slack
|
|
23
|
+
|
|
24
|
+
Join the `#pydantic-ai` channel in the [Pydantic Slack][slack] to ask questions, get help, and chat about PydanticAI. There's also channels for Pydantic, Logfire, and FastUI.
|
|
25
|
+
|
|
26
|
+
If you're on a [Logfire][logfire] Pro plan, you can also get a dedicated private slack collab channel with us.
|
|
27
|
+
|
|
28
|
+
## :simple-github: GitHub Issues
|
|
29
|
+
|
|
30
|
+
The [PydanticAI GitHub Issues][github-issues] are a great place to ask questions and give us feedback.
|
|
31
|
+
|
|
32
|
+
[slack]: https://logfire.pydantic.dev/docs/join-slack/
|
|
33
|
+
[github-issues]: https://github.com/pydantic/pydantic-ai/issues
|
|
34
|
+
[logfire]: https://pydantic.dev/logfire
|
|
35
|
+
headers:
|
|
36
|
+
accept-ranges:
|
|
37
|
+
- bytes
|
|
38
|
+
access-control-allow-origin:
|
|
39
|
+
- "*"
|
|
40
|
+
cache-control:
|
|
41
|
+
- max-age=300
|
|
42
|
+
connection:
|
|
43
|
+
- keep-alive
|
|
44
|
+
content-length:
|
|
45
|
+
- "737"
|
|
46
|
+
content-security-policy:
|
|
47
|
+
- default-src 'none'; style-src 'unsafe-inline'; sandbox
|
|
48
|
+
cross-origin-resource-policy:
|
|
49
|
+
- cross-origin
|
|
50
|
+
etag:
|
|
51
|
+
- W/"ac68af1e83d8ab533a0b86ab888c49b56225d78e0152e93ec97f3bae1c3fdc2d"
|
|
52
|
+
expires:
|
|
53
|
+
- Sun, 01 Jun 2025 23:17:48 GMT
|
|
54
|
+
source-age:
|
|
55
|
+
- "0"
|
|
56
|
+
strict-transport-security:
|
|
57
|
+
- max-age=31536000
|
|
58
|
+
vary:
|
|
59
|
+
- Authorization,Accept-Encoding
|
|
60
|
+
status:
|
|
61
|
+
code: 200
|
|
62
|
+
message: OK
|
|
63
|
+
version: 1
|
pydantic_ai-0.2.18/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
headers:
|
|
4
|
+
accept:
|
|
5
|
+
- '*/*'
|
|
6
|
+
accept-encoding:
|
|
7
|
+
- gzip, deflate
|
|
8
|
+
connection:
|
|
9
|
+
- keep-alive
|
|
10
|
+
content-length:
|
|
11
|
+
- '168'
|
|
12
|
+
content-type:
|
|
13
|
+
- application/json
|
|
14
|
+
host:
|
|
15
|
+
- generativelanguage.googleapis.com
|
|
16
|
+
method: POST
|
|
17
|
+
parsed_body:
|
|
18
|
+
contents:
|
|
19
|
+
- parts:
|
|
20
|
+
- text: What is the main content of this URL?
|
|
21
|
+
- fileData:
|
|
22
|
+
fileUri: https://youtu.be/lCdaVNyHtjU
|
|
23
|
+
mimeType: video/mp4
|
|
24
|
+
role: user
|
|
25
|
+
uri: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent
|
|
26
|
+
response:
|
|
27
|
+
headers:
|
|
28
|
+
alt-svc:
|
|
29
|
+
- h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
|
|
30
|
+
content-length:
|
|
31
|
+
- '1059'
|
|
32
|
+
content-type:
|
|
33
|
+
- application/json; charset=UTF-8
|
|
34
|
+
server-timing:
|
|
35
|
+
- gfet4t7; dur=5843
|
|
36
|
+
transfer-encoding:
|
|
37
|
+
- chunked
|
|
38
|
+
vary:
|
|
39
|
+
- Origin
|
|
40
|
+
- X-Origin
|
|
41
|
+
- Referer
|
|
42
|
+
parsed_body:
|
|
43
|
+
candidates:
|
|
44
|
+
- avgLogprobs: -0.2758338186475966
|
|
45
|
+
content:
|
|
46
|
+
parts:
|
|
47
|
+
- text: The main content of the URL is an analysis of recent 404 HTTP responses. The analysis identifies several
|
|
48
|
+
patterns, including the most common endpoints with 404 errors, request patterns (such as all requests being
|
|
49
|
+
GET requests), timeline-related issues, and configuration/authentication problems. The analysis also provides
|
|
50
|
+
recommendations for addressing the 404 errors.
|
|
51
|
+
role: model
|
|
52
|
+
finishReason: STOP
|
|
53
|
+
modelVersion: gemini-2.0-flash
|
|
54
|
+
usageMetadata:
|
|
55
|
+
candidatesTokenCount: 72
|
|
56
|
+
candidatesTokensDetails:
|
|
57
|
+
- modality: TEXT
|
|
58
|
+
tokenCount: 72
|
|
59
|
+
promptTokenCount: 9
|
|
60
|
+
promptTokensDetails:
|
|
61
|
+
- modality: TEXT
|
|
62
|
+
tokenCount: 9
|
|
63
|
+
- modality: VIDEO
|
|
64
|
+
- modality: AUDIO
|
|
65
|
+
totalTokenCount: 81
|
|
66
|
+
status:
|
|
67
|
+
code: 200
|
|
68
|
+
message: OK
|
|
69
|
+
version: 1
|