pydantic-ai-slim 0.6.0__tar.gz → 0.6.1__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-slim might be problematic. Click here for more details.
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/PKG-INFO +4 -4
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/__init__.py +15 -6
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/bedrock.py +24 -6
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/__init__.py +9 -1
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/amazon.py +1 -2
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/meta.py +1 -2
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/qwen.py +1 -2
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/bedrock.py +4 -3
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pyproject.toml +1 -1
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/.gitignore +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/LICENSE +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/README.md +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/__init__.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/__main__.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_a2a.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_agent_graph.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_cli.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_function_schema.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_griffe.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_mcp.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_output.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_parts_manager.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_run_context.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_system_prompt.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_thinking_part.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_tool_manager.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/_utils.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/ag_ui.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/agent.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/common_tools/__init__.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/common_tools/duckduckgo.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/common_tools/tavily.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/direct.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/exceptions.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/ext/__init__.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/ext/aci.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/ext/langchain.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/format_prompt.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/mcp.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/messages.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/anthropic.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/cohere.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/fallback.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/function.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/gemini.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/google.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/groq.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/huggingface.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/instrumented.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/mcp_sampling.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/mistral.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/openai.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/test.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/models/wrapper.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/output.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/_json_schema.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/anthropic.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/cohere.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/deepseek.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/google.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/grok.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/mistral.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/moonshotai.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/profiles/openai.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/__init__.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/anthropic.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/azure.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/cohere.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/deepseek.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/fireworks.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/github.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/google.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/google_gla.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/google_vertex.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/grok.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/groq.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/heroku.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/huggingface.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/mistral.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/moonshotai.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/openai.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/openrouter.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/together.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/providers/vercel.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/py.typed +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/result.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/retries.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/settings.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/tools.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/toolsets/__init__.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/toolsets/abstract.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/toolsets/combined.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/toolsets/deferred.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/toolsets/filtered.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/toolsets/function.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/toolsets/prefixed.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/toolsets/prepared.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/toolsets/renamed.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/toolsets/wrapper.py +0 -0
- {pydantic_ai_slim-0.6.0 → pydantic_ai_slim-0.6.1}/pydantic_ai/usage.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai-slim
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.1
|
|
4
4
|
Summary: Agent Framework / shim to use Pydantic with LLMs, slim package
|
|
5
5
|
Author-email: Samuel Colvin <samuel@pydantic.dev>, Marcelo Trylesinski <marcelotryle@gmail.com>, David Montague <david@pydantic.dev>, Alex Hall <alex@pydantic.dev>, Douwe Maan <douwe@pydantic.dev>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -30,7 +30,7 @@ Requires-Dist: exceptiongroup; python_version < '3.11'
|
|
|
30
30
|
Requires-Dist: griffe>=1.3.2
|
|
31
31
|
Requires-Dist: httpx>=0.27
|
|
32
32
|
Requires-Dist: opentelemetry-api>=1.28.0
|
|
33
|
-
Requires-Dist: pydantic-graph==0.6.
|
|
33
|
+
Requires-Dist: pydantic-graph==0.6.1
|
|
34
34
|
Requires-Dist: pydantic>=2.10
|
|
35
35
|
Requires-Dist: typing-inspection>=0.4.0
|
|
36
36
|
Provides-Extra: a2a
|
|
@@ -41,7 +41,7 @@ Requires-Dist: starlette>=0.45.3; extra == 'ag-ui'
|
|
|
41
41
|
Provides-Extra: anthropic
|
|
42
42
|
Requires-Dist: anthropic>=0.61.0; extra == 'anthropic'
|
|
43
43
|
Provides-Extra: bedrock
|
|
44
|
-
Requires-Dist: boto3>=1.
|
|
44
|
+
Requires-Dist: boto3>=1.39.0; extra == 'bedrock'
|
|
45
45
|
Provides-Extra: cli
|
|
46
46
|
Requires-Dist: argcomplete>=3.5.0; extra == 'cli'
|
|
47
47
|
Requires-Dist: prompt-toolkit>=3; extra == 'cli'
|
|
@@ -51,7 +51,7 @@ Requires-Dist: cohere>=5.16.0; (platform_system != 'Emscripten') and extra == 'c
|
|
|
51
51
|
Provides-Extra: duckduckgo
|
|
52
52
|
Requires-Dist: ddgs>=9.0.0; extra == 'duckduckgo'
|
|
53
53
|
Provides-Extra: evals
|
|
54
|
-
Requires-Dist: pydantic-evals==0.6.
|
|
54
|
+
Requires-Dist: pydantic-evals==0.6.1; extra == 'evals'
|
|
55
55
|
Provides-Extra: google
|
|
56
56
|
Requires-Dist: google-genai>=1.28.0; extra == 'google'
|
|
57
57
|
Provides-Extra: groq
|
|
@@ -217,6 +217,9 @@ KnownModelName = TypeAliasType(
|
|
|
217
217
|
'heroku:claude-3-7-sonnet',
|
|
218
218
|
'heroku:claude-4-sonnet',
|
|
219
219
|
'heroku:claude-3-haiku',
|
|
220
|
+
'heroku:gpt-oss-120b',
|
|
221
|
+
'heroku:nova-lite',
|
|
222
|
+
'heroku:nova-pro',
|
|
220
223
|
'huggingface:Qwen/QwQ-32B',
|
|
221
224
|
'huggingface:Qwen/Qwen2.5-72B-Instruct',
|
|
222
225
|
'huggingface:Qwen/Qwen3-235B-A22B',
|
|
@@ -790,12 +793,18 @@ def get_user_agent() -> str:
|
|
|
790
793
|
def _customize_tool_def(transformer: type[JsonSchemaTransformer], t: ToolDefinition):
|
|
791
794
|
schema_transformer = transformer(t.parameters_json_schema, strict=t.strict)
|
|
792
795
|
parameters_json_schema = schema_transformer.walk()
|
|
793
|
-
|
|
794
|
-
t
|
|
795
|
-
|
|
796
|
+
return replace(
|
|
797
|
+
t,
|
|
798
|
+
parameters_json_schema=parameters_json_schema,
|
|
799
|
+
strict=schema_transformer.is_strict_compatible if t.strict is None else t.strict,
|
|
800
|
+
)
|
|
796
801
|
|
|
797
802
|
|
|
798
803
|
def _customize_output_object(transformer: type[JsonSchemaTransformer], o: OutputObjectDefinition):
|
|
799
|
-
schema_transformer = transformer(o.json_schema, strict=
|
|
800
|
-
|
|
801
|
-
return replace(
|
|
804
|
+
schema_transformer = transformer(o.json_schema, strict=o.strict)
|
|
805
|
+
json_schema = schema_transformer.walk()
|
|
806
|
+
return replace(
|
|
807
|
+
o,
|
|
808
|
+
json_schema=json_schema,
|
|
809
|
+
strict=schema_transformer.is_strict_compatible if o.strict is None else o.strict,
|
|
810
|
+
)
|
|
@@ -59,6 +59,8 @@ if TYPE_CHECKING:
|
|
|
59
59
|
MessageUnionTypeDef,
|
|
60
60
|
PerformanceConfigurationTypeDef,
|
|
61
61
|
PromptVariableValuesTypeDef,
|
|
62
|
+
ReasoningContentBlockOutputTypeDef,
|
|
63
|
+
ReasoningTextBlockTypeDef,
|
|
62
64
|
SystemContentBlockTypeDef,
|
|
63
65
|
ToolChoiceTypeDef,
|
|
64
66
|
ToolConfigurationTypeDef,
|
|
@@ -276,9 +278,10 @@ class BedrockConverseModel(Model):
|
|
|
276
278
|
if reasoning_content := item.get('reasoningContent'):
|
|
277
279
|
reasoning_text = reasoning_content.get('reasoningText')
|
|
278
280
|
if reasoning_text: # pragma: no branch
|
|
279
|
-
thinking_part = ThinkingPart(
|
|
280
|
-
|
|
281
|
-
|
|
281
|
+
thinking_part = ThinkingPart(
|
|
282
|
+
content=reasoning_text['text'],
|
|
283
|
+
signature=reasoning_text.get('signature'),
|
|
284
|
+
)
|
|
282
285
|
items.append(thinking_part)
|
|
283
286
|
if text := item.get('text'):
|
|
284
287
|
items.append(TextPart(content=text))
|
|
@@ -462,8 +465,19 @@ class BedrockConverseModel(Model):
|
|
|
462
465
|
if isinstance(item, TextPart):
|
|
463
466
|
content.append({'text': item.content})
|
|
464
467
|
elif isinstance(item, ThinkingPart):
|
|
465
|
-
|
|
466
|
-
|
|
468
|
+
if BedrockModelProfile.from_profile(self.profile).bedrock_send_back_thinking_parts:
|
|
469
|
+
reasoning_text: ReasoningTextBlockTypeDef = {
|
|
470
|
+
'text': item.content,
|
|
471
|
+
}
|
|
472
|
+
if item.signature:
|
|
473
|
+
reasoning_text['signature'] = item.signature
|
|
474
|
+
reasoning_content: ReasoningContentBlockOutputTypeDef = {
|
|
475
|
+
'reasoningText': reasoning_text,
|
|
476
|
+
}
|
|
477
|
+
content.append({'reasoningContent': reasoning_content})
|
|
478
|
+
else:
|
|
479
|
+
# NOTE: We don't pass the thinking part to Bedrock for models other than Claude since it raises an error.
|
|
480
|
+
pass
|
|
467
481
|
else:
|
|
468
482
|
assert isinstance(item, ToolCallPart)
|
|
469
483
|
content.append(self._map_tool_call(item))
|
|
@@ -610,7 +624,11 @@ class BedrockStreamedResponse(StreamedResponse):
|
|
|
610
624
|
delta = chunk['contentBlockDelta']['delta']
|
|
611
625
|
if 'reasoningContent' in delta:
|
|
612
626
|
if text := delta['reasoningContent'].get('text'):
|
|
613
|
-
yield self._parts_manager.handle_thinking_delta(
|
|
627
|
+
yield self._parts_manager.handle_thinking_delta(
|
|
628
|
+
vendor_part_id=index,
|
|
629
|
+
content=text,
|
|
630
|
+
signature=delta['reasoningContent'].get('signature'),
|
|
631
|
+
)
|
|
614
632
|
else: # pragma: no cover
|
|
615
633
|
warnings.warn(
|
|
616
634
|
f'Only text reasoning content is supported yet, but you got {delta["reasoningContent"]}. '
|
|
@@ -7,7 +7,15 @@ from typing import Callable, Union
|
|
|
7
7
|
from typing_extensions import Self
|
|
8
8
|
|
|
9
9
|
from ..output import StructuredOutputMode
|
|
10
|
-
from ._json_schema import JsonSchemaTransformer
|
|
10
|
+
from ._json_schema import InlineDefsJsonSchemaTransformer, JsonSchemaTransformer
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
'ModelProfile',
|
|
14
|
+
'ModelProfileSpec',
|
|
15
|
+
'DEFAULT_PROFILE',
|
|
16
|
+
'InlineDefsJsonSchemaTransformer',
|
|
17
|
+
'JsonSchemaTransformer',
|
|
18
|
+
]
|
|
11
19
|
|
|
12
20
|
|
|
13
21
|
@dataclass
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations as _annotations
|
|
2
2
|
|
|
3
|
-
from . import ModelProfile
|
|
4
|
-
from ._json_schema import InlineDefsJsonSchemaTransformer
|
|
3
|
+
from . import InlineDefsJsonSchemaTransformer, ModelProfile
|
|
5
4
|
|
|
6
5
|
|
|
7
6
|
def amazon_model_profile(model_name: str) -> ModelProfile | None:
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations as _annotations
|
|
2
2
|
|
|
3
|
-
from . import ModelProfile
|
|
4
|
-
from ._json_schema import InlineDefsJsonSchemaTransformer
|
|
3
|
+
from . import InlineDefsJsonSchemaTransformer, ModelProfile
|
|
5
4
|
|
|
6
5
|
|
|
7
6
|
def meta_model_profile(model_name: str) -> ModelProfile | None:
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations as _annotations
|
|
2
2
|
|
|
3
|
-
from . import ModelProfile
|
|
4
|
-
from ._json_schema import InlineDefsJsonSchemaTransformer
|
|
3
|
+
from . import InlineDefsJsonSchemaTransformer, ModelProfile
|
|
5
4
|
|
|
6
5
|
|
|
7
6
|
def qwen_model_profile(model_name: str) -> ModelProfile | None:
|
|
@@ -36,6 +36,7 @@ class BedrockModelProfile(ModelProfile):
|
|
|
36
36
|
|
|
37
37
|
bedrock_supports_tool_choice: bool = True
|
|
38
38
|
bedrock_tool_result_format: Literal['text', 'json'] = 'text'
|
|
39
|
+
bedrock_send_back_thinking_parts: bool = False
|
|
39
40
|
|
|
40
41
|
|
|
41
42
|
class BedrockProvider(Provider[BaseClient]):
|
|
@@ -55,9 +56,9 @@ class BedrockProvider(Provider[BaseClient]):
|
|
|
55
56
|
|
|
56
57
|
def model_profile(self, model_name: str) -> ModelProfile | None:
|
|
57
58
|
provider_to_profile: dict[str, Callable[[str], ModelProfile | None]] = {
|
|
58
|
-
'anthropic': lambda model_name: BedrockModelProfile(
|
|
59
|
-
|
|
60
|
-
),
|
|
59
|
+
'anthropic': lambda model_name: BedrockModelProfile(
|
|
60
|
+
bedrock_supports_tool_choice=False, bedrock_send_back_thinking_parts=True
|
|
61
|
+
).update(anthropic_model_profile(model_name)),
|
|
61
62
|
'mistral': lambda model_name: BedrockModelProfile(bedrock_tool_result_format='json').update(
|
|
62
63
|
mistral_model_profile(model_name)
|
|
63
64
|
),
|
|
@@ -69,7 +69,7 @@ google = ["google-genai>=1.28.0"]
|
|
|
69
69
|
anthropic = ["anthropic>=0.61.0"]
|
|
70
70
|
groq = ["groq>=0.19.0"]
|
|
71
71
|
mistral = ["mistralai>=1.9.2"]
|
|
72
|
-
bedrock = ["boto3>=1.
|
|
72
|
+
bedrock = ["boto3>=1.39.0"]
|
|
73
73
|
huggingface = ["huggingface-hub[inference]>=0.33.5"]
|
|
74
74
|
# Tools
|
|
75
75
|
duckduckgo = ["ddgs>=9.0.0"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|