pydantic-ai 0.7.4__tar.gz → 0.7.6__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.7.4 → pydantic_ai-0.7.6}/PKG-INFO +3 -3
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/conftest.py +8 -3
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_dataset.py +2 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/json_body_serializer.py +1 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +65 -0
- pydantic_ai-0.7.6/tests/models/cassettes/test_openai/test_document_as_binary_content_input_with_tool.yaml +211 -0
- pydantic_ai-0.7.6/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider.yaml +69 -0
- pydantic_ai-0.7.6/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_harmony.yaml +70 -0
- pydantic_ai-0.7.6/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_qwen_3_coder.yaml +189 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_anthropic.py +25 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_bedrock.py +9 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_cohere.py +10 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_deepseek.py +4 -3
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_gemini.py +12 -7
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_google.py +54 -8
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_groq.py +14 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_huggingface.py +12 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_instrumented.py +366 -102
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_mistral.py +31 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_model.py +8 -8
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_model_names.py +26 -2
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_openai.py +161 -71
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_openai_responses.py +21 -3
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_anthropic.py +11 -19
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_azure.py +4 -4
- pydantic_ai-0.7.6/tests/providers/test_cerebras.py +86 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_deepseek.py +2 -2
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_grok.py +2 -2
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_heroku.py +3 -3
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_moonshotai.py +2 -2
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_openrouter.py +2 -2
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_agent.py +2 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_cli.py +3 -2
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_examples.py +5 -4
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_live.py +4 -4
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_logfire.py +311 -147
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_mcp.py +36 -5
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_streaming.py +13 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_temporal.py +4 -17
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_tenacity.py +121 -27
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_usage_limits.py +2 -7
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/.gitignore +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/LICENSE +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/Makefile +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/README.md +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/pyproject.toml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/__init__.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/assets/product_name.txt +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_agent_with_server_not_running.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_audio_resource_link.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_image_resource_link.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_mcp/test_tool_returning_text_resource_link.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_complex_agent_run.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_complex_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_complex_agent_run_stream_in_workflow.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_logfire_plugin.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_multiple_agents.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_simple_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_temporal_agent_iter.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_temporal_agent_override_deps_in_workflow.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_temporal_agent_run.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_temporal_agent_run_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_temporal_agent_run_sync.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_temporal_agent_sync_tool_activity_disabled.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_temporal_agent_with_dataclass_deps_as_dict.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_temporal_agent_with_non_dict_deps.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/cassettes/test_temporal/test_temporal_agent_with_unserializable_deps_type.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/__init__.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/evals/utils.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/example_modules/README.md +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/example_modules/mcp_server.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/ext/__init__.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/ext/test_langchain.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/graph/__init__.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/graph/test_state.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/import_examples.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/mcp_server.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/__init__.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_pass_history_to_another_provider.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_receive_history_from_another_provider.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_download_item/test_download_item_audio_mpeg.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_code_execution_tool.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_empty_assistant_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_receive_web_search_history_from_another_provider.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_server_tool_receive_history_from_another_provider.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_url_context_tool.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_usage_limit_exceeded.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_usage_limit_not_exceeded.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_web_search_tool.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_model_youtube_video_url_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_google/test_google_vertexai_model_usage_limit_exceeded.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_groq/test_groq_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_hf_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[Qwen-Qwen2.5-72B-Instruct].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[deepseek-ai-DeepSeek-R1-0528].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[meta-llama-Llama-3.3-70B-Instruct].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_request_simple_usage.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_simple_completion.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_huggingface/test_stream_completion.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_invalid_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_model_settings_temperature_ignored_on_gpt_5.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_responses_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_web_search_tool.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_web_search_tool_model_not_supported.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_openai_web_search_tool_with_user_location.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_system_prompt_role_o1_mini.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_text_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai/test_valid_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_tool.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_tool_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_invalid_region.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_user_location.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_verbosity.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_download_item.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_gemini_vertex.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_mcp_sampling.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_model_request_parameters.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_model_settings.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/models/test_model_test.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/parts_from_messages.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/__init__.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_fireworks.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_github.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_huggingface.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_ollama.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_together.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/providers/test_vercel.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_a2a.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_ag_ui.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_builtin_tools.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_deps.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_direct.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_history_processor.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_messages.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_settings.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_thinking_part.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_tools.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_toolsets.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/test_utils.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/typed_agent.py +0 -0
- {pydantic_ai-0.7.4 → pydantic_ai-0.7.6}/tests/typed_graph.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.6
|
|
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,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[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,mcp,mistral,openai,retries,temporal,vertexai]==0.7.
|
|
31
|
+
Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,mcp,mistral,openai,retries,temporal,vertexai]==0.7.6
|
|
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.7.
|
|
35
|
+
Requires-Dist: pydantic-ai-examples==0.7.6; extra == 'examples'
|
|
36
36
|
Provides-Extra: logfire
|
|
37
37
|
Requires-Dist: logfire>=3.14.1; extra == 'logfire'
|
|
38
38
|
Description-Content-Type: text/markdown
|
|
@@ -390,6 +390,11 @@ def heroku_inference_key() -> str:
|
|
|
390
390
|
return os.getenv('HEROKU_INFERENCE_KEY', 'mock-api-key')
|
|
391
391
|
|
|
392
392
|
|
|
393
|
+
@pytest.fixture(scope='session')
|
|
394
|
+
def cerebras_api_key() -> str:
|
|
395
|
+
return os.getenv('CEREBRAS_API_KEY', 'mock-api-key')
|
|
396
|
+
|
|
397
|
+
|
|
393
398
|
@pytest.fixture(scope='session')
|
|
394
399
|
def bedrock_provider():
|
|
395
400
|
try:
|
|
@@ -431,7 +436,7 @@ def vertex_provider_auth(mocker: MockerFixture) -> None: # pragma: lax no cover
|
|
|
431
436
|
return False
|
|
432
437
|
|
|
433
438
|
return_value = (NoOpCredentials(), 'pydantic-ai')
|
|
434
|
-
mocker.patch.object(_api_client, '
|
|
439
|
+
mocker.patch.object(_api_client, 'load_auth', return_value=return_value)
|
|
435
440
|
|
|
436
441
|
|
|
437
442
|
@pytest.fixture()
|
|
@@ -476,10 +481,10 @@ def model(
|
|
|
476
481
|
|
|
477
482
|
return TestModel()
|
|
478
483
|
elif request.param == 'openai':
|
|
479
|
-
from pydantic_ai.models.openai import
|
|
484
|
+
from pydantic_ai.models.openai import OpenAIChatModel
|
|
480
485
|
from pydantic_ai.providers.openai import OpenAIProvider
|
|
481
486
|
|
|
482
|
-
return
|
|
487
|
+
return OpenAIChatModel('o3-mini', provider=OpenAIProvider(api_key=openai_api_key))
|
|
483
488
|
elif request.param == 'anthropic':
|
|
484
489
|
from pydantic_ai.models.anthropic import AnthropicModel
|
|
485
490
|
from pydantic_ai.providers.anthropic import AnthropicProvider
|
|
@@ -69,6 +69,7 @@ def serialize(cassette_dict: Any): # pragma: lax no cover
|
|
|
69
69
|
# Responses will have the body under a field called 'string'
|
|
70
70
|
body = body.get('string')
|
|
71
71
|
if body is not None:
|
|
72
|
+
# NOTE(Marcelo): This doesn't handle gzip compression.
|
|
72
73
|
data['parsed_body'] = json.loads(body) # pyright: ignore[reportUnknownArgumentType]
|
|
73
74
|
if 'access_token' in data['parsed_body']:
|
|
74
75
|
data['parsed_body']['access_token'] = 'scrubbed'
|
|
@@ -83,4 +83,69 @@ interactions:
|
|
|
83
83
|
status:
|
|
84
84
|
code: 200
|
|
85
85
|
message: OK
|
|
86
|
+
- request:
|
|
87
|
+
body: ''
|
|
88
|
+
headers:
|
|
89
|
+
accept:
|
|
90
|
+
- application/json
|
|
91
|
+
connection:
|
|
92
|
+
- keep-alive
|
|
93
|
+
host:
|
|
94
|
+
- api.cerebras.ai
|
|
95
|
+
method: GET
|
|
96
|
+
uri: https://api.cerebras.ai/v1/models
|
|
97
|
+
response:
|
|
98
|
+
headers:
|
|
99
|
+
alt-svc:
|
|
100
|
+
- h3=":443"; ma=86400
|
|
101
|
+
content-length:
|
|
102
|
+
- '762'
|
|
103
|
+
content-type:
|
|
104
|
+
- application/json
|
|
105
|
+
referrer-policy:
|
|
106
|
+
- strict-origin-when-cross-origin
|
|
107
|
+
strict-transport-security:
|
|
108
|
+
- max-age=3600; includeSubDomains
|
|
109
|
+
parsed_body:
|
|
110
|
+
data:
|
|
111
|
+
- created: 0
|
|
112
|
+
id: llama-4-maverick-17b-128e-instruct
|
|
113
|
+
object: model
|
|
114
|
+
owned_by: Cerebras
|
|
115
|
+
- created: 0
|
|
116
|
+
id: qwen-3-32b
|
|
117
|
+
object: model
|
|
118
|
+
owned_by: Cerebras
|
|
119
|
+
- created: 0
|
|
120
|
+
id: qwen-3-235b-a22b-instruct-2507
|
|
121
|
+
object: model
|
|
122
|
+
owned_by: Cerebras
|
|
123
|
+
- created: 0
|
|
124
|
+
id: llama-4-scout-17b-16e-instruct
|
|
125
|
+
object: model
|
|
126
|
+
owned_by: Cerebras
|
|
127
|
+
- created: 0
|
|
128
|
+
id: gpt-oss-120b
|
|
129
|
+
object: model
|
|
130
|
+
owned_by: Cerebras
|
|
131
|
+
- created: 0
|
|
132
|
+
id: qwen-3-coder-480b
|
|
133
|
+
object: model
|
|
134
|
+
owned_by: Cerebras
|
|
135
|
+
- created: 0
|
|
136
|
+
id: llama-3.3-70b
|
|
137
|
+
object: model
|
|
138
|
+
owned_by: Cerebras
|
|
139
|
+
- created: 0
|
|
140
|
+
id: llama3.1-8b
|
|
141
|
+
object: model
|
|
142
|
+
owned_by: Cerebras
|
|
143
|
+
- created: 0
|
|
144
|
+
id: qwen-3-235b-a22b-thinking-2507
|
|
145
|
+
object: model
|
|
146
|
+
owned_by: Cerebras
|
|
147
|
+
object: list
|
|
148
|
+
status:
|
|
149
|
+
code: 200
|
|
150
|
+
message: OK
|
|
86
151
|
version: 1
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
headers:
|
|
4
|
+
accept:
|
|
5
|
+
- application/json
|
|
6
|
+
accept-encoding:
|
|
7
|
+
- gzip, deflate
|
|
8
|
+
connection:
|
|
9
|
+
- keep-alive
|
|
10
|
+
content-length:
|
|
11
|
+
- "18226"
|
|
12
|
+
content-type:
|
|
13
|
+
- application/json
|
|
14
|
+
host:
|
|
15
|
+
- api.openai.com
|
|
16
|
+
method: POST
|
|
17
|
+
parsed_body:
|
|
18
|
+
messages:
|
|
19
|
+
- content:
|
|
20
|
+
- text: What is the main content on this document? Use the get_upper_case tool to get the upper case of the text.
|
|
21
|
+
type: text
|
|
22
|
+
- file:
|
|
23
|
+
file_data: data:application/pdf;base64,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CmVuZG9iagoKOSAwIG9iago8PC9UeXBlL0ZvbnQvU3VidHlwZS9UcnVlVHlwZS9CYXNlRm9udC9CQUFBQUErQXJpYWwtQm9sZE1UCi9GaXJzdENoYXIgMAovTGFzdENoYXIgMTEKL1dpZHRoc1s3NTAgNzIyIDYxMCA4ODkgNTU2IDI3NyA2NjYgNjEwIDMzMyAyNzcgMjc3IDU1NiBdCi9Gb250RGVzY3JpcHRvciA3IDAgUgovVG9Vbmljb2RlIDggMCBSCj4+CmVuZG9iagoKMTAgMCBvYmoKPDwKL0YxIDkgMCBSCj4+CmVuZG9iagoKMTEgMCBvYmoKPDwvRm9udCAxMCAwIFIKL1Byb2NTZXRbL1BERi9UZXh0XT4+CmVuZG9iagoKMSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDQgMCBSL1Jlc291cmNlcyAxMSAwIFIvTWVkaWFCb3hbMCAwIDU5NSA4NDJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDIgMCBSPj4KZW5kb2JqCgoxMiAwIG9iago8PC9Db3VudCAxL0ZpcnN0IDEzIDAgUi9MYXN0IDEzIDAgUgo+PgplbmRvYmoKCjEzIDAgb2JqCjw8L1RpdGxlPEZFRkYwMDQ0MDA3NTAwNkQwMDZEMDA3OTAwMjAwMDUwMDA0NDAwNDYwMDIwMDA2NjAwNjkwMDZDMDA2NT4KL0Rlc3RbMSAwIFIvWFlaIDU2LjcgNzczLjMgMF0vUGFyZW50IDEyIDAgUj4+CmVuZG9iagoKNCAwIG9iago8PC9UeXBlL1BhZ2VzCi9SZXNvdXJjZXMgMTEgMCBSCi9NZWRpYUJveFsgMCAwIDU5NSA4NDIgXQovS2lkc1sgMSAwIFIgXQovQ291bnQgMT4+CmVuZG9iagoKMTQgMCBvYmoKPDwvVHlwZS9DYXRhbG9nL1BhZ2VzIDQgMCBSCi9PdXRsaW5lcyAxMiAwIFIKPj4KZW5kb2JqCgoxNSAwIG9iago8PC9BdXRob3I8RkVGRjAwNDUwMDc2MDA2MTAwNkUwMDY3MDA2NTAwNkMwMDZGMDA3MzAwMjAwMDU2MDA2QzAwNjEwMDYzMDA2ODAwNkYwMDY3MDA2OTAwNjEwMDZFMDA2RTAwNjkwMDczPgovQ3JlYXRvcjxGRUZGMDA1NzAwNzIwMDY5MDA3NDAwNjUwMDcyPgovUHJvZHVjZXI8RkVGRjAwNEYwMDcwMDA2NTAwNkUwMDRGMDA2NjAwNjYwMDY5MDA2MzAwNjUwMDJFMDA2RjAwNzIwMDY3MDAyMDAwMzIwMDJFMDAzMT4KL0NyZWF0aW9uRGF0ZShEOjIwMDcwMjIzMTc1NjM3KzAyJzAwJyk+PgplbmRvYmoKCnhyZWYKMCAxNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMTE5OTcgMDAwMDAgbiAKMDAwMDAwMDAxOSAwMDAwMCBuIAowMDAwMDAwMjI0IDAwMDAwIG4gCjAwMDAwMTIzMzAgMDAwMDAgbiAKMDAwMDAwMDI0NCAwMDAwMCBuIAowMDAwMDExMTU0IDAwMDAwIG4gCjAwMDAwMTExNzYgMDAwMDAgbiAKMDAwMDAxMTM2OCAwMDAwMCBuIAowMDAwMDExNzA5IDAwMDAwIG4gCjAwMDAwMTE5MTAgMDAwMDAgbiAKMDAwMDAxMTk0MyAwMDAwMCBuIAowMDAwMDEyMTQwIDAwMDAwIG4gCjAwMDAwMTIxOTYgMDAwMDAgbiAKMDAwMDAxMjQyOSAwMDAwMCBuIAowMDAwMDEyNDk0IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSAxNi9Sb290IDE0IDAgUgovSW5mbyAxNSAwIFIKL0lEIFsgPEY3RDc3QjNEMjJCOUY5MjgyOUQ0OUZGNUQ3OEI4RjI4Pgo8RjdENzdCM0QyMkI5RjkyODI5RDQ5RkY1RDc4QjhGMjg+IF0KPj4Kc3RhcnR4cmVmCjEyNzg3CiUlRU9GCg==
|
|
24
|
+
filename: filename.pdf
|
|
25
|
+
type: file
|
|
26
|
+
role: user
|
|
27
|
+
model: gpt-4o
|
|
28
|
+
stream: false
|
|
29
|
+
tool_choice: auto
|
|
30
|
+
tools:
|
|
31
|
+
- function:
|
|
32
|
+
description: ""
|
|
33
|
+
name: get_upper_case
|
|
34
|
+
parameters:
|
|
35
|
+
additionalProperties: false
|
|
36
|
+
properties:
|
|
37
|
+
text:
|
|
38
|
+
type: string
|
|
39
|
+
required:
|
|
40
|
+
- text
|
|
41
|
+
type: object
|
|
42
|
+
strict: true
|
|
43
|
+
type: function
|
|
44
|
+
uri: https://api.openai.com/v1/chat/completions
|
|
45
|
+
response:
|
|
46
|
+
headers:
|
|
47
|
+
access-control-expose-headers:
|
|
48
|
+
- X-Request-ID
|
|
49
|
+
alt-svc:
|
|
50
|
+
- h3=":443"; ma=86400
|
|
51
|
+
connection:
|
|
52
|
+
- keep-alive
|
|
53
|
+
content-length:
|
|
54
|
+
- "1093"
|
|
55
|
+
content-type:
|
|
56
|
+
- application/json
|
|
57
|
+
openai-organization:
|
|
58
|
+
- coplane
|
|
59
|
+
openai-processing-ms:
|
|
60
|
+
- "788"
|
|
61
|
+
openai-version:
|
|
62
|
+
- "2020-10-01"
|
|
63
|
+
strict-transport-security:
|
|
64
|
+
- max-age=31536000; includeSubDomains; preload
|
|
65
|
+
transfer-encoding:
|
|
66
|
+
- chunked
|
|
67
|
+
parsed_body:
|
|
68
|
+
choices:
|
|
69
|
+
- finish_reason: tool_calls
|
|
70
|
+
index: 0
|
|
71
|
+
logprobs: null
|
|
72
|
+
message:
|
|
73
|
+
annotations: []
|
|
74
|
+
content: null
|
|
75
|
+
refusal: null
|
|
76
|
+
role: assistant
|
|
77
|
+
tool_calls:
|
|
78
|
+
- function:
|
|
79
|
+
arguments: '{"text":"Dummy PDF file"}'
|
|
80
|
+
name: get_upper_case
|
|
81
|
+
id: call_qkJ5pxpAXuEdMLTHIwrUk9Q4
|
|
82
|
+
type: function
|
|
83
|
+
created: 1755847546
|
|
84
|
+
id: chatcmpl-C7GRePTkJTuqqIeMkeTufGjUlOeDt
|
|
85
|
+
model: gpt-4o-2024-08-06
|
|
86
|
+
object: chat.completion
|
|
87
|
+
service_tier: default
|
|
88
|
+
system_fingerprint: fp_46bff0e0c8
|
|
89
|
+
usage:
|
|
90
|
+
completion_tokens: 17
|
|
91
|
+
completion_tokens_details:
|
|
92
|
+
accepted_prediction_tokens: 0
|
|
93
|
+
audio_tokens: 0
|
|
94
|
+
reasoning_tokens: 0
|
|
95
|
+
rejected_prediction_tokens: 0
|
|
96
|
+
prompt_tokens: 281
|
|
97
|
+
prompt_tokens_details:
|
|
98
|
+
audio_tokens: 0
|
|
99
|
+
cached_tokens: 0
|
|
100
|
+
total_tokens: 298
|
|
101
|
+
status:
|
|
102
|
+
code: 200
|
|
103
|
+
message: OK
|
|
104
|
+
- request:
|
|
105
|
+
headers:
|
|
106
|
+
accept:
|
|
107
|
+
- application/json
|
|
108
|
+
accept-encoding:
|
|
109
|
+
- gzip, deflate
|
|
110
|
+
connection:
|
|
111
|
+
- keep-alive
|
|
112
|
+
content-length:
|
|
113
|
+
- "18505"
|
|
114
|
+
content-type:
|
|
115
|
+
- application/json
|
|
116
|
+
host:
|
|
117
|
+
- api.openai.com
|
|
118
|
+
method: POST
|
|
119
|
+
parsed_body:
|
|
120
|
+
messages:
|
|
121
|
+
- content:
|
|
122
|
+
- text: What is the main content on this document? Use the get_upper_case tool to get the upper case of the text.
|
|
123
|
+
type: text
|
|
124
|
+
- file:
|
|
125
|
+
file_data: data:application/pdf;base64,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CmVuZG9iagoKOSAwIG9iago8PC9UeXBlL0ZvbnQvU3VidHlwZS9UcnVlVHlwZS9CYXNlRm9udC9CQUFBQUErQXJpYWwtQm9sZE1UCi9GaXJzdENoYXIgMAovTGFzdENoYXIgMTEKL1dpZHRoc1s3NTAgNzIyIDYxMCA4ODkgNTU2IDI3NyA2NjYgNjEwIDMzMyAyNzcgMjc3IDU1NiBdCi9Gb250RGVzY3JpcHRvciA3IDAgUgovVG9Vbmljb2RlIDggMCBSCj4+CmVuZG9iagoKMTAgMCBvYmoKPDwKL0YxIDkgMCBSCj4+CmVuZG9iagoKMTEgMCBvYmoKPDwvRm9udCAxMCAwIFIKL1Byb2NTZXRbL1BERi9UZXh0XT4+CmVuZG9iagoKMSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDQgMCBSL1Jlc291cmNlcyAxMSAwIFIvTWVkaWFCb3hbMCAwIDU5NSA4NDJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDIgMCBSPj4KZW5kb2JqCgoxMiAwIG9iago8PC9Db3VudCAxL0ZpcnN0IDEzIDAgUi9MYXN0IDEzIDAgUgo+PgplbmRvYmoKCjEzIDAgb2JqCjw8L1RpdGxlPEZFRkYwMDQ0MDA3NTAwNkQwMDZEMDA3OTAwMjAwMDUwMDA0NDAwNDYwMDIwMDA2NjAwNjkwMDZDMDA2NT4KL0Rlc3RbMSAwIFIvWFlaIDU2LjcgNzczLjMgMF0vUGFyZW50IDEyIDAgUj4+CmVuZG9iagoKNCAwIG9iago8PC9UeXBlL1BhZ2VzCi9SZXNvdXJjZXMgMTEgMCBSCi9NZWRpYUJveFsgMCAwIDU5NSA4NDIgXQovS2lkc1sgMSAwIFIgXQovQ291bnQgMT4+CmVuZG9iagoKMTQgMCBvYmoKPDwvVHlwZS9DYXRhbG9nL1BhZ2VzIDQgMCBSCi9PdXRsaW5lcyAxMiAwIFIKPj4KZW5kb2JqCgoxNSAwIG9iago8PC9BdXRob3I8RkVGRjAwNDUwMDc2MDA2MTAwNkUwMDY3MDA2NTAwNkMwMDZGMDA3MzAwMjAwMDU2MDA2QzAwNjEwMDYzMDA2ODAwNkYwMDY3MDA2OTAwNjEwMDZFMDA2RTAwNjkwMDczPgovQ3JlYXRvcjxGRUZGMDA1NzAwNzIwMDY5MDA3NDAwNjUwMDcyPgovUHJvZHVjZXI8RkVGRjAwNEYwMDcwMDA2NTAwNkUwMDRGMDA2NjAwNjYwMDY5MDA2MzAwNjUwMDJFMDA2RjAwNzIwMDY3MDAyMDAwMzIwMDJFMDAzMT4KL0NyZWF0aW9uRGF0ZShEOjIwMDcwMjIzMTc1NjM3KzAyJzAwJyk+PgplbmRvYmoKCnhyZWYKMCAxNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMTE5OTcgMDAwMDAgbiAKMDAwMDAwMDAxOSAwMDAwMCBuIAowMDAwMDAwMjI0IDAwMDAwIG4gCjAwMDAwMTIzMzAgMDAwMDAgbiAKMDAwMDAwMDI0NCAwMDAwMCBuIAowMDAwMDExMTU0IDAwMDAwIG4gCjAwMDAwMTExNzYgMDAwMDAgbiAKMDAwMDAxMTM2OCAwMDAwMCBuIAowMDAwMDExNzA5IDAwMDAwIG4gCjAwMDAwMTE5MTAgMDAwMDAgbiAKMDAwMDAxMTk0MyAwMDAwMCBuIAowMDAwMDEyMTQwIDAwMDAwIG4gCjAwMDAwMTIxOTYgMDAwMDAgbiAKMDAwMDAxMjQyOSAwMDAwMCBuIAowMDAwMDEyNDk0IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSAxNi9Sb290IDE0IDAgUgovSW5mbyAxNSAwIFIKL0lEIFsgPEY3RDc3QjNEMjJCOUY5MjgyOUQ0OUZGNUQ3OEI4RjI4Pgo8RjdENzdCM0QyMkI5RjkyODI5RDQ5RkY1RDc4QjhGMjg+IF0KPj4Kc3RhcnR4cmVmCjEyNzg3CiUlRU9GCg==
|
|
126
|
+
filename: filename.pdf
|
|
127
|
+
type: file
|
|
128
|
+
role: user
|
|
129
|
+
- content: null
|
|
130
|
+
role: assistant
|
|
131
|
+
tool_calls:
|
|
132
|
+
- function:
|
|
133
|
+
arguments: '{"text":"Dummy PDF file"}'
|
|
134
|
+
name: get_upper_case
|
|
135
|
+
id: call_qkJ5pxpAXuEdMLTHIwrUk9Q4
|
|
136
|
+
type: function
|
|
137
|
+
- content: DUMMY PDF FILE
|
|
138
|
+
role: tool
|
|
139
|
+
tool_call_id: call_qkJ5pxpAXuEdMLTHIwrUk9Q4
|
|
140
|
+
model: gpt-4o
|
|
141
|
+
stream: false
|
|
142
|
+
tool_choice: auto
|
|
143
|
+
tools:
|
|
144
|
+
- function:
|
|
145
|
+
description: ""
|
|
146
|
+
name: get_upper_case
|
|
147
|
+
parameters:
|
|
148
|
+
additionalProperties: false
|
|
149
|
+
properties:
|
|
150
|
+
text:
|
|
151
|
+
type: string
|
|
152
|
+
required:
|
|
153
|
+
- text
|
|
154
|
+
type: object
|
|
155
|
+
strict: true
|
|
156
|
+
type: function
|
|
157
|
+
uri: https://api.openai.com/v1/chat/completions
|
|
158
|
+
response:
|
|
159
|
+
headers:
|
|
160
|
+
access-control-expose-headers:
|
|
161
|
+
- X-Request-ID
|
|
162
|
+
alt-svc:
|
|
163
|
+
- h3=":443"; ma=86400
|
|
164
|
+
connection:
|
|
165
|
+
- keep-alive
|
|
166
|
+
content-length:
|
|
167
|
+
- "872"
|
|
168
|
+
content-type:
|
|
169
|
+
- application/json
|
|
170
|
+
openai-organization:
|
|
171
|
+
- coplane
|
|
172
|
+
openai-processing-ms:
|
|
173
|
+
- "1608"
|
|
174
|
+
openai-version:
|
|
175
|
+
- "2020-10-01"
|
|
176
|
+
strict-transport-security:
|
|
177
|
+
- max-age=31536000; includeSubDomains; preload
|
|
178
|
+
transfer-encoding:
|
|
179
|
+
- chunked
|
|
180
|
+
parsed_body:
|
|
181
|
+
choices:
|
|
182
|
+
- finish_reason: stop
|
|
183
|
+
index: 0
|
|
184
|
+
logprobs: null
|
|
185
|
+
message:
|
|
186
|
+
annotations: []
|
|
187
|
+
content: The main content of the document is "DUMMY PDF FILE" in uppercase.
|
|
188
|
+
refusal: null
|
|
189
|
+
role: assistant
|
|
190
|
+
created: 1755847548
|
|
191
|
+
id: chatcmpl-C7GRg2vXs2wpdpyTTmmgVXZP4SiAP
|
|
192
|
+
model: gpt-4o-2024-08-06
|
|
193
|
+
object: chat.completion
|
|
194
|
+
service_tier: default
|
|
195
|
+
system_fingerprint: fp_46bff0e0c8
|
|
196
|
+
usage:
|
|
197
|
+
completion_tokens: 17
|
|
198
|
+
completion_tokens_details:
|
|
199
|
+
accepted_prediction_tokens: 0
|
|
200
|
+
audio_tokens: 0
|
|
201
|
+
reasoning_tokens: 0
|
|
202
|
+
rejected_prediction_tokens: 0
|
|
203
|
+
prompt_tokens: 311
|
|
204
|
+
prompt_tokens_details:
|
|
205
|
+
audio_tokens: 0
|
|
206
|
+
cached_tokens: 0
|
|
207
|
+
total_tokens: 328
|
|
208
|
+
status:
|
|
209
|
+
code: 200
|
|
210
|
+
message: OK
|
|
211
|
+
version: 1
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
headers:
|
|
4
|
+
accept:
|
|
5
|
+
- application/json
|
|
6
|
+
accept-encoding:
|
|
7
|
+
- gzip, deflate
|
|
8
|
+
connection:
|
|
9
|
+
- keep-alive
|
|
10
|
+
content-length:
|
|
11
|
+
- '111'
|
|
12
|
+
content-type:
|
|
13
|
+
- application/json
|
|
14
|
+
host:
|
|
15
|
+
- api.cerebras.ai
|
|
16
|
+
method: POST
|
|
17
|
+
parsed_body:
|
|
18
|
+
messages:
|
|
19
|
+
- content: What is the capital of France?
|
|
20
|
+
role: user
|
|
21
|
+
model: llama3.3-70b
|
|
22
|
+
stream: false
|
|
23
|
+
uri: https://api.cerebras.ai/v1/chat/completions
|
|
24
|
+
response:
|
|
25
|
+
headers:
|
|
26
|
+
alt-svc:
|
|
27
|
+
- h3=":443"; ma=86400
|
|
28
|
+
connection:
|
|
29
|
+
- keep-alive
|
|
30
|
+
content-length:
|
|
31
|
+
- '558'
|
|
32
|
+
content-type:
|
|
33
|
+
- application/json
|
|
34
|
+
inference-id:
|
|
35
|
+
- chatcmpl-175bff47-ce89-4fad-bead-62a14f787c49
|
|
36
|
+
referrer-policy:
|
|
37
|
+
- strict-origin-when-cross-origin
|
|
38
|
+
strict-transport-security:
|
|
39
|
+
- max-age=3600; includeSubDomains
|
|
40
|
+
transfer-encoding:
|
|
41
|
+
- chunked
|
|
42
|
+
parsed_body:
|
|
43
|
+
choices:
|
|
44
|
+
- finish_reason: stop
|
|
45
|
+
index: 0
|
|
46
|
+
message:
|
|
47
|
+
content: The capital of France is Paris.
|
|
48
|
+
role: assistant
|
|
49
|
+
created: 1756198141
|
|
50
|
+
id: chatcmpl-175bff47-ce89-4fad-bead-62a14f787c49
|
|
51
|
+
model: llama-3.3-70b
|
|
52
|
+
object: chat.completion
|
|
53
|
+
system_fingerprint: fp_b6a51bb1d26f03ea3772
|
|
54
|
+
time_info:
|
|
55
|
+
completion_time: 0.003633212
|
|
56
|
+
created: 1756198141
|
|
57
|
+
prompt_time: 0.002251218
|
|
58
|
+
queue_time: 0.000199151
|
|
59
|
+
total_time: 0.007346153259277344
|
|
60
|
+
usage:
|
|
61
|
+
completion_tokens: 8
|
|
62
|
+
prompt_tokens: 42
|
|
63
|
+
prompt_tokens_details:
|
|
64
|
+
cached_tokens: 0
|
|
65
|
+
total_tokens: 50
|
|
66
|
+
status:
|
|
67
|
+
code: 200
|
|
68
|
+
message: OK
|
|
69
|
+
version: 1
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
headers:
|
|
4
|
+
accept:
|
|
5
|
+
- application/json
|
|
6
|
+
accept-encoding:
|
|
7
|
+
- gzip, deflate
|
|
8
|
+
connection:
|
|
9
|
+
- keep-alive
|
|
10
|
+
content-length:
|
|
11
|
+
- '111'
|
|
12
|
+
content-type:
|
|
13
|
+
- application/json
|
|
14
|
+
host:
|
|
15
|
+
- api.cerebras.ai
|
|
16
|
+
method: POST
|
|
17
|
+
parsed_body:
|
|
18
|
+
messages:
|
|
19
|
+
- content: What is the capital of France?
|
|
20
|
+
role: user
|
|
21
|
+
model: gpt-oss-120b
|
|
22
|
+
stream: false
|
|
23
|
+
uri: https://api.cerebras.ai/v1/chat/completions
|
|
24
|
+
response:
|
|
25
|
+
headers:
|
|
26
|
+
alt-svc:
|
|
27
|
+
- h3=":443"; ma=86400
|
|
28
|
+
connection:
|
|
29
|
+
- keep-alive
|
|
30
|
+
content-length:
|
|
31
|
+
- '661'
|
|
32
|
+
content-type:
|
|
33
|
+
- application/json
|
|
34
|
+
inference-id:
|
|
35
|
+
- chatcmpl-bc3bbd04-e8df-4ab6-bd82-9fb33726cb93
|
|
36
|
+
referrer-policy:
|
|
37
|
+
- strict-origin-when-cross-origin
|
|
38
|
+
strict-transport-security:
|
|
39
|
+
- max-age=3600; includeSubDomains
|
|
40
|
+
transfer-encoding:
|
|
41
|
+
- chunked
|
|
42
|
+
parsed_body:
|
|
43
|
+
choices:
|
|
44
|
+
- finish_reason: stop
|
|
45
|
+
index: 0
|
|
46
|
+
message:
|
|
47
|
+
content: The capital of France is **Paris**.
|
|
48
|
+
reasoning: 'User asks simple question: capital of France. Answer: Paris. Provide concise answer.'
|
|
49
|
+
role: assistant
|
|
50
|
+
created: 1756199010
|
|
51
|
+
id: chatcmpl-bc3bbd04-e8df-4ab6-bd82-9fb33726cb93
|
|
52
|
+
model: gpt-oss-120b
|
|
53
|
+
object: chat.completion
|
|
54
|
+
system_fingerprint: fp_a5fe16f102a24cf8caf1
|
|
55
|
+
time_info:
|
|
56
|
+
completion_time: 0.026440676
|
|
57
|
+
created: 1756199010
|
|
58
|
+
prompt_time: 0.002999482
|
|
59
|
+
queue_time: 0.000899766
|
|
60
|
+
total_time: 0.03260970115661621
|
|
61
|
+
usage:
|
|
62
|
+
completion_tokens: 36
|
|
63
|
+
prompt_tokens: 74
|
|
64
|
+
prompt_tokens_details:
|
|
65
|
+
cached_tokens: 0
|
|
66
|
+
total_tokens: 110
|
|
67
|
+
status:
|
|
68
|
+
code: 200
|
|
69
|
+
message: OK
|
|
70
|
+
version: 1
|