pydantic-ai-slim 0.2.15__py3-none-any.whl → 0.2.17__py3-none-any.whl
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.
- pydantic_ai/_agent_graph.py +0 -4
- pydantic_ai/_function_schema.py +4 -4
- pydantic_ai/_output.py +1 -1
- pydantic_ai/_utils.py +5 -1
- pydantic_ai/agent.py +5 -6
- pydantic_ai/ext/__init__.py +0 -0
- pydantic_ai/ext/langchain.py +61 -0
- pydantic_ai/mcp.py +57 -15
- pydantic_ai/messages.py +43 -13
- pydantic_ai/models/__init__.py +95 -3
- pydantic_ai/models/anthropic.py +3 -11
- pydantic_ai/models/bedrock.py +23 -15
- pydantic_ai/models/gemini.py +18 -14
- pydantic_ai/models/google.py +12 -11
- pydantic_ai/models/groq.py +4 -4
- pydantic_ai/models/instrumented.py +98 -32
- pydantic_ai/models/mistral.py +5 -5
- pydantic_ai/models/openai.py +56 -42
- pydantic_ai/profiles/openai.py +9 -2
- pydantic_ai/providers/__init__.py +5 -1
- pydantic_ai/providers/google_vertex.py +1 -1
- pydantic_ai/providers/heroku.py +82 -0
- pydantic_ai/settings.py +1 -0
- pydantic_ai/tools.py +53 -6
- {pydantic_ai_slim-0.2.15.dist-info → pydantic_ai_slim-0.2.17.dist-info}/METADATA +5 -5
- {pydantic_ai_slim-0.2.15.dist-info → pydantic_ai_slim-0.2.17.dist-info}/RECORD +29 -26
- {pydantic_ai_slim-0.2.15.dist-info → pydantic_ai_slim-0.2.17.dist-info}/WHEEL +0 -0
- {pydantic_ai_slim-0.2.15.dist-info → pydantic_ai_slim-0.2.17.dist-info}/entry_points.txt +0 -0
- {pydantic_ai_slim-0.2.15.dist-info → pydantic_ai_slim-0.2.17.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
from __future__ import annotations as _annotations
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
from typing import overload
|
|
5
|
+
|
|
6
|
+
from httpx import AsyncClient as AsyncHTTPClient
|
|
7
|
+
from openai import AsyncOpenAI
|
|
8
|
+
|
|
9
|
+
from pydantic_ai.exceptions import UserError
|
|
10
|
+
from pydantic_ai.models import cached_async_http_client
|
|
11
|
+
from pydantic_ai.profiles import ModelProfile
|
|
12
|
+
from pydantic_ai.profiles.openai import OpenAIJsonSchemaTransformer, OpenAIModelProfile
|
|
13
|
+
from pydantic_ai.providers import Provider
|
|
14
|
+
|
|
15
|
+
try:
|
|
16
|
+
from openai import AsyncOpenAI
|
|
17
|
+
except ImportError as _import_error: # pragma: no cover
|
|
18
|
+
raise ImportError(
|
|
19
|
+
'Please install the `openai` package to use the Heroku provider, '
|
|
20
|
+
'you can use the `openai` optional group — `pip install "pydantic-ai-slim[openai]"`'
|
|
21
|
+
) from _import_error
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class HerokuProvider(Provider[AsyncOpenAI]):
|
|
25
|
+
"""Provider for Heroku API."""
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def name(self) -> str:
|
|
29
|
+
return 'heroku'
|
|
30
|
+
|
|
31
|
+
@property
|
|
32
|
+
def base_url(self) -> str:
|
|
33
|
+
return str(self.client.base_url)
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
def client(self) -> AsyncOpenAI:
|
|
37
|
+
return self._client
|
|
38
|
+
|
|
39
|
+
def model_profile(self, model_name: str) -> ModelProfile | None:
|
|
40
|
+
# As the Heroku API is OpenAI-compatible, let's assume we also need OpenAIJsonSchemaTransformer.
|
|
41
|
+
return OpenAIModelProfile(json_schema_transformer=OpenAIJsonSchemaTransformer)
|
|
42
|
+
|
|
43
|
+
@overload
|
|
44
|
+
def __init__(self) -> None: ...
|
|
45
|
+
|
|
46
|
+
@overload
|
|
47
|
+
def __init__(self, *, api_key: str) -> None: ...
|
|
48
|
+
|
|
49
|
+
@overload
|
|
50
|
+
def __init__(self, *, api_key: str, http_client: AsyncHTTPClient) -> None: ...
|
|
51
|
+
|
|
52
|
+
@overload
|
|
53
|
+
def __init__(self, *, openai_client: AsyncOpenAI | None = None) -> None: ...
|
|
54
|
+
|
|
55
|
+
def __init__(
|
|
56
|
+
self,
|
|
57
|
+
*,
|
|
58
|
+
base_url: str | None = None,
|
|
59
|
+
api_key: str | None = None,
|
|
60
|
+
openai_client: AsyncOpenAI | None = None,
|
|
61
|
+
http_client: AsyncHTTPClient | None = None,
|
|
62
|
+
) -> None:
|
|
63
|
+
if openai_client is not None:
|
|
64
|
+
assert http_client is None, 'Cannot provide both `openai_client` and `http_client`'
|
|
65
|
+
assert api_key is None, 'Cannot provide both `openai_client` and `api_key`'
|
|
66
|
+
self._client = openai_client
|
|
67
|
+
else:
|
|
68
|
+
api_key = api_key or os.environ.get('HEROKU_INFERENCE_KEY')
|
|
69
|
+
if not api_key:
|
|
70
|
+
raise UserError(
|
|
71
|
+
'Set the `HEROKU_INFERENCE_KEY` environment variable or pass it via `HerokuProvider(api_key=...)`'
|
|
72
|
+
'to use the Heroku provider.'
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
base_url = base_url or os.environ.get('HEROKU_INFERENCE_URL', 'https://us.inference.heroku.com')
|
|
76
|
+
base_url = base_url.rstrip('/') + '/v1'
|
|
77
|
+
|
|
78
|
+
if http_client is not None:
|
|
79
|
+
self._client = AsyncOpenAI(api_key=api_key, http_client=http_client, base_url=base_url)
|
|
80
|
+
else:
|
|
81
|
+
http_client = cached_async_http_client(provider='heroku')
|
|
82
|
+
self._client = AsyncOpenAI(api_key=api_key, http_client=http_client, base_url=base_url)
|
pydantic_ai/settings.py
CHANGED
pydantic_ai/tools.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations as _annotations
|
|
2
2
|
|
|
3
|
+
import asyncio
|
|
3
4
|
import dataclasses
|
|
4
5
|
import json
|
|
5
6
|
from collections.abc import Awaitable, Sequence
|
|
@@ -9,8 +10,8 @@ from typing import TYPE_CHECKING, Any, Callable, Generic, Literal, Union
|
|
|
9
10
|
from opentelemetry.trace import Tracer
|
|
10
11
|
from pydantic import ValidationError
|
|
11
12
|
from pydantic.json_schema import GenerateJsonSchema, JsonSchemaValue
|
|
12
|
-
from pydantic_core import core_schema
|
|
13
|
-
from typing_extensions import Concatenate, ParamSpec, TypeAlias, TypeVar
|
|
13
|
+
from pydantic_core import SchemaValidator, core_schema
|
|
14
|
+
from typing_extensions import Concatenate, ParamSpec, Self, TypeAlias, TypeVar
|
|
14
15
|
|
|
15
16
|
from . import _function_schema, _utils, messages as _messages
|
|
16
17
|
from .exceptions import ModelRetry, UnexpectedModelBehavior
|
|
@@ -63,7 +64,9 @@ class RunContext(Generic[AgentDepsT]):
|
|
|
63
64
|
"""The current step in the run."""
|
|
64
65
|
|
|
65
66
|
def replace_with(
|
|
66
|
-
self,
|
|
67
|
+
self,
|
|
68
|
+
retry: int | None = None,
|
|
69
|
+
tool_name: str | None | _utils.Unset = _utils.UNSET,
|
|
67
70
|
) -> RunContext[AgentDepsT]:
|
|
68
71
|
# Create a new `RunContext` a new `retry` value and `tool_name`.
|
|
69
72
|
kwargs = {}
|
|
@@ -215,8 +218,10 @@ class Tool(Generic[AgentDepsT]):
|
|
|
215
218
|
This schema may be modified by the `prepare` function or by the Model class prior to including it in an API request.
|
|
216
219
|
"""
|
|
217
220
|
|
|
218
|
-
# TODO:
|
|
219
|
-
#
|
|
221
|
+
# TODO: Consider moving this current_retry state to live on something other than the tool.
|
|
222
|
+
# We've worked around this for now by copying instances of the tool when creating new runs,
|
|
223
|
+
# but this is a bit fragile. Moving the tool retry counts to live on the agent run state would likely clean things
|
|
224
|
+
# up, though is also likely a larger effort to refactor.
|
|
220
225
|
current_retry: int = field(default=0, init=False)
|
|
221
226
|
|
|
222
227
|
def __init__(
|
|
@@ -304,6 +309,45 @@ class Tool(Generic[AgentDepsT]):
|
|
|
304
309
|
self.require_parameter_descriptions = require_parameter_descriptions
|
|
305
310
|
self.strict = strict
|
|
306
311
|
|
|
312
|
+
@classmethod
|
|
313
|
+
def from_schema(
|
|
314
|
+
cls,
|
|
315
|
+
function: Callable[..., Any],
|
|
316
|
+
name: str,
|
|
317
|
+
description: str,
|
|
318
|
+
json_schema: JsonSchemaValue,
|
|
319
|
+
) -> Self:
|
|
320
|
+
"""Creates a Pydantic tool from a function and a JSON schema.
|
|
321
|
+
|
|
322
|
+
Args:
|
|
323
|
+
function: The function to call.
|
|
324
|
+
This will be called with keywords only, and no validation of
|
|
325
|
+
the arguments will be performed.
|
|
326
|
+
name: The unique name of the tool that clearly communicates its purpose
|
|
327
|
+
description: Used to tell the model how/when/why to use the tool.
|
|
328
|
+
You can provide few-shot examples as a part of the description.
|
|
329
|
+
json_schema: The schema for the function arguments
|
|
330
|
+
|
|
331
|
+
Returns:
|
|
332
|
+
A Pydantic tool that calls the function
|
|
333
|
+
"""
|
|
334
|
+
function_schema = _function_schema.FunctionSchema(
|
|
335
|
+
function=function,
|
|
336
|
+
description=description,
|
|
337
|
+
validator=SchemaValidator(schema=core_schema.any_schema()),
|
|
338
|
+
json_schema=json_schema,
|
|
339
|
+
takes_ctx=False,
|
|
340
|
+
is_async=asyncio.iscoroutinefunction(function),
|
|
341
|
+
)
|
|
342
|
+
|
|
343
|
+
return cls(
|
|
344
|
+
function,
|
|
345
|
+
takes_ctx=False,
|
|
346
|
+
name=name,
|
|
347
|
+
description=description,
|
|
348
|
+
function_schema=function_schema,
|
|
349
|
+
)
|
|
350
|
+
|
|
307
351
|
async def prepare_tool_def(self, ctx: RunContext[AgentDepsT]) -> ToolDefinition | None:
|
|
308
352
|
"""Get the tool definition.
|
|
309
353
|
|
|
@@ -325,7 +369,10 @@ class Tool(Generic[AgentDepsT]):
|
|
|
325
369
|
return tool_def
|
|
326
370
|
|
|
327
371
|
async def run(
|
|
328
|
-
self,
|
|
372
|
+
self,
|
|
373
|
+
message: _messages.ToolCallPart,
|
|
374
|
+
run_context: RunContext[AgentDepsT],
|
|
375
|
+
tracer: Tracer,
|
|
329
376
|
) -> _messages.ToolReturnPart | _messages.RetryPromptPart:
|
|
330
377
|
"""Run the tool function asynchronously.
|
|
331
378
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai-slim
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.17
|
|
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>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -30,11 +30,11 @@ 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.2.
|
|
33
|
+
Requires-Dist: pydantic-graph==0.2.17
|
|
34
34
|
Requires-Dist: pydantic>=2.10
|
|
35
35
|
Requires-Dist: typing-inspection>=0.4.0
|
|
36
36
|
Provides-Extra: a2a
|
|
37
|
-
Requires-Dist: fasta2a==0.2.
|
|
37
|
+
Requires-Dist: fasta2a==0.2.17; extra == 'a2a'
|
|
38
38
|
Provides-Extra: anthropic
|
|
39
39
|
Requires-Dist: anthropic>=0.52.0; extra == 'anthropic'
|
|
40
40
|
Provides-Extra: bedrock
|
|
@@ -48,7 +48,7 @@ Requires-Dist: cohere>=5.13.11; (platform_system != 'Emscripten') and extra == '
|
|
|
48
48
|
Provides-Extra: duckduckgo
|
|
49
49
|
Requires-Dist: duckduckgo-search>=7.0.0; extra == 'duckduckgo'
|
|
50
50
|
Provides-Extra: evals
|
|
51
|
-
Requires-Dist: pydantic-evals==0.2.
|
|
51
|
+
Requires-Dist: pydantic-evals==0.2.17; extra == 'evals'
|
|
52
52
|
Provides-Extra: google
|
|
53
53
|
Requires-Dist: google-genai>=1.15.0; extra == 'google'
|
|
54
54
|
Provides-Extra: groq
|
|
@@ -56,7 +56,7 @@ Requires-Dist: groq>=0.15.0; extra == 'groq'
|
|
|
56
56
|
Provides-Extra: logfire
|
|
57
57
|
Requires-Dist: logfire>=3.11.0; extra == 'logfire'
|
|
58
58
|
Provides-Extra: mcp
|
|
59
|
-
Requires-Dist: mcp>=1.9.
|
|
59
|
+
Requires-Dist: mcp>=1.9.2; (python_version >= '3.10') and extra == 'mcp'
|
|
60
60
|
Provides-Extra: mistral
|
|
61
61
|
Requires-Dist: mistralai>=1.2.5; extra == 'mistral'
|
|
62
62
|
Provides-Extra: openai
|
|
@@ -1,41 +1,43 @@
|
|
|
1
1
|
pydantic_ai/__init__.py,sha256=5flxyMQJVrHRMQ3MYaZf1el2ctNs0JmPClKbw2Q-Lsk,1160
|
|
2
2
|
pydantic_ai/__main__.py,sha256=Q_zJU15DUA01YtlJ2mnaLCoId2YmgmreVEERGuQT-Y0,132
|
|
3
3
|
pydantic_ai/_a2a.py,sha256=8nNtx6GENDt2Ej3f1ui9L-FuNQBYVELpJFfwz-y7fUw,7234
|
|
4
|
-
pydantic_ai/_agent_graph.py,sha256=
|
|
4
|
+
pydantic_ai/_agent_graph.py,sha256=GLcirP600J2UXfFmmWfS6E4oLY6Iaffw07J2KNM6Auo,35997
|
|
5
5
|
pydantic_ai/_cli.py,sha256=kc9UxGjYsKK0IR4No-V5BGiAtq2fY6eZZ9rBkAdHWOM,12948
|
|
6
|
-
pydantic_ai/_function_schema.py,sha256=
|
|
6
|
+
pydantic_ai/_function_schema.py,sha256=qKhnayKTR6TOayMLDS8EDcQJsc0VwXfya27ygC0D6Z4,10614
|
|
7
7
|
pydantic_ai/_griffe.py,sha256=Sf_DisE9k2TA0VFeVIK2nf1oOct5MygW86PBCACJkFA,5244
|
|
8
|
-
pydantic_ai/_output.py,sha256=
|
|
8
|
+
pydantic_ai/_output.py,sha256=IatomyvmR4UeIiUk0iXQHpSVmVEkzpSIZIJThSp-_TM,16790
|
|
9
9
|
pydantic_ai/_parts_manager.py,sha256=c0Gj29FH8K20AmxIr7MY8_SQVdb7SRIRcJYTQVmVYgc,12204
|
|
10
10
|
pydantic_ai/_system_prompt.py,sha256=602c2jyle2R_SesOrITBDETZqsLk4BZ8Cbo8yEhmx04,1120
|
|
11
|
-
pydantic_ai/_utils.py,sha256=
|
|
12
|
-
pydantic_ai/agent.py,sha256=
|
|
11
|
+
pydantic_ai/_utils.py,sha256=TpNgr_IaGHrkZugcncs-maZ_7K4fxdC0a-uyYJkKqY8,10575
|
|
12
|
+
pydantic_ai/agent.py,sha256=9CwdFHjSx7BOv-DSkG31lzIeclgoWnPIAnjSPLh8BPo,93562
|
|
13
13
|
pydantic_ai/direct.py,sha256=tXRcQ3fMkykaawO51VxnSwQnqcEmu1LhCy7U9gOyM-g,7768
|
|
14
14
|
pydantic_ai/exceptions.py,sha256=IdFw594Ou7Vn4YFa7xdZ040_j_6nmyA3MPANbC7sys4,3175
|
|
15
15
|
pydantic_ai/format_as_xml.py,sha256=IINfh1evWDphGahqHNLBArB5dQ4NIqS3S-kru35ztGg,372
|
|
16
16
|
pydantic_ai/format_prompt.py,sha256=qdKep95Sjlr7u1-qag4JwPbjoURbG0GbeU_l5ODTNw4,4466
|
|
17
|
-
pydantic_ai/mcp.py,sha256=
|
|
18
|
-
pydantic_ai/messages.py,sha256=
|
|
17
|
+
pydantic_ai/mcp.py,sha256=sp0nJozRJbtayTxYbLI2pLT9bs7xydE7uk6vUoitrVM,15181
|
|
18
|
+
pydantic_ai/messages.py,sha256=UuUw_L4Nxe4gFLotlOSs5Al1zDyWs8T8tAnjn2ZpYw0,33409
|
|
19
19
|
pydantic_ai/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
20
|
pydantic_ai/result.py,sha256=YlcR0QAQIejz3fbZ50zYfHKIZco0dwmnZTxytV-n3oM,24609
|
|
21
|
-
pydantic_ai/settings.py,sha256=
|
|
22
|
-
pydantic_ai/tools.py,sha256=
|
|
21
|
+
pydantic_ai/settings.py,sha256=eRJs2fI2yaIrhtYRlWqKlC9KnFaJHvslgSll8NQ20jc,3533
|
|
22
|
+
pydantic_ai/tools.py,sha256=WFO0iYa58nUdNAhdZsl2xTITVyCD3WidYLXxZ8csnjY,18524
|
|
23
23
|
pydantic_ai/usage.py,sha256=35YPmItlzfNOwP35Rhh0qBUOlg5On5rUE7xqHQWrpaU,5596
|
|
24
24
|
pydantic_ai/common_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
25
|
pydantic_ai/common_tools/duckduckgo.py,sha256=Ty9tu1rCwMfGKgz1JAaC2q_4esmL6QvpkHQUN8F0Ecc,2152
|
|
26
26
|
pydantic_ai/common_tools/tavily.py,sha256=Q1xxSF5HtXAaZ10Pp-OaDOHXwJf2mco9wScGEQXD7E4,2495
|
|
27
|
-
pydantic_ai/
|
|
28
|
-
pydantic_ai/
|
|
29
|
-
pydantic_ai/models/
|
|
27
|
+
pydantic_ai/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
+
pydantic_ai/ext/langchain.py,sha256=TI8B6eBjEGKFfvwyLgC_-0eeba4hDJq7wLZ0OZhbiWw,1967
|
|
29
|
+
pydantic_ai/models/__init__.py,sha256=hnmJnufLazc-S9FqOx5XdIrD3VWY7rZF40I0hIrDS1o,27947
|
|
30
|
+
pydantic_ai/models/anthropic.py,sha256=ggLI3l-w0NiBOEcU-XN_QrckPten7AjGeHLv61HKtJU,21125
|
|
31
|
+
pydantic_ai/models/bedrock.py,sha256=OVuPe_gQ1KHzvN9k5w0IZjdY3uGbQ1LqDAeaC9ffBlE,27944
|
|
30
32
|
pydantic_ai/models/cohere.py,sha256=bQLTQguqVXkzkPgWmMncrxApO9CQ7YtgrmFwa057g7g,12116
|
|
31
33
|
pydantic_ai/models/fallback.py,sha256=idOYGMo3CZzpCBT8DDiuPAAgnV2jzluDUq3ESb3KteM,4981
|
|
32
34
|
pydantic_ai/models/function.py,sha256=rnihsyakyieCGbEyxfqzvoBHnR_3LJn4x6DXQqdAAM4,11458
|
|
33
|
-
pydantic_ai/models/gemini.py,sha256=
|
|
34
|
-
pydantic_ai/models/google.py,sha256=
|
|
35
|
-
pydantic_ai/models/groq.py,sha256=
|
|
36
|
-
pydantic_ai/models/instrumented.py,sha256=
|
|
37
|
-
pydantic_ai/models/mistral.py,sha256=
|
|
38
|
-
pydantic_ai/models/openai.py,sha256=
|
|
35
|
+
pydantic_ai/models/gemini.py,sha256=uUQz1q_HwUEXr0pjK8FkaCixQC-3cpfSrFs1kcjwRN4,36251
|
|
36
|
+
pydantic_ai/models/google.py,sha256=NIH6LhzvGn2fyS72PMu3YMKZm13kj-OupiHe-PK-Nq8,21254
|
|
37
|
+
pydantic_ai/models/groq.py,sha256=rnAwTJ5AXgspqSqi2nJPlqj7sOeZ8H04XNs5cWJqKE4,17816
|
|
38
|
+
pydantic_ai/models/instrumented.py,sha256=DvBNxgkxmMGeUQvBUJUAfRCpgXpJzQhNNe_M5TAVCbw,15679
|
|
39
|
+
pydantic_ai/models/mistral.py,sha256=teNN6IfTTpfZxtSXFdD2M1IDrDj0_EHJt-9gDmAKLvg,29563
|
|
40
|
+
pydantic_ai/models/openai.py,sha256=TkabBV7z4WLL_b-KzCnt5_xcns6qW0VMm0Yl-bgzTB0,44902
|
|
39
41
|
pydantic_ai/models/test.py,sha256=Jlq-YQ9dhzENgmBMVerZpM4L-I2aPf7HH7ifIncyDlE,17010
|
|
40
42
|
pydantic_ai/models/wrapper.py,sha256=43ntRkTF7rVBYLC-Ihdo1fkwpeveOpA_1fXe1fd3W9Y,1690
|
|
41
43
|
pydantic_ai/profiles/__init__.py,sha256=uO_f1kSqrnXuO0x5U0EHTTMRYcmOiOoa-tS1OZppxBk,1426
|
|
@@ -48,9 +50,9 @@ pydantic_ai/profiles/google.py,sha256=TL8WxCuFKQ7FZnDQpBYvtd26_qOwPDpLfDeTdAOdrB
|
|
|
48
50
|
pydantic_ai/profiles/grok.py,sha256=nBOxOCYCK9aiLmz2Q-esqYhotNbbBC1boAoOYIk1tVw,211
|
|
49
51
|
pydantic_ai/profiles/meta.py,sha256=IAGPoUrLWd-g9ajAgpWp9fIeOrP-7dBlZ2HEFjIhUbY,334
|
|
50
52
|
pydantic_ai/profiles/mistral.py,sha256=ll01PmcK3szwlTfbaJLQmfd0TADN8lqjov9HpPJzCMQ,217
|
|
51
|
-
pydantic_ai/profiles/openai.py,sha256=
|
|
53
|
+
pydantic_ai/profiles/openai.py,sha256=QK1-e4fHdTvWgi090UI7ouAlO9hbDu2CBrI0AX1MSUI,5807
|
|
52
54
|
pydantic_ai/profiles/qwen.py,sha256=u7pL8uomoQTVl45g5wDrHx0P_oFDLaN6ALswuwmkWc0,334
|
|
53
|
-
pydantic_ai/providers/__init__.py,sha256=
|
|
55
|
+
pydantic_ai/providers/__init__.py,sha256=kcoEy3xYZASoLoR8EHQUN0S8EI9GaqiF6P__oyYOnqM,3373
|
|
54
56
|
pydantic_ai/providers/anthropic.py,sha256=D35UXxCPXv8yIbD0fj9Zg2FvNyoMoJMeDUtVM8Sn78I,3046
|
|
55
57
|
pydantic_ai/providers/azure.py,sha256=y77IHGiSQ9Ttx9f4SGMgdpin2Daq6eYyzUdM9ET22RQ,5819
|
|
56
58
|
pydantic_ai/providers/bedrock.py,sha256=ycdTXnkj_WNqPMA7DNDPeYia0C37FP0_l0CygSQmWYI,5694
|
|
@@ -59,15 +61,16 @@ pydantic_ai/providers/deepseek.py,sha256=kUdM8eVp1lse4bS_uy70Gy7wgog94NTZ36GY-vh
|
|
|
59
61
|
pydantic_ai/providers/fireworks.py,sha256=TPbqOpNgXG59qovBaHWbbV2vsvROwlHwQ3PvqHUBH-s,3626
|
|
60
62
|
pydantic_ai/providers/google.py,sha256=3thJwFxJi5R21LuAGhSBYIwmThZ3Bk-6DOCaVhHLDto,5380
|
|
61
63
|
pydantic_ai/providers/google_gla.py,sha256=BCF5_6EVtpkCZ6qIDuvgY1Qa9EirS71l51CBqPqk4C4,1825
|
|
62
|
-
pydantic_ai/providers/google_vertex.py,sha256=
|
|
64
|
+
pydantic_ai/providers/google_vertex.py,sha256=_uiPHisYbQJxygESUUsRKBIG-DjeTwEQVvioS4JpEXc,9446
|
|
63
65
|
pydantic_ai/providers/grok.py,sha256=mtlx7KP6xEDrDnYR1pmuT61wjUlYbCJNASNCDfVGQ5A,2912
|
|
64
66
|
pydantic_ai/providers/groq.py,sha256=LcD0vXiZhWOsMatz0yKzt9NCIAw6H7OhJsQ5GPDqL44,3835
|
|
67
|
+
pydantic_ai/providers/heroku.py,sha256=NmDIkAdxtWsvCjlX-bKI5FgI4HW1zO9-e0mrNQNGMCk,2990
|
|
65
68
|
pydantic_ai/providers/mistral.py,sha256=EIUSENjFuGzBhvbdrarUTM4VPkesIMnZrzfnEKHOsc4,3120
|
|
66
69
|
pydantic_ai/providers/openai.py,sha256=7iGij0EaFylab7dTZAZDgXr78tr-HsZrn9EI9AkWBNQ,3091
|
|
67
70
|
pydantic_ai/providers/openrouter.py,sha256=NXjNdnlXIBrBMMqbzcWQnowXOuZh4NHikXenBn5h3mc,4061
|
|
68
71
|
pydantic_ai/providers/together.py,sha256=zFVSMSm5jXbpkNouvBOTjWrPmlPpCp6sQS5LMSyVjrQ,3482
|
|
69
|
-
pydantic_ai_slim-0.2.
|
|
70
|
-
pydantic_ai_slim-0.2.
|
|
71
|
-
pydantic_ai_slim-0.2.
|
|
72
|
-
pydantic_ai_slim-0.2.
|
|
73
|
-
pydantic_ai_slim-0.2.
|
|
72
|
+
pydantic_ai_slim-0.2.17.dist-info/METADATA,sha256=2XEObXk2W2obyTt9-1N6oj0e-r8Mj0_LRb1ME5iJtvg,3850
|
|
73
|
+
pydantic_ai_slim-0.2.17.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
74
|
+
pydantic_ai_slim-0.2.17.dist-info/entry_points.txt,sha256=kbKxe2VtDCYS06hsI7P3uZGxcVC08-FPt1rxeiMpIps,50
|
|
75
|
+
pydantic_ai_slim-0.2.17.dist-info/licenses/LICENSE,sha256=vA6Jc482lEyBBuGUfD1pYx-cM7jxvLYOxPidZ30t_PQ,1100
|
|
76
|
+
pydantic_ai_slim-0.2.17.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|