mirascope 1.20.0__py3-none-any.whl → 1.21.0__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.
- mirascope/core/__init__.py +2 -0
- mirascope/core/anthropic/call_response.py +6 -3
- mirascope/core/azure/call_response.py +2 -0
- mirascope/core/base/__init__.py +9 -1
- mirascope/core/base/_create.py +2 -2
- mirascope/core/base/_utils/__init__.py +3 -0
- mirascope/core/base/_utils/_base_message_param_converter.py +1 -1
- mirascope/core/base/call_response.py +11 -1
- mirascope/core/bedrock/call_response.py +4 -0
- mirascope/core/cohere/call_response.py +3 -0
- mirascope/core/gemini/call_response.py +3 -0
- mirascope/core/google/call_response.py +3 -0
- mirascope/core/google/tool.py +35 -4
- mirascope/core/groq/call_response.py +3 -0
- mirascope/core/mistral/call_response.py +5 -0
- mirascope/core/openai/call_response.py +2 -0
- mirascope/core/vertex/call_response.py +3 -0
- mirascope/llm/__init__.py +8 -3
- mirascope/llm/{llm_call.py → _call.py} +94 -21
- mirascope/llm/_context.py +381 -0
- mirascope/llm/_override.py +3639 -0
- mirascope/llm/_protocols.py +3 -8
- mirascope/llm/call_response.py +8 -6
- mirascope/llm/call_response_chunk.py +4 -7
- mirascope/llm/stream.py +36 -54
- {mirascope-1.20.0.dist-info → mirascope-1.21.0.dist-info}/METADATA +1 -1
- {mirascope-1.20.0.dist-info → mirascope-1.21.0.dist-info}/RECORD +29 -28
- mirascope/llm/llm_override.py +0 -233
- {mirascope-1.20.0.dist-info → mirascope-1.21.0.dist-info}/WHEEL +0 -0
- {mirascope-1.20.0.dist-info → mirascope-1.21.0.dist-info}/licenses/LICENSE +0 -0
mirascope/llm/llm_override.py
DELETED
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
"""Overrides the provider-specific call with the specified provider."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from collections.abc import Callable
|
|
6
|
-
from typing import TYPE_CHECKING, Any, Literal, ParamSpec, TypeVar, overload
|
|
7
|
-
|
|
8
|
-
from ..core.base import CommonCallParams
|
|
9
|
-
from ..core.base.types import LocalProvider, Provider
|
|
10
|
-
from .llm_call import _call
|
|
11
|
-
|
|
12
|
-
if TYPE_CHECKING:
|
|
13
|
-
from ..core.anthropic import AnthropicCallParams
|
|
14
|
-
from ..core.azure import AzureCallParams
|
|
15
|
-
from ..core.bedrock import BedrockCallParams
|
|
16
|
-
from ..core.cohere import CohereCallParams
|
|
17
|
-
from ..core.gemini import GeminiCallParams
|
|
18
|
-
from ..core.google import GoogleCallParams
|
|
19
|
-
from ..core.groq import GroqCallParams
|
|
20
|
-
from ..core.litellm import LiteLLMCallParams
|
|
21
|
-
from ..core.mistral import MistralCallParams
|
|
22
|
-
from ..core.openai import OpenAICallParams
|
|
23
|
-
from ..core.vertex import VertexCallParams
|
|
24
|
-
else:
|
|
25
|
-
AnthropicCallParams = AzureCallParams = BedrockCallParams = CohereCallParams = (
|
|
26
|
-
GeminiCallParams
|
|
27
|
-
) = GoogleCallParams = GroqCallParams = LiteLLMCallParams = MistralCallParams = (
|
|
28
|
-
OpenAICallParams
|
|
29
|
-
) = VertexCallParams = None
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
_P = ParamSpec("_P")
|
|
33
|
-
_R = TypeVar("_R")
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
@overload
|
|
37
|
-
def override(
|
|
38
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
39
|
-
*,
|
|
40
|
-
provider: Literal["anthropic"],
|
|
41
|
-
model: str,
|
|
42
|
-
call_params: CommonCallParams | AnthropicCallParams | None = None,
|
|
43
|
-
client: Any = None, # noqa: ANN401
|
|
44
|
-
) -> Callable[_P, _R]: ...
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
@overload
|
|
48
|
-
def override(
|
|
49
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
50
|
-
*,
|
|
51
|
-
provider: Literal["azure"],
|
|
52
|
-
model: str,
|
|
53
|
-
call_params: CommonCallParams | AzureCallParams | None = None,
|
|
54
|
-
client: Any = None, # noqa: ANN401
|
|
55
|
-
) -> Callable[_P, _R]: ...
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
@overload
|
|
59
|
-
def override(
|
|
60
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
61
|
-
*,
|
|
62
|
-
provider: Literal["bedrock"],
|
|
63
|
-
model: str,
|
|
64
|
-
call_params: CommonCallParams | BedrockCallParams | None = None,
|
|
65
|
-
client: Any = None, # noqa: ANN401
|
|
66
|
-
) -> Callable[_P, _R]: ...
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
@overload
|
|
70
|
-
def override(
|
|
71
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
72
|
-
*,
|
|
73
|
-
provider: Literal["cohere"],
|
|
74
|
-
model: str,
|
|
75
|
-
call_params: CommonCallParams | CohereCallParams | None = None,
|
|
76
|
-
client: Any = None, # noqa: ANN401
|
|
77
|
-
) -> Callable[_P, _R]: ...
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
@overload
|
|
81
|
-
def override(
|
|
82
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
83
|
-
*,
|
|
84
|
-
provider: Literal["gemini"],
|
|
85
|
-
model: str,
|
|
86
|
-
call_params: CommonCallParams | GeminiCallParams | None = None,
|
|
87
|
-
client: Any = None, # noqa: ANN401
|
|
88
|
-
) -> Callable[_P, _R]: ...
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
@overload
|
|
92
|
-
def override(
|
|
93
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
94
|
-
*,
|
|
95
|
-
provider: Literal["google"],
|
|
96
|
-
model: str,
|
|
97
|
-
call_params: CommonCallParams | GoogleCallParams | None = None,
|
|
98
|
-
client: Any = None, # noqa: ANN401
|
|
99
|
-
) -> Callable[_P, _R]: ...
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
@overload
|
|
103
|
-
def override(
|
|
104
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
105
|
-
*,
|
|
106
|
-
provider: Literal["groq"],
|
|
107
|
-
model: str,
|
|
108
|
-
call_params: CommonCallParams | GroqCallParams | None = None,
|
|
109
|
-
client: Any = None, # noqa: ANN401
|
|
110
|
-
) -> Callable[_P, _R]: ...
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
@overload
|
|
114
|
-
def override(
|
|
115
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
116
|
-
*,
|
|
117
|
-
provider: Literal["mistral"],
|
|
118
|
-
model: str,
|
|
119
|
-
call_params: CommonCallParams | MistralCallParams | None = None,
|
|
120
|
-
client: Any = None, # noqa: ANN401
|
|
121
|
-
) -> Callable[_P, _R]: ...
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
@overload
|
|
125
|
-
def override(
|
|
126
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
127
|
-
*,
|
|
128
|
-
provider: Literal["openai"],
|
|
129
|
-
model: str,
|
|
130
|
-
call_params: CommonCallParams | OpenAICallParams | None = None,
|
|
131
|
-
client: Any = None, # noqa: ANN401
|
|
132
|
-
) -> Callable[_P, _R]: ...
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
@overload
|
|
136
|
-
def override(
|
|
137
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
138
|
-
*,
|
|
139
|
-
provider: Literal["litellm"],
|
|
140
|
-
model: str,
|
|
141
|
-
call_params: CommonCallParams | LiteLLMCallParams | None = None,
|
|
142
|
-
client: Any = None, # noqa: ANN401
|
|
143
|
-
) -> Callable[_P, _R]: ...
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
@overload
|
|
147
|
-
def override(
|
|
148
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
149
|
-
*,
|
|
150
|
-
provider: Literal["vertex"],
|
|
151
|
-
model: str,
|
|
152
|
-
call_params: CommonCallParams | VertexCallParams | None = None,
|
|
153
|
-
client: Any = None, # noqa: ANN401
|
|
154
|
-
) -> Callable[_P, _R]: ...
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
@overload
|
|
158
|
-
def override(
|
|
159
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
160
|
-
*,
|
|
161
|
-
provider: None = None,
|
|
162
|
-
model: None = None,
|
|
163
|
-
call_params: CommonCallParams | None = None,
|
|
164
|
-
client: Any = None, # noqa: ANN401
|
|
165
|
-
) -> Callable[_P, _R]: ...
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
@overload
|
|
169
|
-
def override(
|
|
170
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
171
|
-
*,
|
|
172
|
-
provider: Provider,
|
|
173
|
-
model: str,
|
|
174
|
-
call_params: CommonCallParams | None = None,
|
|
175
|
-
client: Any = None, # noqa: ANN401
|
|
176
|
-
) -> Callable[_P, _R]: ...
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
def override(
|
|
180
|
-
provider_agnostic_call: Callable[_P, _R],
|
|
181
|
-
*,
|
|
182
|
-
provider: Provider | LocalProvider | None = None,
|
|
183
|
-
model: str | None = None,
|
|
184
|
-
call_params: CommonCallParams
|
|
185
|
-
| AnthropicCallParams
|
|
186
|
-
| GeminiCallParams
|
|
187
|
-
| GoogleCallParams
|
|
188
|
-
| AzureCallParams
|
|
189
|
-
| BedrockCallParams
|
|
190
|
-
| CohereCallParams
|
|
191
|
-
| GroqCallParams
|
|
192
|
-
| MistralCallParams
|
|
193
|
-
| OpenAICallParams
|
|
194
|
-
| VertexCallParams
|
|
195
|
-
| None = None,
|
|
196
|
-
client: Any = None, # noqa: ANN401
|
|
197
|
-
) -> Callable[_P, _R]:
|
|
198
|
-
"""Overrides the provider-specific call with the specified provider.
|
|
199
|
-
|
|
200
|
-
Args:
|
|
201
|
-
provider_agnostic_call: The provider-agnostic call to override.
|
|
202
|
-
provider: The provider to override with.
|
|
203
|
-
model: The model to override with.
|
|
204
|
-
call_params: The call params to override with.
|
|
205
|
-
client: The client to override with.
|
|
206
|
-
|
|
207
|
-
Returns:
|
|
208
|
-
The overridden function.
|
|
209
|
-
"""
|
|
210
|
-
if (provider and not model) or (model and not provider):
|
|
211
|
-
raise ValueError(
|
|
212
|
-
"Provider and model must both be overridden if either is overridden."
|
|
213
|
-
)
|
|
214
|
-
|
|
215
|
-
original_provider = provider_agnostic_call._original_provider # pyright: ignore [reportFunctionMemberAccess]
|
|
216
|
-
original_args = provider_agnostic_call._original_args # pyright: ignore [reportFunctionMemberAccess]
|
|
217
|
-
|
|
218
|
-
# Note: if switching providers, we will always use `client` since `original_client`
|
|
219
|
-
# would be from a different provider and fail.
|
|
220
|
-
if provider and provider == original_provider:
|
|
221
|
-
client = client or original_args["client"]
|
|
222
|
-
|
|
223
|
-
return _call( # pyright: ignore [reportReturnType]
|
|
224
|
-
provider=provider or original_provider,
|
|
225
|
-
model=model or original_args["model"],
|
|
226
|
-
stream=original_args["stream"],
|
|
227
|
-
tools=original_args["tools"],
|
|
228
|
-
response_model=original_args["response_model"],
|
|
229
|
-
output_parser=original_args["output_parser"],
|
|
230
|
-
json_mode=original_args["json_mode"],
|
|
231
|
-
client=client,
|
|
232
|
-
call_params=call_params or original_args["call_params"],
|
|
233
|
-
)(provider_agnostic_call._original_fn) # pyright: ignore [reportFunctionMemberAccess]
|
|
File without changes
|
|
File without changes
|