mirascope 1.17.0__py3-none-any.whl → 1.18.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.
Files changed (29) hide show
  1. mirascope/core/__init__.py +4 -0
  2. mirascope/core/base/stream_config.py +1 -1
  3. mirascope/core/gemini/__init__.py +10 -0
  4. mirascope/core/google/__init__.py +29 -0
  5. mirascope/core/google/_call.py +67 -0
  6. mirascope/core/google/_call_kwargs.py +13 -0
  7. mirascope/core/google/_utils/__init__.py +16 -0
  8. mirascope/core/google/_utils/_calculate_cost.py +88 -0
  9. mirascope/core/google/_utils/_convert_common_call_params.py +39 -0
  10. mirascope/core/google/_utils/_convert_finish_reason_to_common_finish_reasons.py +27 -0
  11. mirascope/core/google/_utils/_convert_message_params.py +177 -0
  12. mirascope/core/google/_utils/_get_json_output.py +37 -0
  13. mirascope/core/google/_utils/_handle_stream.py +35 -0
  14. mirascope/core/google/_utils/_message_param_converter.py +153 -0
  15. mirascope/core/google/_utils/_setup_call.py +180 -0
  16. mirascope/core/google/call_params.py +22 -0
  17. mirascope/core/google/call_response.py +202 -0
  18. mirascope/core/google/call_response_chunk.py +97 -0
  19. mirascope/core/google/dynamic_config.py +26 -0
  20. mirascope/core/google/stream.py +128 -0
  21. mirascope/core/google/tool.py +104 -0
  22. mirascope/core/vertex/__init__.py +15 -0
  23. mirascope/llm/_protocols.py +1 -0
  24. mirascope/llm/llm_call.py +4 -0
  25. mirascope/llm/llm_override.py +16 -3
  26. {mirascope-1.17.0.dist-info → mirascope-1.18.0.dist-info}/METADATA +4 -1
  27. {mirascope-1.17.0.dist-info → mirascope-1.18.0.dist-info}/RECORD +29 -11
  28. {mirascope-1.17.0.dist-info → mirascope-1.18.0.dist-info}/WHEEL +0 -0
  29. {mirascope-1.17.0.dist-info → mirascope-1.18.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,128 @@
1
+ """The `GoogleStream` class for convenience around streaming LLM calls.
2
+
3
+ usage docs: learn/streams.md
4
+ """
5
+
6
+ from typing import cast
7
+
8
+ from google.genai.types import (
9
+ Candidate,
10
+ Content,
11
+ ContentDict,
12
+ ContentListUnion,
13
+ ContentListUnionDict,
14
+ FinishReason,
15
+ FunctionCall,
16
+ GenerateContentResponse,
17
+ PartDict,
18
+ Tool,
19
+ )
20
+
21
+ from ..base.stream import BaseStream
22
+ from ._utils import calculate_cost
23
+ from .call_params import GoogleCallParams
24
+ from .call_response import GoogleCallResponse
25
+ from .call_response_chunk import GoogleCallResponseChunk
26
+ from .dynamic_config import GoogleDynamicConfig
27
+ from .tool import GoogleTool
28
+
29
+
30
+ class GoogleStream(
31
+ BaseStream[
32
+ GoogleCallResponse,
33
+ GoogleCallResponseChunk,
34
+ ContentDict,
35
+ ContentDict,
36
+ ContentDict,
37
+ ContentListUnion | ContentListUnionDict,
38
+ GoogleTool,
39
+ Tool,
40
+ GoogleDynamicConfig,
41
+ GoogleCallParams,
42
+ FinishReason,
43
+ ]
44
+ ):
45
+ """A class for convenience around streaming Google LLM calls.
46
+
47
+ Example:
48
+
49
+ ```python
50
+ from mirascope.core import prompt_template
51
+ from mirascope.core.google import google_call
52
+
53
+
54
+ @google_call("google-1.5-flash", stream=True)
55
+ def recommend_book(genre: str) -> str:
56
+ return f"Recommend a {genre} book"
57
+
58
+ stream = recommend_book("fantasy") # returns `GoogleStream` instance
59
+ for chunk, _ in stream:
60
+ print(chunk.content, end="", flush=True)
61
+ ```
62
+ """
63
+
64
+ _provider = "google"
65
+
66
+ @property
67
+ def cost(self) -> float | None:
68
+ """Returns the cost of the call."""
69
+ return calculate_cost(self.input_tokens, self.output_tokens, self.model)
70
+
71
+ def _construct_message_param(
72
+ self, tool_calls: list[FunctionCall] | None = None, content: str | None = None
73
+ ) -> ContentDict:
74
+ """Constructs the message parameter for the assistant."""
75
+ return {
76
+ "role": "model",
77
+ "parts": cast(
78
+ list[PartDict],
79
+ [{"text": content}]
80
+ + (
81
+ [
82
+ {"function_call": tool_call}
83
+ for tool_call in (tool_calls or [])
84
+ if tool_calls
85
+ ]
86
+ or []
87
+ ),
88
+ ),
89
+ }
90
+
91
+ def construct_call_response(self) -> GoogleCallResponse:
92
+ """Constructs the call response from a consumed GoogleStream.
93
+
94
+ Raises:
95
+ ValueError: if the stream has not yet been consumed.
96
+ """
97
+ if not hasattr(self, "message_param"):
98
+ raise ValueError(
99
+ "No stream response, check if the stream has been consumed."
100
+ )
101
+ response = GenerateContentResponse(
102
+ candidates=[
103
+ Candidate(
104
+ finish_reason=self.finish_reasons[0]
105
+ if self.finish_reasons
106
+ else FinishReason.STOP,
107
+ content=Content(
108
+ role=self.message_param["role"], # pyright: ignore [reportTypedDictNotRequiredAccess]
109
+ parts=self.message_param["parts"], # pyright: ignore [reportTypedDictNotRequiredAccess, reportArgumentType]
110
+ ),
111
+ )
112
+ ]
113
+ )
114
+
115
+ return GoogleCallResponse(
116
+ metadata=self.metadata,
117
+ response=response,
118
+ tool_types=self.tool_types,
119
+ prompt_template=self.prompt_template,
120
+ fn_args=self.fn_args if self.fn_args else {},
121
+ dynamic_config=self.dynamic_config,
122
+ messages=self.messages,
123
+ call_params=self.call_params,
124
+ call_kwargs=self.call_kwargs,
125
+ user_message_param=self.user_message_param,
126
+ start_time=self.start_time,
127
+ end_time=self.end_time,
128
+ )
@@ -0,0 +1,104 @@
1
+ """The `GoogleTool` class for easy tool usage with Google's Google LLM calls.
2
+
3
+ usage docs: learn/tools.md
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from typing import Any
9
+
10
+ from google.genai.types import (
11
+ FunctionCall,
12
+ FunctionDeclaration,
13
+ Tool,
14
+ )
15
+ from pydantic.json_schema import SkipJsonSchema
16
+
17
+ from ..base import BaseTool
18
+
19
+
20
+ class GoogleTool(BaseTool):
21
+ """A class for defining tools for Google LLM calls.
22
+
23
+ Example:
24
+
25
+ ```python
26
+ from mirascope.core import prompt_template
27
+ from mirascope.core.google import google_call
28
+
29
+
30
+ def format_book(title: str, author: str) -> str:
31
+ return f"{title} by {author}"
32
+
33
+
34
+ @google_call("google-1.5-flash", tools=[format_book])
35
+ def recommend_book(genre: str) -> str:
36
+ return f"Recommend a {genre} book"
37
+
38
+
39
+ response = recommend_book("fantasy")
40
+ if tool := response.tool: # returns an `GoogleTool` instance
41
+ print(tool.call())
42
+ ```
43
+ """
44
+
45
+ __provider__ = "google"
46
+
47
+ tool_call: SkipJsonSchema[FunctionCall]
48
+
49
+ @classmethod
50
+ def tool_schema(cls) -> Tool:
51
+ """Constructs a JSON Schema tool schema from the `BaseModel` schema defined.
52
+
53
+ Example:
54
+ ```python
55
+ from mirascope.core.google import GoogleTool
56
+
57
+
58
+ def format_book(title: str, author: str) -> str:
59
+ return f"{title} by {author}"
60
+
61
+
62
+ tool_type = GoogleTool.type_from_fn(format_book)
63
+ print(tool_type.tool_schema()) # prints the Google-specific tool schema
64
+ ```
65
+ """
66
+ model_schema = cls.model_json_schema()
67
+ fn: dict[str, Any] = {"name": cls._name(), "description": cls._description()}
68
+
69
+ if model_schema["properties"]:
70
+ fn["parameters"] = model_schema
71
+
72
+ if "parameters" in fn:
73
+ if "$defs" in fn["parameters"]:
74
+ raise ValueError(
75
+ "Unfortunately Google's Google API cannot handle nested structures "
76
+ "with $defs."
77
+ )
78
+
79
+ def handle_enum_schema(prop_schema: dict[str, Any]) -> dict[str, Any]:
80
+ if "enum" in prop_schema:
81
+ prop_schema["format"] = "enum"
82
+ return prop_schema
83
+
84
+ fn["parameters"]["properties"] = {
85
+ prop: {
86
+ key: value
87
+ for key, value in handle_enum_schema(prop_schema).items()
88
+ if key != "default"
89
+ }
90
+ for prop, prop_schema in fn["parameters"]["properties"].items()
91
+ }
92
+ return Tool(function_declarations=[FunctionDeclaration(**fn)])
93
+
94
+ @classmethod
95
+ def from_tool_call(cls, tool_call: FunctionCall) -> GoogleTool:
96
+ """Constructs an `GoogleTool` instance from a `tool_call`.
97
+
98
+ Args:
99
+ tool_call: The Google tool call from which to construct this tool instance.
100
+ """
101
+ model_json = {"tool_call": tool_call}
102
+ if tool_call.args:
103
+ model_json |= dict(tool_call.args.items())
104
+ return cls.model_validate(model_json)
@@ -1,5 +1,7 @@
1
1
  """The Mirascope Vertex Module."""
2
2
 
3
+ import inspect
4
+ import warnings
3
5
  from typing import TypeAlias
4
6
 
5
7
  from google.cloud.aiplatform_v1beta1.types import FunctionResponse
@@ -17,6 +19,19 @@ from .tool import VertexTool
17
19
 
18
20
  VertexMessageParam: TypeAlias = Content | FunctionResponse | BaseMessageParam
19
21
 
22
+ warnings.warn(
23
+ inspect.cleandoc("""
24
+ The `mirascope.core.gemini` module is deprecated and will be removed in a future release.
25
+ Please use the `mirascope.core.google` module instead.
26
+
27
+ You can use Vertex AI by setting a custom `client` or environment variables.
28
+ See these docs for reference:
29
+ - Google AI SDK Custom Client: https://googleapis.github.io/python-genai/#create-a-client
30
+ - Mirascope Google Custom Client: https://mirascope.com/learn/calls/#__tabbed_39_5
31
+ """),
32
+ category=DeprecationWarning,
33
+ )
34
+
20
35
  __all__ = [
21
36
  "call",
22
37
  "VertexCallParams",
@@ -67,6 +67,7 @@ Provider: TypeAlias = Literal[
67
67
  "bedrock",
68
68
  "cohere",
69
69
  "gemini",
70
+ "google",
70
71
  "groq",
71
72
  "litellm",
72
73
  "mistral",
mirascope/llm/llm_call.py CHANGED
@@ -74,6 +74,10 @@ def _get_provider_call(provider: str) -> Callable:
74
74
  from mirascope.core.gemini import gemini_call
75
75
 
76
76
  return gemini_call
77
+ elif provider == "google":
78
+ from mirascope.core.google import google_call
79
+
80
+ return google_call
77
81
  elif provider == "groq":
78
82
  from mirascope.core.groq import groq_call
79
83
 
@@ -15,6 +15,7 @@ if TYPE_CHECKING:
15
15
  from mirascope.core.bedrock import BedrockCallParams
16
16
  from mirascope.core.cohere import CohereCallParams
17
17
  from mirascope.core.gemini import GeminiCallParams
18
+ from mirascope.core.google import GoogleCallParams
18
19
  from mirascope.core.groq import GroqCallParams
19
20
  from mirascope.core.litellm import LiteLLMCallParams
20
21
  from mirascope.core.mistral import MistralCallParams
@@ -23,9 +24,9 @@ if TYPE_CHECKING:
23
24
  else:
24
25
  AnthropicCallParams = AzureCallParams = BedrockCallParams = CohereCallParams = (
25
26
  GeminiCallParams
26
- ) = GroqCallParams = LiteLLMCallParams = MistralCallParams = OpenAICallParams = (
27
- VertexCallParams
28
- ) = None
27
+ ) = GoogleCallParams = GroqCallParams = LiteLLMCallParams = MistralCallParams = (
28
+ OpenAICallParams
29
+ ) = VertexCallParams = None
29
30
 
30
31
 
31
32
  _P = ParamSpec("_P")
@@ -77,6 +78,17 @@ def override(
77
78
  call_params: CommonCallParams | GeminiCallParams | None = None,
78
79
  client: Any = None, # noqa: ANN401
79
80
  ) -> Callable[_P, _R]: ...
81
+ @overload
82
+ def override(
83
+ provider_agnostic_call: Callable[_P, _R],
84
+ *,
85
+ provider: Literal["google"],
86
+ model: str,
87
+ call_params: CommonCallParams | GoogleCallParams | None = None,
88
+ client: Any = None, # noqa: ANN401
89
+ ) -> Callable[_P, _R]: ...
90
+
91
+
80
92
  @overload
81
93
  def override(
82
94
  provider_agnostic_call: Callable[_P, _R],
@@ -150,6 +162,7 @@ def override(
150
162
  call_params: CommonCallParams
151
163
  | AnthropicCallParams
152
164
  | GeminiCallParams
165
+ | GoogleCallParams
153
166
  | AzureCallParams
154
167
  | BedrockCallParams
155
168
  | CohereCallParams
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mirascope
3
- Version: 1.17.0
3
+ Version: 1.18.0
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/WELCOME
@@ -65,6 +65,9 @@ Requires-Dist: cohere<6,>=5.5.8; extra == 'cohere'
65
65
  Provides-Extra: gemini
66
66
  Requires-Dist: google-generativeai<1,>=0.4.0; extra == 'gemini'
67
67
  Requires-Dist: pillow<11,>=10.4.0; extra == 'gemini'
68
+ Provides-Extra: google
69
+ Requires-Dist: google-genai<2,>=1.2.0; extra == 'google'
70
+ Requires-Dist: pillow<11,>=10.4.0; extra == 'google'
68
71
  Provides-Extra: groq
69
72
  Requires-Dist: groq<1,>=0.9.0; extra == 'groq'
70
73
  Provides-Extra: hyperdx
@@ -41,7 +41,7 @@ mirascope/beta/rag/pinecone/vectorstores.py,sha256=ZcLwVmrxNMq5a2mLI-3F9XJ_UYDry
41
41
  mirascope/beta/rag/weaviate/__init__.py,sha256=GOkfDjECJhHb_3L2esTB-aZamtJNsLI0RRVD_BmeOY0,231
42
42
  mirascope/beta/rag/weaviate/types.py,sha256=-2r2Vy71kpLlRJgVqWoE3atub5a2eymHPSjTHuSqCfQ,2984
43
43
  mirascope/beta/rag/weaviate/vectorstores.py,sha256=8Nwy-QRHwSUdvMkqEhqmUkN7y_CzQN7bop7do1K8v4w,3606
44
- mirascope/core/__init__.py,sha256=ZobKhWiPcc5y8xDo2f9G4p7TrxlpAwQ91n33sI0eBI4,1330
44
+ mirascope/core/__init__.py,sha256=gZ69jq4ZQuTtz4Ae5eDrds-ElzpChBPlq6k4-1Y79l4,1408
45
45
  mirascope/core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
46
  mirascope/core/anthropic/__init__.py,sha256=0ObxoxWzpsyf3tm5SldosVDxVWiIu1jxuGmcIWl0ZCY,918
47
47
  mirascope/core/anthropic/_call.py,sha256=LXUR__AyexD-hsPMPKpA7IFuh8Cfc0uAg1GrJSxiWnU,2358
@@ -101,7 +101,7 @@ mirascope/core/base/metadata.py,sha256=V9hgMkj6m3QGsu4H5LhCxBZBYQLoygJv0CeLIf1DF
101
101
  mirascope/core/base/prompt.py,sha256=M5PK9JoEsWTQ-kzNCpZKdDGzWAkb8MS267xEFCPfpAU,15414
102
102
  mirascope/core/base/response_model_config_dict.py,sha256=OUdx_YkV2vBzUSSB2OYLAAHf22T7jvF5tRuc6c-vhNQ,254
103
103
  mirascope/core/base/stream.py,sha256=Yc7z_TfzXCpUuPTNmpoWpQdFjdRWAL5xK28_qJkmgYM,16404
104
- mirascope/core/base/stream_config.py,sha256=fG-3oMYuz0VBQ32Ea8nGc9_jNpKtR_NvNt9Ub74VVCo,227
104
+ mirascope/core/base/stream_config.py,sha256=vwWqNh9NJhTYjiJmfDbC9D5O84je_lBRhNOt4wI3FHM,238
105
105
  mirascope/core/base/structured_stream.py,sha256=FIvLXXKninrpQ5P7MsLEqGrU4cfvEDiPbueZqgJ4Dlw,10395
106
106
  mirascope/core/base/tool.py,sha256=G3GTj0jP0YObWQGIHpvUa1hAGQUCaduOhqs0m1zYqoU,6735
107
107
  mirascope/core/base/toolkit.py,sha256=GmZquYPqvQL2J9Hd6StEwx6jfeFsqtcUyxKvp4iW_7Q,6271
@@ -181,7 +181,7 @@ mirascope/core/cohere/_utils/_get_json_output.py,sha256=65gJEpp2ThxGDXJQZyGACpyC
181
181
  mirascope/core/cohere/_utils/_handle_stream.py,sha256=X7sPmnhKlRr8j6-Ds8ZGkajriCEKMYxzDRYltmHYfWI,1181
182
182
  mirascope/core/cohere/_utils/_message_param_converter.py,sha256=IXuPK1mwA69LmcRFGzipwpn73YuKAnETtbUS0KAC_w0,1911
183
183
  mirascope/core/cohere/_utils/_setup_call.py,sha256=xdyXamNXYzjRldzQ-xyu-WvH7A7LjNuE2W-w9zP-f9U,4603
184
- mirascope/core/gemini/__init__.py,sha256=mJvRB06dJ2qTqmyPp3-RgZl4WInVxdkFglzapvBUoBI,835
184
+ mirascope/core/gemini/__init__.py,sha256=FQgSvAk-zcbqo19SdDHfzTZZTYFXadNIzWJlv8wWEW8,1105
185
185
  mirascope/core/gemini/_call.py,sha256=g47rUaE4V_onORvRUP9GlgnQKda28dV1Ge2YACvrD-c,2344
186
186
  mirascope/core/gemini/_call_kwargs.py,sha256=4f34gl1BPM14wkd0fGJw_58jYzxgGgNvZkjVI5d1hgU,360
187
187
  mirascope/core/gemini/call_params.py,sha256=aEXhgZVB0npcT6wL_p7GVGIE3vi_JOiMKdgWtpXTezQ,1723
@@ -199,6 +199,24 @@ mirascope/core/gemini/_utils/_get_json_output.py,sha256=C2aeeEmcC-mBnbRL8aq3yohd
199
199
  mirascope/core/gemini/_utils/_handle_stream.py,sha256=1JoRIjwuVehVIjkvT_U2r9TMvMZB96ldp1n1AGon-tw,1153
200
200
  mirascope/core/gemini/_utils/_message_param_converter.py,sha256=4r_H1xtJErtLsrui8sG8YTIEjOiqQq_QA6fsMStwG8I,8359
201
201
  mirascope/core/gemini/_utils/_setup_call.py,sha256=QaboJO2k1D2ingfHuPSpb-YjMGRIcTIFN5Qe54eMCXM,4992
202
+ mirascope/core/google/__init__.py,sha256=pvcZnXk5dVpH1dYxkup3Xwp6qlZg17e1hjXAriiiiP4,790
203
+ mirascope/core/google/_call.py,sha256=GJOPyvHzVlSXvJpgQhJFg4wFHFUYsvvrbjhNxU-nSl8,2344
204
+ mirascope/core/google/_call_kwargs.py,sha256=baCYcxWsmV06ATw6nuQhh6FPm3k6oWmKOn0MyjESDGc,372
205
+ mirascope/core/google/call_params.py,sha256=9Dt5m1pPVjpl5Qppz6Egl_9FyGjjz9aGCnXkVps7C_Q,538
206
+ mirascope/core/google/call_response.py,sha256=vE-j725f_TQgCf-jZN-kRGSpOdY_u2wf6gQCnp11yDw,6454
207
+ mirascope/core/google/call_response_chunk.py,sha256=7anUmoz3xElWDpzaTOsqWwVAOliohrPAqODj-j47gn0,2838
208
+ mirascope/core/google/dynamic_config.py,sha256=O6j8F0fLVFuuNwURneu5OpPuu_bMEtbDEFHhJXRT6V0,857
209
+ mirascope/core/google/stream.py,sha256=YFPw8QH_u8uJK3UhLNKE96Vbcsb5d48PbtG31FVIDwY,3852
210
+ mirascope/core/google/tool.py,sha256=hHHKlC6CIfv55XqG0NUsBf8eEgUNpgvaBuljq5_NopE,3030
211
+ mirascope/core/google/_utils/__init__.py,sha256=5MKOhK3NFseq2AlapU8TtWS82f8Z0ayJCs3WMsDyc4E,454
212
+ mirascope/core/google/_utils/_calculate_cost.py,sha256=fUyi6QAEa_NpPhtoAgVdQ7PpUa0QykNghsODrDtAYvw,3069
213
+ mirascope/core/google/_utils/_convert_common_call_params.py,sha256=KA-z6uvRtdD4WydC0eXd3dzQuSh4x4WKNR8PAqFNUVY,1065
214
+ mirascope/core/google/_utils/_convert_finish_reason_to_common_finish_reasons.py,sha256=ig4tb7Zanz-tyZpvc9Ncd47a2FNTOS7-wl1PYBq-4cY,879
215
+ mirascope/core/google/_utils/_convert_message_params.py,sha256=Da2690Pvb1eGbnz0iHdTcsdtBzYADC_RUlNIkxIJGyQ,7632
216
+ mirascope/core/google/_utils/_get_json_output.py,sha256=sxDgT0Ra6YJynL5_hhakf0dNJEhZm0DfAgfcvC_DAFU,1596
217
+ mirascope/core/google/_utils/_handle_stream.py,sha256=BxFuheAu1LKPrPsDxxiLWd2KoajkwJyx2_QT1NXwtWE,1212
218
+ mirascope/core/google/_utils/_message_param_converter.py,sha256=FcPWdMdMcz3Th4q7-vATkPoRPYdT-WdT-sDXsTJO8zQ,6240
219
+ mirascope/core/google/_utils/_setup_call.py,sha256=LAoIrNTTF5EOHNLZroBcN8sNKOjMYKJ07hM49yBaUgE,5791
202
220
  mirascope/core/groq/__init__.py,sha256=wo-_txqiLC3iswnXmPX4C6IgsU-_wv1DbBlNDY4rEvo,798
203
221
  mirascope/core/groq/_call.py,sha256=gR8VN5IaYWIFXc0csn995q59FM0nBs-xVFjkVycPjMM,2223
204
222
  mirascope/core/groq/_call_kwargs.py,sha256=trT8AdQ-jdQPYKlGngIMRwwQuvKuvAbvI1yyozftOuI,425
@@ -265,7 +283,7 @@ mirascope/core/openai/_utils/_get_json_output.py,sha256=Q_5R6NFFDvmLoz9BQiymC5AE
265
283
  mirascope/core/openai/_utils/_handle_stream.py,sha256=adsHAcTtGyMMFU9xnUsE4Yd2wrhSNSjcVddkS74mli0,5226
266
284
  mirascope/core/openai/_utils/_message_param_converter.py,sha256=r6zJ54xHMxxJ-2daY8l5FyDIa0HsdXeP0cN1wHNt6-E,4101
267
285
  mirascope/core/openai/_utils/_setup_call.py,sha256=8zxNZrWcZgBxi4kwzeXHsxFoJW0n0MZYSmSAYj3ossk,5500
268
- mirascope/core/vertex/__init__.py,sha256=rhvMVCoN29wuryxGSD9JUKKSlLsWeOnw6Dkk2CqYDwk,839
286
+ mirascope/core/vertex/__init__.py,sha256=xnIwyE_ANzhuXMtNi1ESnE1lbf_X3lp4BP3I8k1IvXA,1435
269
287
  mirascope/core/vertex/_call.py,sha256=ebQmWoQLnxScyxhnGKU3MmHkXXzzs_Sw2Yf-d3nZFwU,2323
270
288
  mirascope/core/vertex/_call_kwargs.py,sha256=6JxQt1bAscbhPWTGESG1TiskB-i5imDHqLMgbMHmyfI,353
271
289
  mirascope/core/vertex/call_params.py,sha256=ISBnMITxAtvuGmpLF9UdkqcDS43RwtuuVakk01YIHDs,706
@@ -297,12 +315,12 @@ mirascope/integrations/otel/_utils.py,sha256=SCVb3MpcpqLpCpumJEbEdINceNdusnyT6iu
297
315
  mirascope/integrations/otel/_with_hyperdx.py,sha256=f17uxXQk5zZPtyj6zwPwJz5i7atsnUPOoq1LqT8JO0E,1637
298
316
  mirascope/integrations/otel/_with_otel.py,sha256=tbjd6BEbcSfnsm5CWHBoHwbRNrHt6-t4or-SYGQSD-w,1659
299
317
  mirascope/llm/__init__.py,sha256=6JWQFeluDzPC4naQY2WneSwsS-LOTeP0NpmoJ2g8zps,94
300
- mirascope/llm/_protocols.py,sha256=adcuSqKmi7M-N8Yy6GWFBlE9wIgtdLbnTq8S6IdAt7g,16380
318
+ mirascope/llm/_protocols.py,sha256=rzqJ8J_XFO1GNwZr3RhnEyFsaY_4B-A1SJXCVKBxo2E,16394
301
319
  mirascope/llm/_response_metaclass.py,sha256=6DLQb5IrqMldyEXHT_pAsr2DlUVc9CmZuZiBXG37WK8,851
302
320
  mirascope/llm/call_response.py,sha256=EVndIqQyQeWFZ_XyObUhAKOmcR_jWjL44T5M677cqL0,4715
303
321
  mirascope/llm/call_response_chunk.py,sha256=9Vyi5_hpgill5CB8BwfSj33VR8sirY2ceTRbru0G3Sw,1820
304
- mirascope/llm/llm_call.py,sha256=6ErSt8mtT0GQUF92snNewy8TAYgo-gVu7Dd1KC-ob5o,8398
305
- mirascope/llm/llm_override.py,sha256=7L222CGbJjQPB-lCoGB29XYHyzCvqEyDtcPV-L4Ao7I,6163
322
+ mirascope/llm/llm_call.py,sha256=cJJe2wG-_4TndGx5-BLgW2hwHGR_MSbeCGzaCD6MW4A,8511
323
+ mirascope/llm/llm_override.py,sha256=xupkxlvzNSQvWpfmHpGze2CtmQqE1a3ZjCDdPznTeaQ,6523
306
324
  mirascope/llm/stream.py,sha256=mVcpBZqpAInVsUc3bO-jiAA5S9OfgyVErIyuz4xLzSE,5731
307
325
  mirascope/llm/tool.py,sha256=Rz9W2g0I9bnTHFdIzTIEje8VMe2Di4AZhrNhgQusSjA,1832
308
326
  mirascope/mcp/__init__.py,sha256=mGboroTrBbzuZ_8uBssOhkqiJOJ4mNCvaJvS7mhumhg,155
@@ -332,7 +350,7 @@ mirascope/v0/base/ops_utils.py,sha256=1Qq-VIwgHBaYutiZsS2MUQ4OgPC3APyywI5bTiTAmA
332
350
  mirascope/v0/base/prompts.py,sha256=FM2Yz98cSnDceYogiwPrp4BALf3_F3d4fIOCGAkd-SE,1298
333
351
  mirascope/v0/base/types.py,sha256=ZfatJoX0Yl0e3jhv0D_MhiSVHLYUeJsdN3um3iE10zY,352
334
352
  mirascope/v0/base/utils.py,sha256=XREPENRQTu8gpMhHU8RC8qH_am3FfGUvY-dJ6x8i-mw,681
335
- mirascope-1.17.0.dist-info/METADATA,sha256=hJoJbf9qLybEi-zy2fDyPsCHY5jU2bTuDUnszW5DKO4,8545
336
- mirascope-1.17.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
337
- mirascope-1.17.0.dist-info/licenses/LICENSE,sha256=LAs5Q8mdawTsVdONpDGukwsoc4KEUBmmonDEL39b23Y,1072
338
- mirascope-1.17.0.dist-info/RECORD,,
353
+ mirascope-1.18.0.dist-info/METADATA,sha256=P63GzWcu4PhSMPV6Wie3XbEgz_Jpu1xu-FNl2yJeftk,8678
354
+ mirascope-1.18.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
355
+ mirascope-1.18.0.dist-info/licenses/LICENSE,sha256=LAs5Q8mdawTsVdONpDGukwsoc4KEUBmmonDEL39b23Y,1072
356
+ mirascope-1.18.0.dist-info/RECORD,,