mirascope 1.23.3__py3-none-any.whl → 1.24.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/__init__.py +2 -0
- mirascope/core/__init__.py +2 -0
- mirascope/core/base/__init__.py +2 -0
- mirascope/core/base/_utils/_convert_messages_to_message_params.py +9 -2
- mirascope/core/base/message_param.py +13 -0
- mirascope/core/base/messages.py +5 -0
- mirascope/core/google/_utils/_convert_message_params.py +76 -3
- mirascope/core/google/_utils/_message_param_converter.py +42 -4
- mirascope/core/google/_utils/_validate_media_type.py +24 -0
- mirascope/llm/__init__.py +2 -0
- {mirascope-1.23.3.dist-info → mirascope-1.24.0.dist-info}/METADATA +9 -9
- {mirascope-1.23.3.dist-info → mirascope-1.24.0.dist-info}/RECORD +14 -14
- {mirascope-1.23.3.dist-info → mirascope-1.24.0.dist-info}/WHEEL +0 -0
- {mirascope-1.23.3.dist-info → mirascope-1.24.0.dist-info}/licenses/LICENSE +0 -0
mirascope/__init__.py
CHANGED
|
@@ -15,6 +15,7 @@ from .core import (
|
|
|
15
15
|
BaseToolKit,
|
|
16
16
|
CacheControlPart,
|
|
17
17
|
DocumentPart,
|
|
18
|
+
DocumentURLPart,
|
|
18
19
|
ImagePart,
|
|
19
20
|
ImageURLPart,
|
|
20
21
|
LocalProvider,
|
|
@@ -43,6 +44,7 @@ __all__ = [
|
|
|
43
44
|
"BaseToolKit",
|
|
44
45
|
"CacheControlPart",
|
|
45
46
|
"DocumentPart",
|
|
47
|
+
"DocumentURLPart",
|
|
46
48
|
"ImagePart",
|
|
47
49
|
"ImageURLPart",
|
|
48
50
|
"LocalProvider",
|
mirascope/core/__init__.py
CHANGED
|
@@ -16,6 +16,7 @@ from .base import (
|
|
|
16
16
|
CacheControlPart,
|
|
17
17
|
CostMetadata,
|
|
18
18
|
DocumentPart,
|
|
19
|
+
DocumentURLPart,
|
|
19
20
|
FromCallArgs,
|
|
20
21
|
ImagePart,
|
|
21
22
|
ImageURLPart,
|
|
@@ -77,6 +78,7 @@ __all__ = [
|
|
|
77
78
|
"CacheControlPart",
|
|
78
79
|
"CostMetadata",
|
|
79
80
|
"DocumentPart",
|
|
81
|
+
"DocumentURLPart",
|
|
80
82
|
"FromCallArgs",
|
|
81
83
|
"ImagePart",
|
|
82
84
|
"ImageURLPart",
|
mirascope/core/base/__init__.py
CHANGED
|
@@ -16,6 +16,7 @@ from .message_param import (
|
|
|
16
16
|
BaseMessageParam,
|
|
17
17
|
CacheControlPart,
|
|
18
18
|
DocumentPart,
|
|
19
|
+
DocumentURLPart,
|
|
19
20
|
ImagePart,
|
|
20
21
|
ImageURLPart,
|
|
21
22
|
TextPart,
|
|
@@ -59,6 +60,7 @@ __all__ = [
|
|
|
59
60
|
"CommonCallParams",
|
|
60
61
|
"CostMetadata",
|
|
61
62
|
"DocumentPart",
|
|
63
|
+
"DocumentURLPart",
|
|
62
64
|
"FromCallArgs",
|
|
63
65
|
"GenerateJsonSchemaNoTitles",
|
|
64
66
|
"ImagePart",
|
|
@@ -14,6 +14,7 @@ from ..message_param import (
|
|
|
14
14
|
BaseMessageParam,
|
|
15
15
|
CacheControlPart,
|
|
16
16
|
DocumentPart,
|
|
17
|
+
DocumentURLPart,
|
|
17
18
|
ImagePart,
|
|
18
19
|
ImageURLPart,
|
|
19
20
|
TextPart,
|
|
@@ -37,7 +38,8 @@ def _convert_message_sequence_part_to_content_part(
|
|
|
37
38
|
| AudioURLPart
|
|
38
39
|
| AudioSegment
|
|
39
40
|
| Wave_read
|
|
40
|
-
| DocumentPart
|
|
41
|
+
| DocumentPart
|
|
42
|
+
| DocumentURLPart,
|
|
41
43
|
) -> (
|
|
42
44
|
TextPart
|
|
43
45
|
| ImagePart
|
|
@@ -45,6 +47,7 @@ def _convert_message_sequence_part_to_content_part(
|
|
|
45
47
|
| AudioPart
|
|
46
48
|
| AudioURLPart
|
|
47
49
|
| CacheControlPart
|
|
50
|
+
| DocumentURLPart
|
|
48
51
|
| DocumentPart
|
|
49
52
|
):
|
|
50
53
|
if isinstance(message_sequence_part, str):
|
|
@@ -57,7 +60,8 @@ def _convert_message_sequence_part_to_content_part(
|
|
|
57
60
|
| AudioPart
|
|
58
61
|
| AudioURLPart
|
|
59
62
|
| CacheControlPart
|
|
60
|
-
| DocumentPart
|
|
63
|
+
| DocumentPart
|
|
64
|
+
| DocumentURLPart,
|
|
61
65
|
):
|
|
62
66
|
return message_sequence_part
|
|
63
67
|
elif has_pil_module and isinstance(message_sequence_part, Image.Image):
|
|
@@ -107,6 +111,7 @@ def convert_message_content_to_message_param_content(
|
|
|
107
111
|
| AudioSegment
|
|
108
112
|
| Wave_read
|
|
109
113
|
| DocumentPart
|
|
114
|
+
| DocumentURLPart,
|
|
110
115
|
],
|
|
111
116
|
) -> (
|
|
112
117
|
list[
|
|
@@ -117,6 +122,7 @@ def convert_message_content_to_message_param_content(
|
|
|
117
122
|
| AudioURLPart
|
|
118
123
|
| CacheControlPart
|
|
119
124
|
| DocumentPart
|
|
125
|
+
| DocumentURLPart,
|
|
120
126
|
]
|
|
121
127
|
| str
|
|
122
128
|
):
|
|
@@ -151,6 +157,7 @@ def convert_messages_to_message_params(
|
|
|
151
157
|
| AudioSegment
|
|
152
158
|
| Wave_read
|
|
153
159
|
| DocumentPart
|
|
160
|
+
| DocumentURLPart,
|
|
154
161
|
]
|
|
155
162
|
| list[BaseMessageParam]
|
|
156
163
|
| BaseMessageParam,
|
|
@@ -103,6 +103,18 @@ class DocumentPart(BaseModel):
|
|
|
103
103
|
document: bytes
|
|
104
104
|
|
|
105
105
|
|
|
106
|
+
class DocumentURLPart(BaseModel):
|
|
107
|
+
"""A content part for documents with a URL.
|
|
108
|
+
|
|
109
|
+
Attributes:
|
|
110
|
+
type: Always "document_url"
|
|
111
|
+
url: The URL to the document
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
type: Literal["document_url"]
|
|
115
|
+
url: str
|
|
116
|
+
|
|
117
|
+
|
|
106
118
|
class ToolCallPart(BaseModel):
|
|
107
119
|
"""A content part for tool.
|
|
108
120
|
|
|
@@ -156,6 +168,7 @@ class BaseMessageParam(BaseModel):
|
|
|
156
168
|
| AudioURLPart
|
|
157
169
|
| CacheControlPart
|
|
158
170
|
| DocumentPart
|
|
171
|
+
| DocumentURLPart
|
|
159
172
|
| ToolCallPart
|
|
160
173
|
| ToolResultPart
|
|
161
174
|
]
|
mirascope/core/base/messages.py
CHANGED
|
@@ -14,6 +14,7 @@ from .message_param import (
|
|
|
14
14
|
BaseMessageParam,
|
|
15
15
|
CacheControlPart,
|
|
16
16
|
DocumentPart,
|
|
17
|
+
DocumentURLPart,
|
|
17
18
|
ImagePart,
|
|
18
19
|
ImageURLPart,
|
|
19
20
|
TextPart,
|
|
@@ -36,6 +37,7 @@ class Messages:
|
|
|
36
37
|
| AudioSegment
|
|
37
38
|
| Wave_read
|
|
38
39
|
| DocumentPart
|
|
40
|
+
| DocumentURLPart
|
|
39
41
|
]
|
|
40
42
|
| list[BaseMessageParam | Any]
|
|
41
43
|
| BaseMessageParam
|
|
@@ -57,6 +59,7 @@ class Messages:
|
|
|
57
59
|
| AudioSegment
|
|
58
60
|
| Wave_read
|
|
59
61
|
| DocumentPart
|
|
62
|
+
| DocumentURLPart
|
|
60
63
|
],
|
|
61
64
|
) -> BaseMessageParam:
|
|
62
65
|
return BaseMessageParam(
|
|
@@ -80,6 +83,7 @@ class Messages:
|
|
|
80
83
|
| AudioSegment
|
|
81
84
|
| Wave_read
|
|
82
85
|
| DocumentPart
|
|
86
|
+
| DocumentURLPart
|
|
83
87
|
],
|
|
84
88
|
) -> BaseMessageParam:
|
|
85
89
|
return BaseMessageParam(
|
|
@@ -103,6 +107,7 @@ class Messages:
|
|
|
103
107
|
| AudioSegment
|
|
104
108
|
| Wave_read
|
|
105
109
|
| DocumentPart
|
|
110
|
+
| DocumentURLPart
|
|
106
111
|
],
|
|
107
112
|
) -> BaseMessageParam:
|
|
108
113
|
return BaseMessageParam(
|
|
@@ -16,9 +16,13 @@ from google.genai.types import (
|
|
|
16
16
|
)
|
|
17
17
|
|
|
18
18
|
from ...base import BaseMessageParam
|
|
19
|
-
from ...base._utils import get_audio_type, get_image_type
|
|
19
|
+
from ...base._utils import get_audio_type, get_document_type, get_image_type
|
|
20
20
|
from ...base._utils._parse_content_template import _load_media
|
|
21
|
-
from ._validate_media_type import
|
|
21
|
+
from ._validate_media_type import (
|
|
22
|
+
_check_audio_media_type,
|
|
23
|
+
_check_document_media_type,
|
|
24
|
+
_check_image_media_type,
|
|
25
|
+
)
|
|
22
26
|
|
|
23
27
|
|
|
24
28
|
def _over_file_size_limit(size: int) -> bool:
|
|
@@ -154,9 +158,78 @@ async def _convert_message_params_async(
|
|
|
154
158
|
if _over_file_size_limit(total_payload_size):
|
|
155
159
|
must_upload[index] = blob_dict
|
|
156
160
|
total_payload_size -= audio_size
|
|
161
|
+
elif part.type == "document":
|
|
162
|
+
_check_document_media_type(part.media_type)
|
|
163
|
+
blob_dict = BlobDict(data=part.document, mime_type=part.media_type)
|
|
164
|
+
converted_content.append(PartDict(inline_data=blob_dict))
|
|
165
|
+
document_size = len(part.document)
|
|
166
|
+
total_payload_size += document_size
|
|
167
|
+
if _over_file_size_limit(total_payload_size):
|
|
168
|
+
must_upload[index] = blob_dict
|
|
169
|
+
total_payload_size -= document_size
|
|
170
|
+
elif part.type == "document_url":
|
|
171
|
+
if (
|
|
172
|
+
client.vertexai
|
|
173
|
+
or not part.url.startswith(("https://", "http://"))
|
|
174
|
+
or "generativelanguage.googleapis.com" in part.url
|
|
175
|
+
):
|
|
176
|
+
converted_content.append(
|
|
177
|
+
PartDict(
|
|
178
|
+
file_data=FileDataDict(
|
|
179
|
+
file_uri=part.url, mime_type=None
|
|
180
|
+
)
|
|
181
|
+
)
|
|
182
|
+
)
|
|
183
|
+
else:
|
|
184
|
+
media_type = None
|
|
185
|
+
try:
|
|
186
|
+
downloaded_document = _load_media(part.url)
|
|
187
|
+
document_types = {
|
|
188
|
+
"pdf": "application/pdf",
|
|
189
|
+
"html": "text/html",
|
|
190
|
+
"xml": "text/xml",
|
|
191
|
+
"rtf": "text/rtf",
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
try:
|
|
195
|
+
document_type_ext = get_document_type(
|
|
196
|
+
downloaded_document
|
|
197
|
+
)
|
|
198
|
+
media_type = document_types.get(document_type_ext)
|
|
199
|
+
except ValueError:
|
|
200
|
+
try:
|
|
201
|
+
downloaded_document.decode("utf-8")
|
|
202
|
+
media_type = "text/plain"
|
|
203
|
+
except UnicodeDecodeError:
|
|
204
|
+
pass
|
|
205
|
+
|
|
206
|
+
if media_type is None:
|
|
207
|
+
raise ValueError(
|
|
208
|
+
f"Unsupported document format detected for URL: {part.url}. "
|
|
209
|
+
"Google API only supports the following document formats: "
|
|
210
|
+
"PDF, JavaScript, Python, TXT, HTML, CSS, Markdown, CSV, XML and RTF. "
|
|
211
|
+
"Please provide a document in one of these supported formats."
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
_check_document_media_type(media_type)
|
|
215
|
+
blob_dict = BlobDict(
|
|
216
|
+
data=downloaded_document, mime_type=media_type
|
|
217
|
+
)
|
|
218
|
+
converted_content.append(PartDict(inline_data=blob_dict))
|
|
219
|
+
document_size = len(downloaded_document)
|
|
220
|
+
total_payload_size += document_size
|
|
221
|
+
if _over_file_size_limit(total_payload_size):
|
|
222
|
+
must_upload[index] = blob_dict
|
|
223
|
+
total_payload_size -= document_size
|
|
224
|
+
except ValueError as e:
|
|
225
|
+
raise ValueError(
|
|
226
|
+
f"Failed to process document from URL: {part.url}. "
|
|
227
|
+
f"Error details: {str(e)}. "
|
|
228
|
+
"Please ensure the URL is accessible and points to a supported document format."
|
|
229
|
+
)
|
|
157
230
|
else:
|
|
158
231
|
raise ValueError(
|
|
159
|
-
"Google currently only supports text, tool_call, tool_result, image, and
|
|
232
|
+
"Google currently only supports text, tool_call, tool_result, image, audio, and document parts. "
|
|
160
233
|
f"Part provided: {part.type}"
|
|
161
234
|
)
|
|
162
235
|
|
|
@@ -8,7 +8,7 @@ from google.genai.types import (
|
|
|
8
8
|
)
|
|
9
9
|
|
|
10
10
|
from mirascope.core import BaseMessageParam
|
|
11
|
-
from mirascope.core.base import DocumentPart, ImagePart, TextPart
|
|
11
|
+
from mirascope.core.base import DocumentPart, DocumentURLPart, ImagePart, TextPart
|
|
12
12
|
from mirascope.core.base._utils._base_message_param_converter import (
|
|
13
13
|
BaseMessageParamConverter,
|
|
14
14
|
)
|
|
@@ -21,7 +21,11 @@ from mirascope.core.base.message_param import (
|
|
|
21
21
|
)
|
|
22
22
|
from mirascope.core.google._utils import convert_message_params
|
|
23
23
|
|
|
24
|
-
from ._validate_media_type import
|
|
24
|
+
from ._validate_media_type import (
|
|
25
|
+
_check_audio_media_type,
|
|
26
|
+
_check_document_media_type,
|
|
27
|
+
_check_image_media_type,
|
|
28
|
+
)
|
|
25
29
|
|
|
26
30
|
|
|
27
31
|
class GoogleMessageParamConverter(BaseMessageParamConverter):
|
|
@@ -78,7 +82,21 @@ class GoogleMessageParamConverter(BaseMessageParamConverter):
|
|
|
78
82
|
audio=data,
|
|
79
83
|
)
|
|
80
84
|
)
|
|
81
|
-
elif mime_type
|
|
85
|
+
elif mime_type in [
|
|
86
|
+
"application/pdf",
|
|
87
|
+
"application/x-javascript",
|
|
88
|
+
"text/javascript",
|
|
89
|
+
"application/x-python",
|
|
90
|
+
"text/x-python",
|
|
91
|
+
"text/plain",
|
|
92
|
+
"text/html",
|
|
93
|
+
"text/css",
|
|
94
|
+
"text/csv",
|
|
95
|
+
"text/xml",
|
|
96
|
+
"text/rtf",
|
|
97
|
+
"text/md",
|
|
98
|
+
]:
|
|
99
|
+
_check_document_media_type(mime_type)
|
|
82
100
|
content_list.append(
|
|
83
101
|
DocumentPart(
|
|
84
102
|
type="document", media_type=mime_type, document=data
|
|
@@ -106,6 +124,26 @@ class GoogleMessageParamConverter(BaseMessageParamConverter):
|
|
|
106
124
|
url=cast(str, part.file_data.file_uri),
|
|
107
125
|
)
|
|
108
126
|
)
|
|
127
|
+
elif mime_type in [
|
|
128
|
+
"application/pdf",
|
|
129
|
+
"application/x-javascript",
|
|
130
|
+
"text/javascript",
|
|
131
|
+
"application/x-python",
|
|
132
|
+
"text/x-python",
|
|
133
|
+
"text/plain",
|
|
134
|
+
"text/html",
|
|
135
|
+
"text/css",
|
|
136
|
+
"text/csv",
|
|
137
|
+
"text/xml",
|
|
138
|
+
"text/rtf",
|
|
139
|
+
"text/md",
|
|
140
|
+
]:
|
|
141
|
+
content_list.append(
|
|
142
|
+
DocumentURLPart(
|
|
143
|
+
type="document_url",
|
|
144
|
+
url=cast(str, part.file_data.file_uri),
|
|
145
|
+
)
|
|
146
|
+
)
|
|
109
147
|
else:
|
|
110
148
|
# Since `FileDataDict` handles any file data, we use
|
|
111
149
|
# `ImageURLPart` for unknown mime types
|
|
@@ -148,7 +186,7 @@ class GoogleMessageParamConverter(BaseMessageParamConverter):
|
|
|
148
186
|
)
|
|
149
187
|
else:
|
|
150
188
|
raise ValueError(
|
|
151
|
-
"Part does not contain any supported content (text, image, or document)."
|
|
189
|
+
"Part does not contain any supported content (text, image, audio, or document)."
|
|
152
190
|
)
|
|
153
191
|
|
|
154
192
|
if len(content_list) == 1 and isinstance(content_list[0], TextPart):
|
|
@@ -32,3 +32,27 @@ def _check_audio_media_type(media_type: str) -> None:
|
|
|
32
32
|
"Google currently only supports WAV, MP3, AIFF, AAC, OGG, "
|
|
33
33
|
"and FLAC audio file types."
|
|
34
34
|
)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _check_document_media_type(media_type: str) -> None:
|
|
38
|
+
"""Raises a `ValueError` if the document media type is not supported."""
|
|
39
|
+
|
|
40
|
+
if media_type not in [
|
|
41
|
+
"application/pdf",
|
|
42
|
+
"application/x-javascript",
|
|
43
|
+
"text/javascript",
|
|
44
|
+
"application/x-python",
|
|
45
|
+
"text/x-python",
|
|
46
|
+
"text/plain",
|
|
47
|
+
"text/html",
|
|
48
|
+
"text/css",
|
|
49
|
+
"text/csv",
|
|
50
|
+
"text/xml",
|
|
51
|
+
"text/rtf",
|
|
52
|
+
"text/md",
|
|
53
|
+
]:
|
|
54
|
+
raise ValueError(
|
|
55
|
+
f"Unsupported document media type: {media_type}. "
|
|
56
|
+
"Google currently only supports PDF, JavaScript, Python, TXT, HTML, CSS, "
|
|
57
|
+
"CSV, XML, RTF, and Markdown document types."
|
|
58
|
+
)
|
mirascope/llm/__init__.py
CHANGED
|
@@ -3,11 +3,13 @@ from ._call import call
|
|
|
3
3
|
from ._context import context
|
|
4
4
|
from ._override import override
|
|
5
5
|
from .call_response import CallResponse
|
|
6
|
+
from .call_response_chunk import CallResponseChunk
|
|
6
7
|
from .stream import Stream
|
|
7
8
|
from .tool import Tool
|
|
8
9
|
|
|
9
10
|
__all__ = [
|
|
10
11
|
"CallResponse",
|
|
12
|
+
"CallResponseChunk",
|
|
11
13
|
"CostMetadata",
|
|
12
14
|
"LocalProvider",
|
|
13
15
|
"Provider",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mirascope
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.24.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
|
|
@@ -101,19 +101,19 @@ Provides-Extra: xai
|
|
|
101
101
|
Requires-Dist: openai<2,>=1.6.0; extra == 'xai'
|
|
102
102
|
Description-Content-Type: text/markdown
|
|
103
103
|
|
|
104
|
-
<
|
|
105
|
-
<a href="https://mirascope.com">
|
|
106
|
-
<img
|
|
104
|
+
<p align="center">
|
|
105
|
+
<a href="https://mirascope.com/#mirascope">
|
|
106
|
+
<img src="https://github.com/user-attachments/assets/58b04850-8f30-40a6-be68-96ed2aa9b6d8" />
|
|
107
107
|
</a>
|
|
108
|
-
</
|
|
108
|
+
</p>
|
|
109
109
|
|
|
110
110
|
<p align="center">
|
|
111
111
|
<a href="https://github.com/Mirascope/mirascope/actions/workflows/tests.yml" target="_blank"><img src="https://github.com/Mirascope/mirascope/actions/workflows/tests.yml/badge.svg?branch=main" alt="Tests"/></a>
|
|
112
112
|
<a href="https://codecov.io/github/Mirascope/mirascope" target="_blank"><img src="https://codecov.io/github/Mirascope/mirascope/graph/badge.svg?token=HAEAWT3KC9" alt="Coverage"/></a>
|
|
113
|
-
<a href="https://mirascope.com/
|
|
113
|
+
<a href="https://mirascope.com/docs/mirascope" target="_blank"><img src="https://img.shields.io/badge/docs-available-brightgreen" alt="Docs"/></a>
|
|
114
114
|
<a href="https://pypi.python.org/pypi/mirascope" target="_blank"><img src="https://img.shields.io/pypi/v/mirascope.svg" alt="PyPI Version"/></a>
|
|
115
115
|
<a href="https://pypi.python.org/pypi/mirascope" target="_blank"><img src="https://img.shields.io/pypi/pyversions/mirascope.svg" alt="Stars"/></a>
|
|
116
|
-
<a href="https://github.com/Mirascope/mirascope/
|
|
116
|
+
<a href="https://github.com/Mirascope/mirascope/tree/main/LICENSE"><img src="https://img.shields.io/github/license/Mirascope/mirascope.svg" alt="License"/></a>
|
|
117
117
|
<a href="https://github.com/Mirascope/mirascope/stargazers" target="_blank"><img src="https://img.shields.io/github/stars/Mirascope/mirascope.svg" alt="Stars"/></a>
|
|
118
118
|
</p>
|
|
119
119
|
|
|
@@ -154,7 +154,7 @@ print(book)
|
|
|
154
154
|
|
|
155
155
|
## Tutorials
|
|
156
156
|
|
|
157
|
-
Check out our [quickstart tutorial](https://mirascope.com/
|
|
157
|
+
Check out our [quickstart tutorial](https://mirascope.com/docs/mirascope/getting-started/quickstart) and many other tutorials for an interactive way to getting started with Mirascope.
|
|
158
158
|
|
|
159
159
|
## Usage
|
|
160
160
|
|
|
@@ -166,4 +166,4 @@ Mirascope uses [Semantic Versioning](https://semver.org/).
|
|
|
166
166
|
|
|
167
167
|
## Licence
|
|
168
168
|
|
|
169
|
-
This project is licensed under the terms of the [MIT License](https://github.com/Mirascope/mirascope/
|
|
169
|
+
This project is licensed under the terms of the [MIT License](https://github.com/Mirascope/mirascope/tree/main/LICENSE).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
mirascope/__init__.py,sha256=
|
|
1
|
+
mirascope/__init__.py,sha256=Rmt0CqSEEEqc7KhW10KzQHgGij11PIKRrNQ_y4IU4eY,1127
|
|
2
2
|
mirascope/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
mirascope/beta/__init__.py,sha256=YsIIE5w3nKj0Ywcs_Y5tSE6WlHKR-nQwwbhNF1R8UW8,43
|
|
4
4
|
mirascope/beta/openai/__init__.py,sha256=a7xllQBfcpO6kYwZ5Zv1CWzN9qpS1SJoBgb1J20F-Hk,257
|
|
@@ -41,7 +41,7 @@ mirascope/beta/rag/pinecone/vectorstores.py,sha256=ZcLwVmrxNMq5a2mLI-3F9XJ_UYDry
|
|
|
41
41
|
mirascope/beta/rag/weaviate/__init__.py,sha256=eod9OprMo1zdDb-waYWtBJKWuYQRx7v-QEen-wzm_5w,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=
|
|
44
|
+
mirascope/core/__init__.py,sha256=10mn-PHVEOUu0aZ-CIOZDl89exoRcJVDBB1xWK938YA,2074
|
|
45
45
|
mirascope/core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
46
|
mirascope/core/anthropic/__init__.py,sha256=GB-CULa3jYEPv1ZDyZjNCKQJbrc6ojqu8WNRSFElQ-4,918
|
|
47
47
|
mirascope/core/anthropic/_call.py,sha256=LXUR__AyexD-hsPMPKpA7IFuh8Cfc0uAg1GrJSxiWnU,2358
|
|
@@ -80,7 +80,7 @@ mirascope/core/azure/_utils/_get_json_output.py,sha256=Qec7WJY5is1Q63Vp9uUNNfkRw
|
|
|
80
80
|
mirascope/core/azure/_utils/_handle_stream.py,sha256=M_BGnjBGWTPefNyIMuJSHiDxIvqmENmqfVlDx_qzL1c,4638
|
|
81
81
|
mirascope/core/azure/_utils/_message_param_converter.py,sha256=JAUeHObtd_V225YyZqEruuih3HRozq43pqjYJCbJj8A,4443
|
|
82
82
|
mirascope/core/azure/_utils/_setup_call.py,sha256=cdUof-RCxsPbKuJvevsEUYXU-ckoql3wTevNEQiEpz4,6496
|
|
83
|
-
mirascope/core/base/__init__.py,sha256=
|
|
83
|
+
mirascope/core/base/__init__.py,sha256=tBy5Q2jrioxxYji_tArS-fcxBYmIBbhmGGZDpkhDjE8,2111
|
|
84
84
|
mirascope/core/base/_call_factory.py,sha256=YdFHAa9WtGfYeqVcM2xaDNh5gMg584rOe26_E51-1to,9663
|
|
85
85
|
mirascope/core/base/_create.py,sha256=M6dpcWwtyb6O7pa9pT0rdwhYEUcuB2iu2uv97kAU1qk,10090
|
|
86
86
|
mirascope/core/base/_extract.py,sha256=QTqkArgmgR17OB5jTP86Wo-TW-BcouOcK9gdMy-EcNw,6799
|
|
@@ -93,8 +93,8 @@ mirascope/core/base/call_response_chunk.py,sha256=ZfulgERwgva55TLrQI9XimX8bpgOqB
|
|
|
93
93
|
mirascope/core/base/dynamic_config.py,sha256=V5IG2X5gPFpfQ47uO8JU1zoC2eNdRftsRZEmwhRPaYI,2859
|
|
94
94
|
mirascope/core/base/from_call_args.py,sha256=8ijMX7PN6a4o6uLdmXJlSRnE-rEVJU5NLxUmNrS8dvU,909
|
|
95
95
|
mirascope/core/base/merge_decorators.py,sha256=9pQYXuTxLh4mGKVIsnR5pYBkYCaQjg85TTelC6XDldE,1988
|
|
96
|
-
mirascope/core/base/message_param.py,sha256=
|
|
97
|
-
mirascope/core/base/messages.py,sha256=
|
|
96
|
+
mirascope/core/base/message_param.py,sha256=5AtuTmpscZKsXengBPkPV4F33Et0BQRpfeRwMMvqqdY,3822
|
|
97
|
+
mirascope/core/base/messages.py,sha256=tn38kanabpq6fabxvb0p8zo5fZBBz6Yotl1szCgh3xg,2671
|
|
98
98
|
mirascope/core/base/metadata.py,sha256=V9hgMkj6m3QGsu4H5LhCxBZBYQLoygJv0CeLIf1DF0M,382
|
|
99
99
|
mirascope/core/base/prompt.py,sha256=M5PK9JoEsWTQ-kzNCpZKdDGzWAkb8MS267xEFCPfpAU,15414
|
|
100
100
|
mirascope/core/base/response_model_config_dict.py,sha256=OUdx_YkV2vBzUSSB2OYLAAHf22T7jvF5tRuc6c-vhNQ,254
|
|
@@ -110,7 +110,7 @@ mirascope/core/base/_utils/_base_type.py,sha256=x8ZabSxZZNAy6ER-VQEkB6mNyjWcGSCB
|
|
|
110
110
|
mirascope/core/base/_utils/_convert_base_model_to_base_tool.py,sha256=JoHf1CbRwK91dABm5xLhdIPmeMSFS_nj-qW9OQu_YJ0,1750
|
|
111
111
|
mirascope/core/base/_utils/_convert_base_type_to_base_tool.py,sha256=fAOfqqoT0_vk1i-h-lCdWQYYeTjZ3fTiCgwGmgtHk9o,734
|
|
112
112
|
mirascope/core/base/_utils/_convert_function_to_base_tool.py,sha256=squjro0oxwXOiavcf4bSHjHS94uSeCBGpykacoFpKx8,5729
|
|
113
|
-
mirascope/core/base/_utils/_convert_messages_to_message_params.py,sha256=
|
|
113
|
+
mirascope/core/base/_utils/_convert_messages_to_message_params.py,sha256=9gys7ZPBAiuQH5hdi4_bL0KH32Q96fESyKDW5S0-9Js,4532
|
|
114
114
|
mirascope/core/base/_utils/_convert_provider_finish_reason_to_finish_reason.py,sha256=Mki5mYbYX8vUW-oosC4PaRNUHW_T5xAQWti3_1ndtTk,611
|
|
115
115
|
mirascope/core/base/_utils/_default_tool_docstring.py,sha256=JLyryjGDaHMU-P7gUpnjkPyELCQsQgi8AP4Dp_yXPOM,277
|
|
116
116
|
mirascope/core/base/_utils/_extract_tool_return.py,sha256=ZDBZJ4cacFd8nijSWZEhib7B58ZnSFD_rK1FiGNTYU0,1553
|
|
@@ -221,12 +221,12 @@ mirascope/core/google/tool.py,sha256=61a9Ejdxz41pwaab9VE2yvP_J1Aebua3BeRPJ_GJSnE
|
|
|
221
221
|
mirascope/core/google/_utils/__init__.py,sha256=vL0hx6WKW5lqpUcFTFCFGvmwtR-pts0JzWgCXhaUVrI,388
|
|
222
222
|
mirascope/core/google/_utils/_convert_common_call_params.py,sha256=TF7GWBHcpfzb7XmrxKp3gnaONITYF93lqr4XkSVz_uU,1195
|
|
223
223
|
mirascope/core/google/_utils/_convert_finish_reason_to_common_finish_reasons.py,sha256=ig4tb7Zanz-tyZpvc9Ncd47a2FNTOS7-wl1PYBq-4cY,879
|
|
224
|
-
mirascope/core/google/_utils/_convert_message_params.py,sha256=
|
|
224
|
+
mirascope/core/google/_utils/_convert_message_params.py,sha256=OZXdwhAP-33yIr1QfEBDirjh1QOUeLzL2IajfVXgcUM,12787
|
|
225
225
|
mirascope/core/google/_utils/_get_json_output.py,sha256=sxDgT0Ra6YJynL5_hhakf0dNJEhZm0DfAgfcvC_DAFU,1596
|
|
226
226
|
mirascope/core/google/_utils/_handle_stream.py,sha256=xTaQvAWnJ195YI_h68USvit4-G8T_fogmtBZFhu1qoE,2238
|
|
227
|
-
mirascope/core/google/_utils/_message_param_converter.py,sha256=
|
|
227
|
+
mirascope/core/google/_utils/_message_param_converter.py,sha256=8N3etkSjoyU0wxcGVw13A5EtI7iphBD4pHG87iUCkZg,8094
|
|
228
228
|
mirascope/core/google/_utils/_setup_call.py,sha256=UoV4McGgSS79PKErjArCmrq1HmpFvq2qegJYoyY4P5U,6469
|
|
229
|
-
mirascope/core/google/_utils/_validate_media_type.py,sha256=
|
|
229
|
+
mirascope/core/google/_utils/_validate_media_type.py,sha256=qLSoUlv5l5AZJ_PAsGFZmHNNdJHiB3jbFuAR2Ckga6s,1746
|
|
230
230
|
mirascope/core/groq/__init__.py,sha256=8jWCQScdei_TImGMWUwiKnlOwffQqaXdAL-bluFmEL0,798
|
|
231
231
|
mirascope/core/groq/_call.py,sha256=gR8VN5IaYWIFXc0csn995q59FM0nBs-xVFjkVycPjMM,2223
|
|
232
232
|
mirascope/core/groq/_call_kwargs.py,sha256=trT8AdQ-jdQPYKlGngIMRwwQuvKuvAbvI1yyozftOuI,425
|
|
@@ -333,7 +333,7 @@ mirascope/integrations/otel/__init__.py,sha256=OzboYfm3fUNwKTuu08KX83hQHYI4oZYN2
|
|
|
333
333
|
mirascope/integrations/otel/_utils.py,sha256=SCVb3MpcpqLpCpumJEbEdINceNdusnyT6iuKPz66sBc,8778
|
|
334
334
|
mirascope/integrations/otel/_with_hyperdx.py,sha256=f17uxXQk5zZPtyj6zwPwJz5i7atsnUPOoq1LqT8JO0E,1637
|
|
335
335
|
mirascope/integrations/otel/_with_otel.py,sha256=tbjd6BEbcSfnsm5CWHBoHwbRNrHt6-t4or-SYGQSD-w,1659
|
|
336
|
-
mirascope/llm/__init__.py,sha256=
|
|
336
|
+
mirascope/llm/__init__.py,sha256=LI3YkfIZLJ_Pzkm2x4W0HbKO-EHDDojc5oYp7qO6YNs,508
|
|
337
337
|
mirascope/llm/_call.py,sha256=_YOmo5Y4NU2Jz1XcgEEI94UCyzgiAFrKwIH7o2KQ5vM,13933
|
|
338
338
|
mirascope/llm/_context.py,sha256=vtHJkLlFfUwyR_hYEHXAw3xunpHhLn67k4kuFw50GR8,12481
|
|
339
339
|
mirascope/llm/_override.py,sha256=m4MdOhM-aJRIGP7NBJhscq3ISNct6FBPn3jjmryFo_Q,112292
|
|
@@ -371,7 +371,7 @@ mirascope/v0/base/ops_utils.py,sha256=1Qq-VIwgHBaYutiZsS2MUQ4OgPC3APyywI5bTiTAmA
|
|
|
371
371
|
mirascope/v0/base/prompts.py,sha256=FM2Yz98cSnDceYogiwPrp4BALf3_F3d4fIOCGAkd-SE,1298
|
|
372
372
|
mirascope/v0/base/types.py,sha256=ZfatJoX0Yl0e3jhv0D_MhiSVHLYUeJsdN3um3iE10zY,352
|
|
373
373
|
mirascope/v0/base/utils.py,sha256=XREPENRQTu8gpMhHU8RC8qH_am3FfGUvY-dJ6x8i-mw,681
|
|
374
|
-
mirascope-1.
|
|
375
|
-
mirascope-1.
|
|
376
|
-
mirascope-1.
|
|
377
|
-
mirascope-1.
|
|
374
|
+
mirascope-1.24.0.dist-info/METADATA,sha256=wShWCcdl1mgsX_rev-w_nWQghO27G71zLJ4Y8goHGeo,8542
|
|
375
|
+
mirascope-1.24.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
376
|
+
mirascope-1.24.0.dist-info/licenses/LICENSE,sha256=LAs5Q8mdawTsVdONpDGukwsoc4KEUBmmonDEL39b23Y,1072
|
|
377
|
+
mirascope-1.24.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|