mirascope 2.0.0a3__py3-none-any.whl → 2.0.0a5__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/api/_generated/__init__.py +78 -6
- mirascope/api/_generated/api_keys/__init__.py +7 -0
- mirascope/api/_generated/api_keys/client.py +453 -0
- mirascope/api/_generated/api_keys/raw_client.py +853 -0
- mirascope/api/_generated/api_keys/types/__init__.py +9 -0
- mirascope/api/_generated/api_keys/types/api_keys_create_response.py +36 -0
- mirascope/api/_generated/api_keys/types/api_keys_get_response.py +35 -0
- mirascope/api/_generated/api_keys/types/api_keys_list_response_item.py +35 -0
- mirascope/api/_generated/client.py +14 -0
- mirascope/api/_generated/environments/__init__.py +17 -0
- mirascope/api/_generated/environments/client.py +532 -0
- mirascope/api/_generated/environments/raw_client.py +1088 -0
- mirascope/api/_generated/environments/types/__init__.py +15 -0
- mirascope/api/_generated/environments/types/environments_create_response.py +26 -0
- mirascope/api/_generated/environments/types/environments_get_response.py +26 -0
- mirascope/api/_generated/environments/types/environments_list_response_item.py +26 -0
- mirascope/api/_generated/environments/types/environments_update_response.py +26 -0
- mirascope/api/_generated/errors/__init__.py +11 -1
- mirascope/api/_generated/errors/conflict_error.py +15 -0
- mirascope/api/_generated/errors/forbidden_error.py +15 -0
- mirascope/api/_generated/errors/internal_server_error.py +15 -0
- mirascope/api/_generated/errors/not_found_error.py +15 -0
- mirascope/api/_generated/organizations/__init__.py +25 -0
- mirascope/api/_generated/organizations/client.py +404 -0
- mirascope/api/_generated/organizations/raw_client.py +902 -0
- mirascope/api/_generated/organizations/types/__init__.py +23 -0
- mirascope/api/_generated/organizations/types/organizations_create_response.py +25 -0
- mirascope/api/_generated/organizations/types/organizations_create_response_role.py +7 -0
- mirascope/api/_generated/organizations/types/organizations_get_response.py +25 -0
- mirascope/api/_generated/organizations/types/organizations_get_response_role.py +7 -0
- mirascope/api/_generated/organizations/types/organizations_list_response_item.py +25 -0
- mirascope/api/_generated/organizations/types/organizations_list_response_item_role.py +7 -0
- mirascope/api/_generated/organizations/types/organizations_update_response.py +25 -0
- mirascope/api/_generated/organizations/types/organizations_update_response_role.py +7 -0
- mirascope/api/_generated/projects/__init__.py +17 -0
- mirascope/api/_generated/projects/client.py +482 -0
- mirascope/api/_generated/projects/raw_client.py +1058 -0
- mirascope/api/_generated/projects/types/__init__.py +15 -0
- mirascope/api/_generated/projects/types/projects_create_response.py +31 -0
- mirascope/api/_generated/projects/types/projects_get_response.py +31 -0
- mirascope/api/_generated/projects/types/projects_list_response_item.py +31 -0
- mirascope/api/_generated/projects/types/projects_update_response.py +31 -0
- mirascope/api/_generated/reference.md +1311 -0
- mirascope/api/_generated/types/__init__.py +20 -4
- mirascope/api/_generated/types/already_exists_error.py +24 -0
- mirascope/api/_generated/types/already_exists_error_tag.py +5 -0
- mirascope/api/_generated/types/database_error.py +24 -0
- mirascope/api/_generated/types/database_error_tag.py +5 -0
- mirascope/api/_generated/types/http_api_decode_error.py +1 -3
- mirascope/api/_generated/types/issue.py +1 -5
- mirascope/api/_generated/types/not_found_error_body.py +24 -0
- mirascope/api/_generated/types/not_found_error_tag.py +5 -0
- mirascope/api/_generated/types/permission_denied_error.py +24 -0
- mirascope/api/_generated/types/permission_denied_error_tag.py +7 -0
- mirascope/api/_generated/types/property_key.py +2 -2
- mirascope/api/_generated/types/{property_key_tag.py → property_key_key.py} +3 -5
- mirascope/api/_generated/types/{property_key_tag_tag.py → property_key_key_tag.py} +1 -1
- mirascope/llm/__init__.py +6 -2
- mirascope/llm/exceptions.py +28 -0
- mirascope/llm/providers/__init__.py +12 -4
- mirascope/llm/providers/anthropic/__init__.py +6 -1
- mirascope/llm/providers/anthropic/_utils/__init__.py +17 -5
- mirascope/llm/providers/anthropic/_utils/beta_decode.py +271 -0
- mirascope/llm/providers/anthropic/_utils/beta_encode.py +216 -0
- mirascope/llm/providers/anthropic/_utils/decode.py +39 -7
- mirascope/llm/providers/anthropic/_utils/encode.py +156 -64
- mirascope/llm/providers/anthropic/_utils/errors.py +46 -0
- mirascope/llm/providers/anthropic/beta_provider.py +328 -0
- mirascope/llm/providers/anthropic/model_id.py +10 -27
- mirascope/llm/providers/anthropic/model_info.py +87 -0
- mirascope/llm/providers/anthropic/provider.py +132 -145
- mirascope/llm/providers/base/__init__.py +2 -1
- mirascope/llm/providers/base/_utils.py +15 -1
- mirascope/llm/providers/base/base_provider.py +173 -58
- mirascope/llm/providers/google/_utils/__init__.py +2 -0
- mirascope/llm/providers/google/_utils/decode.py +55 -3
- mirascope/llm/providers/google/_utils/encode.py +14 -6
- mirascope/llm/providers/google/_utils/errors.py +49 -0
- mirascope/llm/providers/google/model_id.py +7 -13
- mirascope/llm/providers/google/model_info.py +62 -0
- mirascope/llm/providers/google/provider.py +13 -8
- mirascope/llm/providers/mlx/_utils.py +31 -2
- mirascope/llm/providers/mlx/encoding/transformers.py +17 -1
- mirascope/llm/providers/mlx/provider.py +12 -0
- mirascope/llm/providers/ollama/__init__.py +19 -0
- mirascope/llm/providers/ollama/provider.py +71 -0
- mirascope/llm/providers/openai/__init__.py +10 -1
- mirascope/llm/providers/openai/_utils/__init__.py +5 -0
- mirascope/llm/providers/openai/_utils/errors.py +46 -0
- mirascope/llm/providers/openai/completions/__init__.py +6 -1
- mirascope/llm/providers/openai/completions/_utils/decode.py +57 -5
- mirascope/llm/providers/openai/completions/_utils/encode.py +9 -8
- mirascope/llm/providers/openai/completions/base_provider.py +513 -0
- mirascope/llm/providers/openai/completions/provider.py +13 -447
- mirascope/llm/providers/openai/model_info.py +57 -0
- mirascope/llm/providers/openai/provider.py +30 -5
- mirascope/llm/providers/openai/responses/_utils/decode.py +55 -4
- mirascope/llm/providers/openai/responses/_utils/encode.py +9 -9
- mirascope/llm/providers/openai/responses/provider.py +33 -28
- mirascope/llm/providers/provider_id.py +11 -1
- mirascope/llm/providers/provider_registry.py +59 -4
- mirascope/llm/providers/together/__init__.py +19 -0
- mirascope/llm/providers/together/provider.py +40 -0
- mirascope/llm/responses/__init__.py +3 -0
- mirascope/llm/responses/base_response.py +4 -0
- mirascope/llm/responses/base_stream_response.py +25 -1
- mirascope/llm/responses/finish_reason.py +1 -0
- mirascope/llm/responses/response.py +9 -0
- mirascope/llm/responses/root_response.py +5 -1
- mirascope/llm/responses/usage.py +95 -0
- mirascope/ops/_internal/closure.py +62 -11
- {mirascope-2.0.0a3.dist-info → mirascope-2.0.0a5.dist-info}/METADATA +3 -3
- {mirascope-2.0.0a3.dist-info → mirascope-2.0.0a5.dist-info}/RECORD +115 -56
- mirascope/llm/providers/load_provider.py +0 -48
- mirascope/llm/providers/openai/shared/__init__.py +0 -7
- mirascope/llm/providers/openai/shared/_utils.py +0 -59
- {mirascope-2.0.0a3.dist-info → mirascope-2.0.0a5.dist-info}/WHEEL +0 -0
- {mirascope-2.0.0a3.dist-info → mirascope-2.0.0a5.dist-info}/licenses/LICENSE +0 -0
|
@@ -21,6 +21,7 @@ from ..tools import (
|
|
|
21
21
|
from ..types import Jsonable
|
|
22
22
|
from .base_response import BaseResponse
|
|
23
23
|
from .finish_reason import FinishReason
|
|
24
|
+
from .usage import Usage
|
|
24
25
|
|
|
25
26
|
if TYPE_CHECKING:
|
|
26
27
|
from ..providers import ModelId, Params, ProviderId
|
|
@@ -42,6 +43,7 @@ class Response(BaseResponse[Toolkit, FormattableT]):
|
|
|
42
43
|
input_messages: Sequence[Message],
|
|
43
44
|
assistant_message: AssistantMessage,
|
|
44
45
|
finish_reason: FinishReason | None,
|
|
46
|
+
usage: Usage | None,
|
|
45
47
|
) -> None:
|
|
46
48
|
"""Initialize a `Response`."""
|
|
47
49
|
toolkit = tools if isinstance(tools, Toolkit) else Toolkit(tools=tools)
|
|
@@ -56,6 +58,7 @@ class Response(BaseResponse[Toolkit, FormattableT]):
|
|
|
56
58
|
input_messages=input_messages,
|
|
57
59
|
assistant_message=assistant_message,
|
|
58
60
|
finish_reason=finish_reason,
|
|
61
|
+
usage=usage,
|
|
59
62
|
)
|
|
60
63
|
|
|
61
64
|
def execute_tools(self) -> Sequence[ToolOutput[Jsonable]]:
|
|
@@ -113,6 +116,7 @@ class AsyncResponse(BaseResponse[AsyncToolkit, FormattableT]):
|
|
|
113
116
|
input_messages: Sequence[Message],
|
|
114
117
|
assistant_message: AssistantMessage,
|
|
115
118
|
finish_reason: FinishReason | None,
|
|
119
|
+
usage: Usage | None,
|
|
116
120
|
) -> None:
|
|
117
121
|
"""Initialize an `AsyncResponse`."""
|
|
118
122
|
toolkit = (
|
|
@@ -129,6 +133,7 @@ class AsyncResponse(BaseResponse[AsyncToolkit, FormattableT]):
|
|
|
129
133
|
input_messages=input_messages,
|
|
130
134
|
assistant_message=assistant_message,
|
|
131
135
|
finish_reason=finish_reason,
|
|
136
|
+
usage=usage,
|
|
132
137
|
)
|
|
133
138
|
|
|
134
139
|
async def execute_tools(self) -> Sequence[ToolOutput[Jsonable]]:
|
|
@@ -195,6 +200,7 @@ class ContextResponse(
|
|
|
195
200
|
input_messages: Sequence[Message],
|
|
196
201
|
assistant_message: AssistantMessage,
|
|
197
202
|
finish_reason: FinishReason | None,
|
|
203
|
+
usage: Usage | None,
|
|
198
204
|
) -> None:
|
|
199
205
|
"""Initialize a `ContextResponse`."""
|
|
200
206
|
toolkit = (
|
|
@@ -211,6 +217,7 @@ class ContextResponse(
|
|
|
211
217
|
input_messages=input_messages,
|
|
212
218
|
assistant_message=assistant_message,
|
|
213
219
|
finish_reason=finish_reason,
|
|
220
|
+
usage=usage,
|
|
214
221
|
)
|
|
215
222
|
|
|
216
223
|
def execute_tools(self, ctx: Context[DepsT]) -> Sequence[ToolOutput[Jsonable]]:
|
|
@@ -283,6 +290,7 @@ class AsyncContextResponse(
|
|
|
283
290
|
input_messages: Sequence[Message],
|
|
284
291
|
assistant_message: AssistantMessage,
|
|
285
292
|
finish_reason: FinishReason | None,
|
|
293
|
+
usage: Usage | None,
|
|
286
294
|
) -> None:
|
|
287
295
|
"""Initialize an `AsyncContextResponse`."""
|
|
288
296
|
toolkit = (
|
|
@@ -301,6 +309,7 @@ class AsyncContextResponse(
|
|
|
301
309
|
input_messages=input_messages,
|
|
302
310
|
assistant_message=assistant_message,
|
|
303
311
|
finish_reason=finish_reason,
|
|
312
|
+
usage=usage,
|
|
304
313
|
)
|
|
305
314
|
|
|
306
315
|
async def execute_tools(
|
|
@@ -11,6 +11,7 @@ from ..messages import Message
|
|
|
11
11
|
from ..tools import ToolkitT
|
|
12
12
|
from . import _utils
|
|
13
13
|
from .finish_reason import FinishReason
|
|
14
|
+
from .usage import Usage
|
|
14
15
|
|
|
15
16
|
if TYPE_CHECKING:
|
|
16
17
|
from ..models import Model
|
|
@@ -55,12 +56,15 @@ class RootResponse(Generic[ToolkitT, FormattableT], ABC):
|
|
|
55
56
|
"""
|
|
56
57
|
finish_reason: FinishReason | None
|
|
57
58
|
"""The reason why the LLM finished generating a response, if set.
|
|
58
|
-
|
|
59
|
+
|
|
59
60
|
`finish_reason` is only set if the response did not finish generating normally,
|
|
60
61
|
e.g. `FinishReason.MAX_TOKENS` if the model ran out of tokens before completing.
|
|
61
62
|
When the response generates normally, `response.finish_reason` will be `None`.
|
|
62
63
|
"""
|
|
63
64
|
|
|
65
|
+
usage: Usage | None
|
|
66
|
+
"""Token usage statistics for this response, if available."""
|
|
67
|
+
|
|
64
68
|
format: Format[FormattableT] | None
|
|
65
69
|
"""The `Format` describing the structured response format, if available."""
|
|
66
70
|
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"""Provider-agnostic usage statistics for LLM API calls."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
from typing import Any, Literal
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass(kw_only=True)
|
|
10
|
+
class UsageDeltaChunk:
|
|
11
|
+
"""A chunk containing incremental token usage information from a streaming response.
|
|
12
|
+
|
|
13
|
+
This represents a delta/increment in usage statistics as they arrive during streaming.
|
|
14
|
+
Multiple UsageDeltaChunks are accumulated to produce the final Usage object.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
type: Literal["usage_delta_chunk"] = "usage_delta_chunk"
|
|
18
|
+
|
|
19
|
+
input_tokens: int = 0
|
|
20
|
+
"""Delta in input tokens."""
|
|
21
|
+
|
|
22
|
+
output_tokens: int = 0
|
|
23
|
+
"""Delta in output tokens."""
|
|
24
|
+
|
|
25
|
+
cache_read_tokens: int = 0
|
|
26
|
+
"""Delta in cache read tokens."""
|
|
27
|
+
|
|
28
|
+
cache_write_tokens: int = 0
|
|
29
|
+
"""Delta in cache write tokens."""
|
|
30
|
+
|
|
31
|
+
reasoning_tokens: int = 0
|
|
32
|
+
"""Delta in reasoning/thinking tokens."""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@dataclass(kw_only=True)
|
|
36
|
+
class Usage:
|
|
37
|
+
"""Token usage statistics from an LLM API call.
|
|
38
|
+
|
|
39
|
+
This abstraction captures common usage metrics across providers while preserving
|
|
40
|
+
access to the raw provider-specific usage data.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
input_tokens: int = 0
|
|
44
|
+
"""The number of input tokens used.
|
|
45
|
+
|
|
46
|
+
This includes ALL input tokens, including cache read and write tokens.
|
|
47
|
+
|
|
48
|
+
Will be 0 if not reported by the provider.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
output_tokens: int = 0
|
|
52
|
+
"""The number of output tokens used.
|
|
53
|
+
|
|
54
|
+
This includes ALL output tokens, including `reasoning_tokens` that may not be
|
|
55
|
+
in the user's visible output, or other "hidden" tokens.
|
|
56
|
+
|
|
57
|
+
Will be 0 if not reported by the provider.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
cache_read_tokens: int = 0
|
|
61
|
+
"""The number of tokens read from cache (prompt caching).
|
|
62
|
+
|
|
63
|
+
These are input tokens that were read from cache. Cache read tokens are generally
|
|
64
|
+
much less expensive than regular input tokens.
|
|
65
|
+
|
|
66
|
+
Will be 0 if not reported by the provider or if caching was not used.
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
cache_write_tokens: int = 0
|
|
70
|
+
"""The number of tokens written to cache (cache creation).
|
|
71
|
+
|
|
72
|
+
These are input tokens that were written to cache, for future reuse and retrieval.
|
|
73
|
+
Cache write tokens are generally more expensive than uncached input tokens,
|
|
74
|
+
but may lead to cost savings down the line when they are re-read as cache_read_tokens.
|
|
75
|
+
|
|
76
|
+
Will be 0 if not reported by the provider or if caching was not used.
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
reasoning_tokens: int = 0
|
|
80
|
+
"""The number of tokens used for reasoning/thinking.
|
|
81
|
+
|
|
82
|
+
Reasoning tokens are a subset of output_tokens that were generated as part of the model's
|
|
83
|
+
interior reasoning process. They are billed as output tokens, though they are generally
|
|
84
|
+
not shown to the user.
|
|
85
|
+
|
|
86
|
+
Will be 0 if not reported by the provider or if the model does not support reasoning.
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
raw: Any = None
|
|
90
|
+
"""The raw usage object from the provider."""
|
|
91
|
+
|
|
92
|
+
@property
|
|
93
|
+
def total_tokens(self) -> int:
|
|
94
|
+
"""The total number of tokens used (input + output)."""
|
|
95
|
+
return self.input_tokens + self.output_tokens
|
|
@@ -50,6 +50,55 @@ def _is_third_party(module: ModuleType, site_packages: set[str]) -> bool:
|
|
|
50
50
|
)
|
|
51
51
|
|
|
52
52
|
|
|
53
|
+
class _RemoveVersionDecoratorTransformer(cst.CSTTransformer):
|
|
54
|
+
"""CST transformer to remove @ops.version and @version decorators."""
|
|
55
|
+
|
|
56
|
+
@classmethod
|
|
57
|
+
def _is_version_decorator(cls, decorator: cst.Decorator) -> bool:
|
|
58
|
+
"""Returns True if the decorator is @version or @ops.version."""
|
|
59
|
+
decorator_node = decorator.decorator
|
|
60
|
+
|
|
61
|
+
if isinstance(decorator_node, cst.Name) and decorator_node.value == "version":
|
|
62
|
+
return True
|
|
63
|
+
if (
|
|
64
|
+
isinstance(decorator_node, cst.Call)
|
|
65
|
+
and isinstance(decorator_node.func, cst.Name)
|
|
66
|
+
and decorator_node.func.value == "version"
|
|
67
|
+
):
|
|
68
|
+
return True
|
|
69
|
+
|
|
70
|
+
if (
|
|
71
|
+
isinstance(decorator_node, cst.Attribute)
|
|
72
|
+
and isinstance(decorator_node.value, cst.Name)
|
|
73
|
+
and decorator_node.value.value == "ops"
|
|
74
|
+
and decorator_node.attr.value == "version"
|
|
75
|
+
):
|
|
76
|
+
return True
|
|
77
|
+
if isinstance(decorator_node, cst.Call) and isinstance(
|
|
78
|
+
decorator_node.func, cst.Attribute
|
|
79
|
+
):
|
|
80
|
+
func_attribute = decorator_node.func
|
|
81
|
+
if (
|
|
82
|
+
isinstance(func_attribute.value, cst.Name)
|
|
83
|
+
and func_attribute.value.value == "ops"
|
|
84
|
+
and func_attribute.attr.value == "version"
|
|
85
|
+
):
|
|
86
|
+
return True
|
|
87
|
+
|
|
88
|
+
return False
|
|
89
|
+
|
|
90
|
+
def leave_FunctionDef(
|
|
91
|
+
self, original_node: cst.FunctionDef, updated_node: cst.FunctionDef
|
|
92
|
+
) -> cst.FunctionDef:
|
|
93
|
+
"""Returns function definition with @version/@ops.version decorators removed."""
|
|
94
|
+
new_decorators = [
|
|
95
|
+
decorator
|
|
96
|
+
for decorator in updated_node.decorators
|
|
97
|
+
if not self._is_version_decorator(decorator)
|
|
98
|
+
]
|
|
99
|
+
return updated_node.with_changes(decorators=new_decorators)
|
|
100
|
+
|
|
101
|
+
|
|
53
102
|
class _RemoveDocstringTransformer(cst.CSTTransformer):
|
|
54
103
|
"""CST transformer to remove docstrings from functions and classes."""
|
|
55
104
|
|
|
@@ -125,14 +174,9 @@ def _clean_source_code(
|
|
|
125
174
|
if docstr_flag in ("1", "true", "yes"):
|
|
126
175
|
return source.rstrip()
|
|
127
176
|
module = cst.parse_module(source)
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
code = new_module.code
|
|
133
|
-
code = code.rstrip()
|
|
134
|
-
|
|
135
|
-
return code
|
|
177
|
+
module = module.visit(_RemoveVersionDecoratorTransformer())
|
|
178
|
+
module = module.visit(_RemoveDocstringTransformer(exclude_fn_body=exclude_fn_body))
|
|
179
|
+
return module.code.rstrip()
|
|
136
180
|
|
|
137
181
|
|
|
138
182
|
@dataclass(frozen=True)
|
|
@@ -596,9 +640,9 @@ def _clean_source_from_string(source: str, exclude_fn_body: bool = False) -> str
|
|
|
596
640
|
"""Returns cleaned source code string with optional docstring removal."""
|
|
597
641
|
source = dedent(source)
|
|
598
642
|
module = cst.parse_module(source)
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
return
|
|
643
|
+
module = module.visit(_RemoveVersionDecoratorTransformer())
|
|
644
|
+
module = module.visit(_RemoveDocstringTransformer(exclude_fn_body=exclude_fn_body))
|
|
645
|
+
return module.code.rstrip()
|
|
602
646
|
|
|
603
647
|
|
|
604
648
|
def _get_class_source_from_method(method: Callable[..., Any]) -> str:
|
|
@@ -694,6 +738,13 @@ class _DependencyCollector:
|
|
|
694
738
|
# For Python 3.13+
|
|
695
739
|
return definition.func # pyright: ignore[reportFunctionMemberAccess] # pragma: no cover
|
|
696
740
|
|
|
741
|
+
if (
|
|
742
|
+
(wrapped_function := getattr(definition, "fn", None)) is not None
|
|
743
|
+
and not hasattr(definition, "__qualname__")
|
|
744
|
+
and callable(wrapped_function)
|
|
745
|
+
):
|
|
746
|
+
return wrapped_function
|
|
747
|
+
|
|
697
748
|
return definition
|
|
698
749
|
|
|
699
750
|
def _get_source_code(self, definition: Callable[..., Any] | type) -> str | None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mirascope
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.0a5
|
|
4
4
|
Summary: LLM abstractions that aren't obstructions
|
|
5
5
|
Project-URL: Homepage, https://mirascope.com
|
|
6
6
|
Project-URL: Documentation, https://mirascope.com/docs/mirascope/v2
|
|
@@ -51,7 +51,7 @@ Requires-Dist: httpx>=0.27.0
|
|
|
51
51
|
Requires-Dist: pydantic>=2.0.0
|
|
52
52
|
Requires-Dist: typing-extensions>=4.10.0
|
|
53
53
|
Provides-Extra: all
|
|
54
|
-
Requires-Dist: anthropic<1.0,>=0.
|
|
54
|
+
Requires-Dist: anthropic<1.0,>=0.75.0; extra == 'all'
|
|
55
55
|
Requires-Dist: google-genai<2,>=1.48.0; extra == 'all'
|
|
56
56
|
Requires-Dist: libcst>=1.8.6; extra == 'all'
|
|
57
57
|
Requires-Dist: mcp<2,>=1.0.0; extra == 'all'
|
|
@@ -70,7 +70,7 @@ Requires-Dist: pillow<11,>=10.4.0; extra == 'all'
|
|
|
70
70
|
Requires-Dist: proto-plus>=1.24.0; extra == 'all'
|
|
71
71
|
Requires-Dist: pydantic-settings>=2.12.0; extra == 'all'
|
|
72
72
|
Provides-Extra: anthropic
|
|
73
|
-
Requires-Dist: anthropic<1.0,>=0.
|
|
73
|
+
Requires-Dist: anthropic<1.0,>=0.75.0; extra == 'anthropic'
|
|
74
74
|
Provides-Extra: api
|
|
75
75
|
Requires-Dist: pydantic-settings>=2.12.0; extra == 'api'
|
|
76
76
|
Provides-Extra: google
|
|
@@ -3,10 +3,17 @@ mirascope/api/__init__.py,sha256=9EOn04v3kFagbL1_RTpT_uOwUf_lZeFXVb69g4uaNfs,201
|
|
|
3
3
|
mirascope/api/client.py,sha256=3JrrC2zNlEttAUXHGN1kbDpGczyI9zCNiSZ3dEyqtAI,8253
|
|
4
4
|
mirascope/api/settings.py,sha256=NeROu5F0xFDUs0jIPFhD_FzBgVjI2mgGkMHeVquoDIM,2125
|
|
5
5
|
mirascope/api/_generated/README.md,sha256=7-B_qhXCHaXKX9FPG-G112hKmXM64uM6eNqmSdpaL_8,6079
|
|
6
|
-
mirascope/api/_generated/__init__.py,sha256=
|
|
7
|
-
mirascope/api/_generated/client.py,sha256=
|
|
6
|
+
mirascope/api/_generated/__init__.py,sha256=Gkxd073vC9Oku7nED0lguldqOU9LCUmmZ95mXIS8pJE,6308
|
|
7
|
+
mirascope/api/_generated/client.py,sha256=Mm_6SKncKaeEsjG7mAELrglMeCwzaluKoUtWnixjraY,6751
|
|
8
8
|
mirascope/api/_generated/environment.py,sha256=zrGdNnUZkaUyUtaamv2nKGfT9KZA5aCeWdSSN2dNphA,265
|
|
9
|
-
mirascope/api/_generated/reference.md,sha256=
|
|
9
|
+
mirascope/api/_generated/reference.md,sha256=dY3ZAXazhXcWGEElDsmmWUEGh3Dpqwrrp6J1GqhdZnE,16788
|
|
10
|
+
mirascope/api/_generated/api_keys/__init__.py,sha256=SEqsc8eFGslfkVscvHABTONAy9ElPqgASfqwhwlAAzc,257
|
|
11
|
+
mirascope/api/_generated/api_keys/client.py,sha256=4lskg3QWcyrm1i8OOgAR6tP4vy8myLFFByDqSstMIsY,11209
|
|
12
|
+
mirascope/api/_generated/api_keys/raw_client.py,sha256=FBiXrm7_FTyEguj-T--Vz3rHCKbU0akP1UnnIBU3-30,30994
|
|
13
|
+
mirascope/api/_generated/api_keys/types/__init__.py,sha256=sycSAknyK7WLoSQ9upf-g16-jExxkBXKMFLJKrg6esk,350
|
|
14
|
+
mirascope/api/_generated/api_keys/types/api_keys_create_response.py,sha256=zxCa4hPxhokIxekq8sTGcrIhrDGFVnlqkBtTQ87yt2Q,1161
|
|
15
|
+
mirascope/api/_generated/api_keys/types/api_keys_get_response.py,sha256=CJ0ULTnhUl2McMlFMu9utH69U-x62xd2RCAL6eI-mK8,1145
|
|
16
|
+
mirascope/api/_generated/api_keys/types/api_keys_list_response_item.py,sha256=-hCwR2b2IoU3FO6xaz1fwprFzz-etUMwQnrGjUSuDYQ,1150
|
|
10
17
|
mirascope/api/_generated/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
|
|
11
18
|
mirascope/api/_generated/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
|
|
12
19
|
mirascope/api/_generated/core/client_wrapper.py,sha256=IDwIwiGeWsn5PvxRr8Cd_mZtNLrKYMbypyz0pfHloIA,1609
|
|
@@ -24,14 +31,46 @@ mirascope/api/_generated/core/serialization.py,sha256=UO5lcAerNrG-RfFLXPVU5MNV4x
|
|
|
24
31
|
mirascope/api/_generated/docs/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
|
|
25
32
|
mirascope/api/_generated/docs/client.py,sha256=xeGkT4Oa2iiZruR3Xi7v4rDAx8blIkp6mIqy0RFpzBw,2507
|
|
26
33
|
mirascope/api/_generated/docs/raw_client.py,sha256=GpvLeVDBrti9DqCjb3IHwEucR-vE899HEiDRthVtEDc,4815
|
|
27
|
-
mirascope/api/_generated/
|
|
34
|
+
mirascope/api/_generated/environments/__init__.py,sha256=x9Fz9SsnkYoHC5xg_wEN5IF6hYdRSxjv3YRSfPG2C6c,385
|
|
35
|
+
mirascope/api/_generated/environments/client.py,sha256=ILvVvUopS7zVO57giQwUHVVjoSe_4VXC5r22lqjQakQ,13391
|
|
36
|
+
mirascope/api/_generated/environments/raw_client.py,sha256=SMGOQqcMKbYE6_TpXugO8ghkToazEJRrYV-I24nJ4zY,39591
|
|
37
|
+
mirascope/api/_generated/environments/types/__init__.py,sha256=mMud06Aewplszo1rUPu16IHO3ZdYFZ_MRvZFEiLMTIk,510
|
|
38
|
+
mirascope/api/_generated/environments/types/environments_create_response.py,sha256=GxOWifa4dNdTv401nfLsTopHp65rtIKEyQszz0nQACg,738
|
|
39
|
+
mirascope/api/_generated/environments/types/environments_get_response.py,sha256=ckAAsdrAmpFFNhd1XPLK21veVzLZ08pdeEc_Y4c7JZE,735
|
|
40
|
+
mirascope/api/_generated/environments/types/environments_list_response_item.py,sha256=cBo_J6ZBKngKNaKKlEvRL1Mt9CvuRwlt_3nzaolGF08,740
|
|
41
|
+
mirascope/api/_generated/environments/types/environments_update_response.py,sha256=XyP27SXQ77aTzxImi3xX5D5CoSsajAY0YWDlHjYTZC0,738
|
|
42
|
+
mirascope/api/_generated/errors/__init__.py,sha256=0pdSJizeQJozAkZFZcM3pXN6t6BIcqqZE9AAhHJIDPk,445
|
|
28
43
|
mirascope/api/_generated/errors/bad_request_error.py,sha256=RAVSjgWr8jM993BLo-gO4c7H1ICDBI8a4MJ0UEen45Q,421
|
|
44
|
+
mirascope/api/_generated/errors/conflict_error.py,sha256=U4FRUqIi0oKLxDMCtK1WD-cPcdoJA-OlVQ6wtPm-QnM,418
|
|
45
|
+
mirascope/api/_generated/errors/forbidden_error.py,sha256=jej2hsAPAgWhNhsa8SJcNSNMmY4cqXDmVKdJc007hUE,428
|
|
46
|
+
mirascope/api/_generated/errors/internal_server_error.py,sha256=bBWSdhuiUZFBZNm5qS29zIyOsC2GdKErQNKqYog-t34,408
|
|
47
|
+
mirascope/api/_generated/errors/not_found_error.py,sha256=NFhOrCV76REeRC-XL-cklnw6jQceSKYGYsM9z8ULg_0,416
|
|
29
48
|
mirascope/api/_generated/health/__init__.py,sha256=UN1u0qzFG8zDGf3CABrpMNNEP467lQZKLQfTOpkwm2E,215
|
|
30
49
|
mirascope/api/_generated/health/client.py,sha256=SvPGUe72VyNoA7feW9iE4RDTzGIQ_pkXiR-d2Bg-cqU,2548
|
|
31
50
|
mirascope/api/_generated/health/raw_client.py,sha256=XRhraAPYg3ur0m9zMtQV86izy-_xdjpF3mDimytfFow,4523
|
|
32
51
|
mirascope/api/_generated/health/types/__init__.py,sha256=dYIZPgww1FuKOKJTeUWMDad1XYTzQaxp8jbwsfI_THI,272
|
|
33
52
|
mirascope/api/_generated/health/types/health_check_response.py,sha256=CcwGy-ROHpWfgKcRxw537fsnO66bxKtT5eo4sealVgo,681
|
|
34
53
|
mirascope/api/_generated/health/types/health_check_response_status.py,sha256=eCSX3a4cA5zETaIbLvtYkSeS3585DuJa9VnM1fw3VxE,155
|
|
54
|
+
mirascope/api/_generated/organizations/__init__.py,sha256=AKFDrQ1SedKfX5Zsv8Kx8ynS8GYInaAm-jNvz1zFQiQ,695
|
|
55
|
+
mirascope/api/_generated/organizations/client.py,sha256=qHBuvDaAS4MQG3JUGC4jUwgPo-PMG4twuQcXbk2hT_Q,10303
|
|
56
|
+
mirascope/api/_generated/organizations/raw_client.py,sha256=5W5qnQNgDcEq63AaNaiKD8rUNYn1BU-IG6N9xrLCCYU,32779
|
|
57
|
+
mirascope/api/_generated/organizations/types/__init__.py,sha256=wr6VfMIdBcNlA3qelxtxJZp3fvXwtr-DwsQ-PKlPaCs,996
|
|
58
|
+
mirascope/api/_generated/organizations/types/organizations_create_response.py,sha256=J7Sp5j4EEZtpm4CK_dboRk9iJYR42K5GG2AYiyeu0PY,705
|
|
59
|
+
mirascope/api/_generated/organizations/types/organizations_create_response_role.py,sha256=OsgWOdAazUDPZBwhQ8piqB5dPYPFGRGXUvzZxY_cwT0,189
|
|
60
|
+
mirascope/api/_generated/organizations/types/organizations_get_response.py,sha256=KlxQNWGKLSPwgVyU-qmclUQE4yzIoRkOhidO8Qy067I,693
|
|
61
|
+
mirascope/api/_generated/organizations/types/organizations_get_response_role.py,sha256=zYLPJtdYFk8Mz6e1yxpirva6Co2aaqKQksFOM4lCjME,186
|
|
62
|
+
mirascope/api/_generated/organizations/types/organizations_list_response_item.py,sha256=sg-aiwhOU6JLtAbNGACMJMLoMPvTFo3IP-9Pfgp6XZ8,714
|
|
63
|
+
mirascope/api/_generated/organizations/types/organizations_list_response_item_role.py,sha256=H2a1FebiZ9nAIZ92TnHyO4w3oRr0L4EAc58vaJXTW5U,191
|
|
64
|
+
mirascope/api/_generated/organizations/types/organizations_update_response.py,sha256=V7o68hWmAnQpuPQ9gYekO5A-PD0Z6pjgzKPX55N1FUs,705
|
|
65
|
+
mirascope/api/_generated/organizations/types/organizations_update_response_role.py,sha256=9Ya26-vC-PGq5hEmDlfB1ov6G2HjHYezblbnFjLj5Pk,189
|
|
66
|
+
mirascope/api/_generated/projects/__init__.py,sha256=WuwOMLclS5a2OFxwBtCiBjI9De3OfD67DcZ-iI6IrAY,353
|
|
67
|
+
mirascope/api/_generated/projects/client.py,sha256=kRz2jOIQ_b4RPPYVAUyL0eh4kuaovrDiOCAphplvErU,11963
|
|
68
|
+
mirascope/api/_generated/projects/raw_client.py,sha256=Xv1I4SM4p7ltXFNlxDNF0JzAopCJPovNc2uqAjuEyVE,38401
|
|
69
|
+
mirascope/api/_generated/projects/types/__init__.py,sha256=s4-7DLBngfy8scBC2sd149ACK2f7T6WoFkPIDWCi89Q,462
|
|
70
|
+
mirascope/api/_generated/projects/types/projects_create_response.py,sha256=o8KUH8AkZnuJNLd-fXK_IEdN7KRWNwNKeJ8TcTEMZ9Q,869
|
|
71
|
+
mirascope/api/_generated/projects/types/projects_get_response.py,sha256=l4DvJzX9UHGUeS3NXUk9A8bIbNfwEAi6w-4bEMqXaMY,866
|
|
72
|
+
mirascope/api/_generated/projects/types/projects_list_response_item.py,sha256=7LubNKwdPDtxCHvTXokIgDneh1diJ2N4YBdX8W9cWms,871
|
|
73
|
+
mirascope/api/_generated/projects/types/projects_update_response.py,sha256=Xy-q2SW-tjBpqh2bFIcAZmmR4WwWpZllCXYO8u1Hd_0,869
|
|
35
74
|
mirascope/api/_generated/traces/__init__.py,sha256=SJinJhQCXCPrUYr9OfVMMBkS4qFW2ij9fm7Bc-tDF3o,3543
|
|
36
75
|
mirascope/api/_generated/traces/client.py,sha256=FXZu6X_T-8oWEaN51KG2sTX8zDu2TJkRN3NWfElPKJQ,5374
|
|
37
76
|
mirascope/api/_generated/traces/raw_client.py,sha256=r-QSTNCxvr3SxJe05z_XRvYgWjv9RZvA46EMZSRq1vQ,5982
|
|
@@ -59,16 +98,24 @@ mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_
|
|
|
59
98
|
mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_status.py,sha256=V5HwPpOY0WCScTE6OJe55hEYkKoTbLM4B6qCFicsUUg,668
|
|
60
99
|
mirascope/api/_generated/traces/types/traces_create_response.py,sha256=LMCVtItwbrnqx9C4v9gkUxYgk4Ut6fJHziyQ_3W8kwE,867
|
|
61
100
|
mirascope/api/_generated/traces/types/traces_create_response_partial_success.py,sha256=9pTxUVArKBy0W3demKDBmfANGRYvhoDN6dt6ZhjjQpU,881
|
|
62
|
-
mirascope/api/_generated/types/__init__.py,sha256=
|
|
63
|
-
mirascope/api/_generated/types/
|
|
101
|
+
mirascope/api/_generated/types/__init__.py,sha256=A8hRek8If7ZF2TKEkBvPAbofmYp8MwxK4gS2wHcdaEw,1198
|
|
102
|
+
mirascope/api/_generated/types/already_exists_error.py,sha256=DgG3dF2aCAoO8LAd4AMRY4ysxsjJC2qdhrq9Xylhpt4,683
|
|
103
|
+
mirascope/api/_generated/types/already_exists_error_tag.py,sha256=Gkkp8M2D68eeecqivCeLZdEQ9s_E4-Wian0_SVrRMGU,167
|
|
104
|
+
mirascope/api/_generated/types/database_error.py,sha256=F76RewoU6y1WAFHKWBsAj8M5VLtczL8abzM6uJwTDug,683
|
|
105
|
+
mirascope/api/_generated/types/database_error_tag.py,sha256=f7yylB3n3uxnf99qE3w3jLz5F5lCx-thc7px9SvvK9E,157
|
|
106
|
+
mirascope/api/_generated/types/http_api_decode_error.py,sha256=hAqR-MUDmNtEuK_AhNgsgWuD0NZm-jb4uZL9WJz4fIw,765
|
|
64
107
|
mirascope/api/_generated/types/http_api_decode_error_tag.py,sha256=4brH10CC1DEuSmruTFmEuy9rVgpucv9Wsde-4g6oYQM,167
|
|
65
|
-
mirascope/api/_generated/types/issue.py,sha256=
|
|
108
|
+
mirascope/api/_generated/types/issue.py,sha256=iQeOA7wIh2uFEW4hI-fMxT6jSG7z6T3kwOFOKK-207A,1011
|
|
66
109
|
mirascope/api/_generated/types/issue_tag.py,sha256=C4AQ5_ewX0CacDGg9pHKh6DW4yEDVS4QmckOH3W_TsI,316
|
|
67
|
-
mirascope/api/_generated/types/
|
|
68
|
-
mirascope/api/_generated/types/
|
|
69
|
-
mirascope/api/_generated/types/
|
|
70
|
-
mirascope/
|
|
71
|
-
mirascope/
|
|
110
|
+
mirascope/api/_generated/types/not_found_error_body.py,sha256=BgfmnSIh6XPWq78_5U1UWcOywihwO2tsBF8KNgA0gbw,667
|
|
111
|
+
mirascope/api/_generated/types/not_found_error_tag.py,sha256=dQtLl0Mr8uW56l-DVlHqaHxxUaUu4s5p8Dk2nRcx4yk,157
|
|
112
|
+
mirascope/api/_generated/types/permission_denied_error.py,sha256=J1KZQ3hs_In0DnzVSH5Xq_6sBw7TYuWXxMilePiI8MA,695
|
|
113
|
+
mirascope/api/_generated/types/permission_denied_error_tag.py,sha256=4bockT3ftu1Fda3mXzXb5-2xMzQsklnduXIJXGJ08SY,179
|
|
114
|
+
mirascope/api/_generated/types/property_key.py,sha256=G_qu_0R1rdi2eY-rhTC3NO-IrbdHR0AcgdjSdwIOkBE,181
|
|
115
|
+
mirascope/api/_generated/types/property_key_key.py,sha256=cEKRj67H_IP7Gl-cRqQkLIoFL0TFz4zbhwvBeLV8r7Y,696
|
|
116
|
+
mirascope/api/_generated/types/property_key_key_tag.py,sha256=aNrMYf3B6V098Z9-tqlkNH1XvbkX9t2se3x-qbVe0CQ,151
|
|
117
|
+
mirascope/llm/__init__.py,sha256=2xRvSo1yIUrT6GuU0X6btDLsBjGtTeXw2HUxXvnYtxA,5163
|
|
118
|
+
mirascope/llm/exceptions.py,sha256=rxkADeNzENu898sp2YFa9yhsUlYFczX7mh0Su7cmw0I,4831
|
|
72
119
|
mirascope/llm/calls/__init__.py,sha256=rnQ29w8x_EAEecZhP2i6N6u_qE-TO3sBZGAztF3o2QQ,273
|
|
73
120
|
mirascope/llm/calls/calls.py,sha256=tb0GTfH4dxna5RvRjcrS969QPDgWT45t6J3khHzkQ9s,11783
|
|
74
121
|
mirascope/llm/calls/decorator.py,sha256=F2KN-Ur25NyYZ8ir5yDozKP5X_bZTjQGMKTerEDrFnc,8766
|
|
@@ -100,63 +147,75 @@ mirascope/llm/prompts/_utils.py,sha256=kwSUdP4etxapheLoQPtB2UFXJs13o2IACWNdEVb_d
|
|
|
100
147
|
mirascope/llm/prompts/decorator.py,sha256=IcQv2lktag5gioEYp5aPtaIe66ZR-i1gaYpj7jk2qVs,6985
|
|
101
148
|
mirascope/llm/prompts/prompts.py,sha256=VcuGDbqT4Z3mBgJIaa0RsTSGkck1MyaxdufkgKHMVcU,14041
|
|
102
149
|
mirascope/llm/prompts/protocols.py,sha256=auopJnLAfOognCFVVnXrvb4zFj3102Ofi2iVHfublM0,2242
|
|
103
|
-
mirascope/llm/providers/__init__.py,sha256=
|
|
150
|
+
mirascope/llm/providers/__init__.py,sha256=JEsCpCwzG55LVLfP3ckGKnBFMcEnM9KRuYrtn-h626c,1114
|
|
104
151
|
mirascope/llm/providers/_missing_import_stubs.py,sha256=CO9FZgM0r1jWoTPOzc6G_fJ8pLUPK1K_c8Pg9OWfoDc,1581
|
|
105
|
-
mirascope/llm/providers/load_provider.py,sha256=Ui4ZRZbIFnsnu092YOe0BENtE93D8l2SHy412qL8Ugc,1837
|
|
106
152
|
mirascope/llm/providers/model_id.py,sha256=qr7RKkP_3Blgxjzw_HvQVJLM1aTzsP-jVFsycz0itI8,292
|
|
107
|
-
mirascope/llm/providers/provider_id.py,sha256=
|
|
108
|
-
mirascope/llm/providers/provider_registry.py,sha256=
|
|
109
|
-
mirascope/llm/providers/anthropic/__init__.py,sha256=
|
|
110
|
-
mirascope/llm/providers/anthropic/
|
|
111
|
-
mirascope/llm/providers/anthropic/
|
|
112
|
-
mirascope/llm/providers/anthropic/
|
|
113
|
-
mirascope/llm/providers/anthropic/
|
|
114
|
-
mirascope/llm/providers/anthropic/_utils/
|
|
115
|
-
mirascope/llm/providers/
|
|
116
|
-
mirascope/llm/providers/
|
|
117
|
-
mirascope/llm/providers/
|
|
153
|
+
mirascope/llm/providers/provider_id.py,sha256=ueIYpQaUgNWeiAA2fuqldPWKxsd9rTlOu8k6jmpmesY,970
|
|
154
|
+
mirascope/llm/providers/provider_registry.py,sha256=uNpDeNMmvMYk5xrhHLAsyY0fhHo6aX7KZkq9JPLLyRY,7733
|
|
155
|
+
mirascope/llm/providers/anthropic/__init__.py,sha256=7G_udubLtuCSD9rtBD1t9vYd_FrqXM2UGdN6rE02VTE,854
|
|
156
|
+
mirascope/llm/providers/anthropic/beta_provider.py,sha256=pz6_XM0hWyWcj_ZiiyodYgsxuXTE20y7Va_NER1adbs,11655
|
|
157
|
+
mirascope/llm/providers/anthropic/model_id.py,sha256=3Wf4cZG8NUO3i7dHmw3At46JMfTuRWpS8pKYX2s-8B8,715
|
|
158
|
+
mirascope/llm/providers/anthropic/model_info.py,sha256=YuklafFMIpkyLBJSBB0XlB6MK9Bz6hp9Z6APxJ9G1j4,2965
|
|
159
|
+
mirascope/llm/providers/anthropic/provider.py,sha256=s2FXex5MmUjEwlWL2djrI7_Vm32yQs1vALPtBSF5Dkk,14966
|
|
160
|
+
mirascope/llm/providers/anthropic/_utils/__init__.py,sha256=e3jb2NSsWYYgEQ-9r6qOmsnhliEKiZicQ6hI7jRSs4g,586
|
|
161
|
+
mirascope/llm/providers/anthropic/_utils/beta_decode.py,sha256=NyEVPZ7_504-u_AnxnBB0A7S-fDlnrCC3Y3Rpvmzqxs,10032
|
|
162
|
+
mirascope/llm/providers/anthropic/_utils/beta_encode.py,sha256=E5cXJog63xfekJ-SX2-K0TJl2CE22zQWmq-hMv-iCFI,7280
|
|
163
|
+
mirascope/llm/providers/anthropic/_utils/decode.py,sha256=tMcEEEM9WbTxR7kiw0xEY3ILkNndkfwd7azYBOZpIAA,10268
|
|
164
|
+
mirascope/llm/providers/anthropic/_utils/encode.py,sha256=HjJvBijtGI-aWbncCKHY02fdXyApC-OlH6An05pQgOc,13036
|
|
165
|
+
mirascope/llm/providers/anthropic/_utils/errors.py,sha256=aYwYwePZj6P7dGKgb50YXisPppXKQDGfyCBnwyb64OY,1714
|
|
166
|
+
mirascope/llm/providers/base/__init__.py,sha256=RkSlx0iVrPIDaJeiaTBm2t8Xu72fCTHJDYX_9H8gS4Q,333
|
|
167
|
+
mirascope/llm/providers/base/_utils.py,sha256=_7BJsYQ80EFPwooh0RbmSOV-P86S_52Fs0HnaLFw7fU,7615
|
|
168
|
+
mirascope/llm/providers/base/base_provider.py,sha256=Ze-KIbt279VZWeiaT0OXsGaRScO1c5sJEAIlnClw734,51826
|
|
118
169
|
mirascope/llm/providers/base/kwargs.py,sha256=pjaHVqtlmScUBqG8ZAllVaLoepdKE-KYl2eTqzOBXm0,406
|
|
119
170
|
mirascope/llm/providers/base/params.py,sha256=x2WLz0s5rMZ3u3GBGQmRlYGjecePtsLglHSJBLh35YE,3670
|
|
120
171
|
mirascope/llm/providers/google/__init__.py,sha256=FgBiQApWbD0pnZuJlYVvoi_LN-5WRg6rsOtfILJRwlk,596
|
|
121
172
|
mirascope/llm/providers/google/message.py,sha256=ryNsMKPSyBSVXl_H0MQEaSiWC3FFybjxIUuORNSiKTk,179
|
|
122
|
-
mirascope/llm/providers/google/model_id.py,sha256=
|
|
123
|
-
mirascope/llm/providers/google/
|
|
124
|
-
mirascope/llm/providers/google/
|
|
125
|
-
mirascope/llm/providers/google/_utils/
|
|
126
|
-
mirascope/llm/providers/google/_utils/
|
|
173
|
+
mirascope/llm/providers/google/model_id.py,sha256=vZJeKT-_J7oiFT5AkudintCFE4DhFJ-VZOFOcLP1rn0,603
|
|
174
|
+
mirascope/llm/providers/google/model_info.py,sha256=EwR2YwdFoDxF0cWF2ZMRwNuhxrPKYZIEdjHHAZ10j7I,1982
|
|
175
|
+
mirascope/llm/providers/google/provider.py,sha256=icrrXhelmM5BxOdJDx1PuhXrA96GsX_nWtFWuhbtcQ4,15523
|
|
176
|
+
mirascope/llm/providers/google/_utils/__init__.py,sha256=MXG48jLez-S8hyMV4QVg83OLi20mayqbk-o0gYZ39mQ,293
|
|
177
|
+
mirascope/llm/providers/google/_utils/decode.py,sha256=vxtDbCb6UlAFN0b5rrirfQ9xRhMSQD0Ai3SEq5rFz24,11205
|
|
178
|
+
mirascope/llm/providers/google/_utils/encode.py,sha256=i0if8XnD662qJaeYW77b_oqlDrg9Qwi3hgZy1CoNACI,11345
|
|
179
|
+
mirascope/llm/providers/google/_utils/errors.py,sha256=ci410dXx6NuKAkzWJFZjrefhGRnxLUXX3r0W4Uz7Xkg,1381
|
|
127
180
|
mirascope/llm/providers/mlx/__init__.py,sha256=zUYFUn36AVxHaN0hgi-RTwVeO2eydz9B-8OkAsB9aOY,574
|
|
128
|
-
mirascope/llm/providers/mlx/_utils.py,sha256=
|
|
181
|
+
mirascope/llm/providers/mlx/_utils.py,sha256=2mMac0wUxbwsdlTI8MwO7aJ_bTJrvAE0LQusSluZMFw,4142
|
|
129
182
|
mirascope/llm/providers/mlx/mlx.py,sha256=SfNpbKkRpJMW984-wVDyhzgMXfUL5Huo3tQfH3OvbPo,8116
|
|
130
183
|
mirascope/llm/providers/mlx/model_id.py,sha256=oHj-ptT4vTPcatHtjDSw7Z7-xs8ACMfYeRoEsKkM6yE,618
|
|
131
|
-
mirascope/llm/providers/mlx/provider.py,sha256=
|
|
184
|
+
mirascope/llm/providers/mlx/provider.py,sha256=3J1oX9G1xXvnXGIAf9SMDKWxi1SEuztF2SfLwmwO9Xg,14330
|
|
132
185
|
mirascope/llm/providers/mlx/encoding/__init__.py,sha256=qdI7HELeha1wj1OoOn1jH0Xta6yNkI_SDlYbqoWUd0c,163
|
|
133
186
|
mirascope/llm/providers/mlx/encoding/base.py,sha256=5cQX_8RBEgrfiHiUD7waPAmi3Sy_0gkBsFpRvf7VIdE,2228
|
|
134
|
-
mirascope/llm/providers/mlx/encoding/transformers.py,sha256=
|
|
135
|
-
mirascope/llm/providers/
|
|
187
|
+
mirascope/llm/providers/mlx/encoding/transformers.py,sha256=8tAK9kJfcVRn8ORX6eOeOWSQFd32sJYqPMoRhwlZoYM,5011
|
|
188
|
+
mirascope/llm/providers/ollama/__init__.py,sha256=PTHoML03Z5aJLl0B4iQTuBq35o_NV_w7I3gKQEypXu8,438
|
|
189
|
+
mirascope/llm/providers/ollama/provider.py,sha256=9c0pKDtc--H0SLiyqrjBKzt-Ya8gE9qZ-jpZvKEG90Y,2311
|
|
190
|
+
mirascope/llm/providers/openai/__init__.py,sha256=D1b01XExoHIDdPdoWEBtnEZLZdEL54ASqOrPnt3YfAE,454
|
|
136
191
|
mirascope/llm/providers/openai/model_id.py,sha256=XDQxd2BgG_YIGwzyTRNaySRXoU80-q0AR-xOdtvpB8I,1009
|
|
137
|
-
mirascope/llm/providers/openai/model_info.py,sha256=
|
|
138
|
-
mirascope/llm/providers/openai/provider.py,sha256=
|
|
139
|
-
mirascope/llm/providers/openai/
|
|
140
|
-
mirascope/llm/providers/openai/
|
|
192
|
+
mirascope/llm/providers/openai/model_info.py,sha256=DN-y-qzq2UahK11hJUe12SB1upRD6BWZkTLhEX092sY,9563
|
|
193
|
+
mirascope/llm/providers/openai/provider.py,sha256=ius7GUMcrEyaEDltZAsp1JFaYJRhlV2EbKkbybxi7Fw,15223
|
|
194
|
+
mirascope/llm/providers/openai/_utils/__init__.py,sha256=jzAtRZEqvbHnJw8iEillZU4tWXedmtTWuE_PqyYUVvM,101
|
|
195
|
+
mirascope/llm/providers/openai/_utils/errors.py,sha256=28O7FW6qH203gShYOh5b1_7GimuESCzIdT32AF86nuQ,1624
|
|
196
|
+
mirascope/llm/providers/openai/completions/__init__.py,sha256=5X2lzkbta0JNh9KQR3Sb1C4VnQ0LcmMxOeH_pYtsB-o,766
|
|
197
|
+
mirascope/llm/providers/openai/completions/base_provider.py,sha256=w10W-lK1XAWktlOs0GM8tqeTOUuE4wXomcH3uTn1OX8,18014
|
|
198
|
+
mirascope/llm/providers/openai/completions/provider.py,sha256=jEH-9rMmNLEBDWVaOZj0rMuRtjwQxdK917tODk-C6pE,719
|
|
141
199
|
mirascope/llm/providers/openai/completions/_utils/__init__.py,sha256=j6brTqACyRS71pkZIcL-LxneE5ALhaHkCtUnBUS0448,266
|
|
142
|
-
mirascope/llm/providers/openai/completions/_utils/decode.py,sha256=
|
|
143
|
-
mirascope/llm/providers/openai/completions/_utils/encode.py,sha256=
|
|
200
|
+
mirascope/llm/providers/openai/completions/_utils/decode.py,sha256=4yoS_wNK57RAxfjOL7kimSD5mYh_2IK5XDpAwspsoOg,8250
|
|
201
|
+
mirascope/llm/providers/openai/completions/_utils/encode.py,sha256=ZESiZJliHK-DA4DCH-oLtQij288QcR_LkdRs37Lsyrg,13680
|
|
144
202
|
mirascope/llm/providers/openai/responses/__init__.py,sha256=Mo45QmWX111jc0Ws24LrJg3w2gVoFgVGDcby0_iSOLk,506
|
|
145
|
-
mirascope/llm/providers/openai/responses/provider.py,sha256=
|
|
203
|
+
mirascope/llm/providers/openai/responses/provider.py,sha256=vjwJ7weexDmeYbiQCql2yNmLnLejGJoGODd-WDSNkBo,16630
|
|
146
204
|
mirascope/llm/providers/openai/responses/_utils/__init__.py,sha256=U2VNfEJCaqorAJBZDV7p3rFEp1fyk7vSitYFv_5G5Cs,232
|
|
147
|
-
mirascope/llm/providers/openai/responses/_utils/decode.py,sha256=
|
|
148
|
-
mirascope/llm/providers/openai/responses/_utils/encode.py,sha256=
|
|
149
|
-
mirascope/llm/providers/
|
|
150
|
-
mirascope/llm/providers/
|
|
151
|
-
mirascope/llm/responses/__init__.py,sha256=
|
|
205
|
+
mirascope/llm/providers/openai/responses/_utils/decode.py,sha256=Ua3ZVwqRiLxwDhycjnq6BLsPkIjNxmzTeZmMT2Z6MKc,9368
|
|
206
|
+
mirascope/llm/providers/openai/responses/_utils/encode.py,sha256=RLxP9rFXuXqoFnbwt6jG1AgqJyYbLdrcxa1RzTXsteI,12797
|
|
207
|
+
mirascope/llm/providers/together/__init__.py,sha256=mtWAGrQUPHNhmkGKCiLirst6PsCUCS5oK2bZsEf9s3Q,453
|
|
208
|
+
mirascope/llm/providers/together/provider.py,sha256=LauQR6kdxFNkO8CqaJIbiyn2TxI6mO3z5GhnZbHxQa0,1295
|
|
209
|
+
mirascope/llm/responses/__init__.py,sha256=sYr6Sm9G0pxbZoev-RVgz3o3FKHeAU3wa_G5NXjmdnw,1386
|
|
152
210
|
mirascope/llm/responses/_utils.py,sha256=JkKXzG6-WqAbbmWLKOmbe7gDpp9xwg7xNHXryFbt6ME,1662
|
|
153
|
-
mirascope/llm/responses/base_response.py,sha256=
|
|
154
|
-
mirascope/llm/responses/base_stream_response.py,sha256=
|
|
155
|
-
mirascope/llm/responses/finish_reason.py,sha256=
|
|
156
|
-
mirascope/llm/responses/response.py,sha256=
|
|
157
|
-
mirascope/llm/responses/root_response.py,sha256=
|
|
211
|
+
mirascope/llm/responses/base_response.py,sha256=5yjVtn3SH09hdp--B3ioT2gkmB3LpqgkBEAKuopOKBc,4170
|
|
212
|
+
mirascope/llm/responses/base_stream_response.py,sha256=xM0O94dE3h1ll_CYdwszf4gS-clMwX6k9jHEP1MEnqQ,29257
|
|
213
|
+
mirascope/llm/responses/finish_reason.py,sha256=Az5OY6pfZoOPEpzVnl07AqZPz5ZC-w4YKwpUPbFJGdM,798
|
|
214
|
+
mirascope/llm/responses/response.py,sha256=zbMWIOwYQq7Z0JgdfRpm4Qzy5Yb7Suty_vmf1kZuenE,12494
|
|
215
|
+
mirascope/llm/responses/root_response.py,sha256=lgfSwlhy5S-X4FDX70vt-uT6BOLfaTTaGIFbLkdWE94,6285
|
|
158
216
|
mirascope/llm/responses/stream_response.py,sha256=ut85tOLGbGI3abheHKf55qEndLsRmddo1sEMQk7PtNo,24142
|
|
159
217
|
mirascope/llm/responses/streams.py,sha256=TmEFvLVEWHfVYplik61yUWisxe8JGbaZdh7yC7e-axI,10789
|
|
218
|
+
mirascope/llm/responses/usage.py,sha256=mm4f9EDBzR57bqPTG2B0iqYnwbyog7csHqo0zjnwWVM,2984
|
|
160
219
|
mirascope/llm/tools/__init__.py,sha256=P9NX6pP5fKScTAuR9K3fODdW17wQ-6fcArVx2klGies,961
|
|
161
220
|
mirascope/llm/tools/_utils.py,sha256=mUi6vUEwYuwu8W9FCQcQ_9h_VE_U-Y3Y2UQ2YptPZL4,1171
|
|
162
221
|
mirascope/llm/tools/decorator.py,sha256=1K-67dJkjCOS1rHAM91lOT8XfShTw54QA-TMEok5eH0,5326
|
|
@@ -171,7 +230,7 @@ mirascope/llm/types/type_vars.py,sha256=OsAcQAZh5T_X8ZTLlP4GC1x3qgVY9rfYSnME8aMT
|
|
|
171
230
|
mirascope/ops/__init__.py,sha256=ryfU8Zn_PRELldrExsjz89eN_Qmk9FoDipaDsgf5CaY,5545
|
|
172
231
|
mirascope/ops/exceptions.py,sha256=N5AES285tTxFJ1THIeJht-_ZEQ7-7_FWoes4EBAu3B8,641
|
|
173
232
|
mirascope/ops/_internal/__init__.py,sha256=yCf8bnHiQFWYsBkwBPyMqknI5apmOwlmyf105mH9EAE,173
|
|
174
|
-
mirascope/ops/_internal/closure.py,sha256=
|
|
233
|
+
mirascope/ops/_internal/closure.py,sha256=lPkZLfL33OZ3yxdZhT3RXqhD0ychKWH0zevU4V-VHCY,42465
|
|
175
234
|
mirascope/ops/_internal/configuration.py,sha256=G_DnUfrAtuPb0-fQQpPts0yFCLdeYW-RqS2Td61pqjg,3616
|
|
176
235
|
mirascope/ops/_internal/context.py,sha256=G0Jiv6XfWjeDyRrh5-Wg6I0UlqiDj17SNMhtQ6Rw3lM,2522
|
|
177
236
|
mirascope/ops/_internal/propagation.py,sha256=2in7uttv2b5MBoe3Ol1mgn6N20TqhH0sErGak7hMUDY,7032
|
|
@@ -200,7 +259,7 @@ mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_input_messages.p
|
|
|
200
259
|
mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_output_messages.py,sha256=qxLxSmwd_2EdymR4a5cDXc9DTSFGQXMhqSHGgS219Y4,957
|
|
201
260
|
mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_system_instructions.py,sha256=ZkWNOh6-tG6LtFP_0Hjfdf_8BqAsIFyP3tNybeo1FnY,388
|
|
202
261
|
mirascope/ops/_internal/instrumentation/llm/gen_ai_types/shared.py,sha256=JpmcF1i25EHc8KMv6nkpBwyIU46B_T8v1L71C16n080,3004
|
|
203
|
-
mirascope-2.0.
|
|
204
|
-
mirascope-2.0.
|
|
205
|
-
mirascope-2.0.
|
|
206
|
-
mirascope-2.0.
|
|
262
|
+
mirascope-2.0.0a5.dist-info/METADATA,sha256=gJnq3JtQUzxjBKEYf1pOdZ2MQW29xMhqmqBVIMgEQEs,8932
|
|
263
|
+
mirascope-2.0.0a5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
264
|
+
mirascope-2.0.0a5.dist-info/licenses/LICENSE,sha256=LAs5Q8mdawTsVdONpDGukwsoc4KEUBmmonDEL39b23Y,1072
|
|
265
|
+
mirascope-2.0.0a5.dist-info/RECORD,,
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
from functools import lru_cache
|
|
2
|
-
|
|
3
|
-
from .anthropic import AnthropicProvider
|
|
4
|
-
from .base import Provider
|
|
5
|
-
from .google import GoogleProvider
|
|
6
|
-
from .mlx import MLXProvider
|
|
7
|
-
from .openai import OpenAIProvider
|
|
8
|
-
from .openai.completions.provider import OpenAICompletionsProvider
|
|
9
|
-
from .openai.responses.provider import OpenAIResponsesProvider
|
|
10
|
-
from .provider_id import ProviderId
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
@lru_cache(maxsize=256)
|
|
14
|
-
def load_provider(
|
|
15
|
-
provider_id: ProviderId, *, api_key: str | None = None, base_url: str | None = None
|
|
16
|
-
) -> Provider:
|
|
17
|
-
"""Create a cached provider instance for the specified provider id.
|
|
18
|
-
|
|
19
|
-
Args:
|
|
20
|
-
provider_id: The provider name ("openai", "anthropic", or "google").
|
|
21
|
-
api_key: API key for authentication. If None, uses provider-specific env var.
|
|
22
|
-
base_url: Base URL for the API. If None, uses provider-specific env var.
|
|
23
|
-
|
|
24
|
-
Returns:
|
|
25
|
-
A cached provider instance for the specified provider with the given parameters.
|
|
26
|
-
|
|
27
|
-
Raises:
|
|
28
|
-
ValueError: If the provider_id is not supported.
|
|
29
|
-
"""
|
|
30
|
-
match provider_id:
|
|
31
|
-
case "anthropic":
|
|
32
|
-
return AnthropicProvider(api_key=api_key, base_url=base_url)
|
|
33
|
-
case "google":
|
|
34
|
-
return GoogleProvider(api_key=api_key, base_url=base_url)
|
|
35
|
-
case "openai":
|
|
36
|
-
return OpenAIProvider(api_key=api_key, base_url=base_url)
|
|
37
|
-
case "openai:completions":
|
|
38
|
-
return OpenAICompletionsProvider(api_key=api_key, base_url=base_url)
|
|
39
|
-
case "openai:responses":
|
|
40
|
-
return OpenAIResponsesProvider(api_key=api_key, base_url=base_url)
|
|
41
|
-
case "mlx": # pragma: no cover (MLX is only available on macOS)
|
|
42
|
-
return MLXProvider()
|
|
43
|
-
case _: # pragma: no cover
|
|
44
|
-
raise ValueError(f"Unknown provider: '{provider_id}'")
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
load = load_provider
|
|
48
|
-
"""Convenient alias as `llm.providers.load`"""
|