mixpeek 0.6.1__py3-none-any.whl → 0.6.2__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.
- mixpeek/__init__.py +18 -13
- mixpeek/base_client.py +39 -12
- mixpeek/core/client_wrapper.py +1 -1
- mixpeek/embed/__init__.py +2 -0
- mixpeek/embed/client.py +350 -0
- mixpeek/environment.py +7 -0
- mixpeek/extract/__init__.py +2 -0
- mixpeek/extract/client.py +347 -0
- mixpeek/generators/client.py +2 -4
- mixpeek/parse/client.py +10 -248
- mixpeek/pipelines/client.py +45 -123
- mixpeek/storage/client.py +0 -4
- mixpeek/types/__init__.py +12 -12
- mixpeek/types/{configs_request.py → api_key.py} +4 -4
- mixpeek/types/connection.py +1 -1
- mixpeek/types/{destination_schema.py → destination.py} +3 -3
- mixpeek/types/field_type.py +1 -1
- mixpeek/types/model.py +2 -1
- mixpeek/types/models.py +5 -0
- mixpeek/types/{field_schema.py → source.py} +3 -4
- mixpeek/types/{source_schema.py → source_destination_mapping.py} +6 -5
- mixpeek/types/{pipeline_response.py → user.py} +7 -10
- mixpeek/users/__init__.py +2 -0
- mixpeek/users/client.py +308 -0
- mixpeek/workflows/client.py +122 -4
- {mixpeek-0.6.1.dist-info → mixpeek-0.6.2.dist-info}/METADATA +1 -1
- {mixpeek-0.6.1.dist-info → mixpeek-0.6.2.dist-info}/RECORD +29 -22
- mixpeek/types/embedding_request.py +0 -32
- {mixpeek-0.6.1.dist-info → mixpeek-0.6.2.dist-info}/LICENSE +0 -0
- {mixpeek-0.6.1.dist-info → mixpeek-0.6.2.dist-info}/WHEEL +0 -0
mixpeek/parse/client.py
CHANGED
@@ -9,96 +9,15 @@ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
9
9
|
from ..core.jsonable_encoder import jsonable_encoder
|
10
10
|
from ..core.remove_none_from_dict import remove_none_from_dict
|
11
11
|
from ..core.request_options import RequestOptions
|
12
|
-
from ..errors.bad_request_error import BadRequestError
|
13
|
-
from ..errors.forbidden_error import ForbiddenError
|
14
|
-
from ..errors.internal_server_error import InternalServerError
|
15
|
-
from ..errors.not_found_error import NotFoundError
|
16
|
-
from ..errors.unauthorized_error import UnauthorizedError
|
17
|
-
from ..errors.unprocessable_entity_error import UnprocessableEntityError
|
18
|
-
from ..types.audio_params import AudioParams
|
19
|
-
from ..types.csv_params import CsvParams
|
20
|
-
from ..types.error_response import ErrorResponse
|
21
|
-
from ..types.html_params import HtmlParams
|
22
|
-
from ..types.http_validation_error import HttpValidationError
|
23
|
-
from ..types.image_params import ImageParams
|
24
|
-
from ..types.pdf_params import PdfParams
|
25
|
-
from ..types.ppt_params import PptParams
|
26
|
-
from ..types.pptx_params import PptxParams
|
27
|
-
from ..types.txt_params import TxtParams
|
28
|
-
from ..types.video_params import VideoParams
|
29
|
-
from ..types.xlsx_params import XlsxParams
|
30
|
-
|
31
|
-
try:
|
32
|
-
import pydantic.v1 as pydantic # type: ignore
|
33
|
-
except ImportError:
|
34
|
-
import pydantic # type: ignore
|
35
|
-
|
36
|
-
# this is used as the default value for optional parameters
|
37
|
-
OMIT = typing.cast(typing.Any, ...)
|
38
12
|
|
39
13
|
|
40
14
|
class ParseClient:
|
41
15
|
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
42
16
|
self._client_wrapper = client_wrapper
|
43
17
|
|
44
|
-
def parse_file(
|
45
|
-
self,
|
46
|
-
*,
|
47
|
-
file_url: typing.Optional[str] = OMIT,
|
48
|
-
contents: typing.Optional[str] = OMIT,
|
49
|
-
should_chunk: typing.Optional[bool] = OMIT,
|
50
|
-
clean_text: typing.Optional[bool] = OMIT,
|
51
|
-
max_characters_per_chunk: typing.Optional[int] = OMIT,
|
52
|
-
extract_tags: typing.Optional[bool] = OMIT,
|
53
|
-
summarize: typing.Optional[bool] = OMIT,
|
54
|
-
pdf_settings: typing.Optional[PdfParams] = OMIT,
|
55
|
-
html_settings: typing.Optional[HtmlParams] = OMIT,
|
56
|
-
csv_settings: typing.Optional[CsvParams] = OMIT,
|
57
|
-
ppt_settings: typing.Optional[PptParams] = OMIT,
|
58
|
-
pptx_settings: typing.Optional[PptxParams] = OMIT,
|
59
|
-
xlsx_settings: typing.Optional[XlsxParams] = OMIT,
|
60
|
-
txt_settings: typing.Optional[TxtParams] = OMIT,
|
61
|
-
audio_settings: typing.Optional[AudioParams] = OMIT,
|
62
|
-
image_settings: typing.Optional[ImageParams] = OMIT,
|
63
|
-
video_settings: typing.Optional[VideoParams] = OMIT,
|
64
|
-
request_options: typing.Optional[RequestOptions] = None,
|
65
|
-
) -> typing.Any:
|
18
|
+
def parse_file(self, *, request_options: typing.Optional[RequestOptions] = None) -> None:
|
66
19
|
"""
|
67
20
|
Parameters:
|
68
|
-
- file_url: typing.Optional[str].
|
69
|
-
|
70
|
-
- contents: typing.Optional[str].
|
71
|
-
|
72
|
-
- should_chunk: typing.Optional[bool].
|
73
|
-
|
74
|
-
- clean_text: typing.Optional[bool].
|
75
|
-
|
76
|
-
- max_characters_per_chunk: typing.Optional[int].
|
77
|
-
|
78
|
-
- extract_tags: typing.Optional[bool].
|
79
|
-
|
80
|
-
- summarize: typing.Optional[bool].
|
81
|
-
|
82
|
-
- pdf_settings: typing.Optional[PdfParams].
|
83
|
-
|
84
|
-
- html_settings: typing.Optional[HtmlParams].
|
85
|
-
|
86
|
-
- csv_settings: typing.Optional[CsvParams].
|
87
|
-
|
88
|
-
- ppt_settings: typing.Optional[PptParams].
|
89
|
-
|
90
|
-
- pptx_settings: typing.Optional[PptxParams].
|
91
|
-
|
92
|
-
- xlsx_settings: typing.Optional[XlsxParams].
|
93
|
-
|
94
|
-
- txt_settings: typing.Optional[TxtParams].
|
95
|
-
|
96
|
-
- audio_settings: typing.Optional[AudioParams].
|
97
|
-
|
98
|
-
- image_settings: typing.Optional[ImageParams].
|
99
|
-
|
100
|
-
- video_settings: typing.Optional[VideoParams].
|
101
|
-
|
102
21
|
- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
|
103
22
|
---
|
104
23
|
from mixpeek.client import Mixpeek
|
@@ -107,57 +26,18 @@ class ParseClient:
|
|
107
26
|
authorization="YOUR_AUTHORIZATION",
|
108
27
|
index_id="YOUR_INDEX_ID",
|
109
28
|
api_key="YOUR_API_KEY",
|
110
|
-
base_url="https://yourhost.com/path/to/api",
|
111
29
|
)
|
112
30
|
client.parse.parse_file()
|
113
31
|
"""
|
114
|
-
_request: typing.Dict[str, typing.Any] = {}
|
115
|
-
if file_url is not OMIT:
|
116
|
-
_request["file_url"] = file_url
|
117
|
-
if contents is not OMIT:
|
118
|
-
_request["contents"] = contents
|
119
|
-
if should_chunk is not OMIT:
|
120
|
-
_request["should_chunk"] = should_chunk
|
121
|
-
if clean_text is not OMIT:
|
122
|
-
_request["clean_text"] = clean_text
|
123
|
-
if max_characters_per_chunk is not OMIT:
|
124
|
-
_request["max_characters_per_chunk"] = max_characters_per_chunk
|
125
|
-
if extract_tags is not OMIT:
|
126
|
-
_request["extract_tags"] = extract_tags
|
127
|
-
if summarize is not OMIT:
|
128
|
-
_request["summarize"] = summarize
|
129
|
-
if pdf_settings is not OMIT:
|
130
|
-
_request["pdf_settings"] = pdf_settings
|
131
|
-
if html_settings is not OMIT:
|
132
|
-
_request["html_settings"] = html_settings
|
133
|
-
if csv_settings is not OMIT:
|
134
|
-
_request["csv_settings"] = csv_settings
|
135
|
-
if ppt_settings is not OMIT:
|
136
|
-
_request["ppt_settings"] = ppt_settings
|
137
|
-
if pptx_settings is not OMIT:
|
138
|
-
_request["pptx_settings"] = pptx_settings
|
139
|
-
if xlsx_settings is not OMIT:
|
140
|
-
_request["xlsx_settings"] = xlsx_settings
|
141
|
-
if txt_settings is not OMIT:
|
142
|
-
_request["txt_settings"] = txt_settings
|
143
|
-
if audio_settings is not OMIT:
|
144
|
-
_request["audio_settings"] = audio_settings
|
145
|
-
if image_settings is not OMIT:
|
146
|
-
_request["image_settings"] = image_settings
|
147
|
-
if video_settings is not OMIT:
|
148
|
-
_request["video_settings"] = video_settings
|
149
32
|
_response = self._client_wrapper.httpx_client.request(
|
150
33
|
"POST",
|
151
34
|
urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "parsers"),
|
152
35
|
params=jsonable_encoder(
|
153
36
|
request_options.get("additional_query_parameters") if request_options is not None else None
|
154
37
|
),
|
155
|
-
json=jsonable_encoder(
|
156
|
-
if request_options is
|
157
|
-
else
|
158
|
-
**jsonable_encoder(_request),
|
159
|
-
**(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
|
160
|
-
},
|
38
|
+
json=jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))
|
39
|
+
if request_options is not None
|
40
|
+
else None,
|
161
41
|
headers=jsonable_encoder(
|
162
42
|
remove_none_from_dict(
|
163
43
|
{
|
@@ -173,19 +53,7 @@ class ParseClient:
|
|
173
53
|
max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
|
174
54
|
)
|
175
55
|
if 200 <= _response.status_code < 300:
|
176
|
-
return
|
177
|
-
if _response.status_code == 400:
|
178
|
-
raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
179
|
-
if _response.status_code == 401:
|
180
|
-
raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
181
|
-
if _response.status_code == 403:
|
182
|
-
raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
183
|
-
if _response.status_code == 404:
|
184
|
-
raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
185
|
-
if _response.status_code == 422:
|
186
|
-
raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
|
187
|
-
if _response.status_code == 500:
|
188
|
-
raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
56
|
+
return
|
189
57
|
try:
|
190
58
|
_response_json = _response.json()
|
191
59
|
except JSONDecodeError:
|
@@ -197,64 +65,9 @@ class AsyncParseClient:
|
|
197
65
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
198
66
|
self._client_wrapper = client_wrapper
|
199
67
|
|
200
|
-
async def parse_file(
|
201
|
-
self,
|
202
|
-
*,
|
203
|
-
file_url: typing.Optional[str] = OMIT,
|
204
|
-
contents: typing.Optional[str] = OMIT,
|
205
|
-
should_chunk: typing.Optional[bool] = OMIT,
|
206
|
-
clean_text: typing.Optional[bool] = OMIT,
|
207
|
-
max_characters_per_chunk: typing.Optional[int] = OMIT,
|
208
|
-
extract_tags: typing.Optional[bool] = OMIT,
|
209
|
-
summarize: typing.Optional[bool] = OMIT,
|
210
|
-
pdf_settings: typing.Optional[PdfParams] = OMIT,
|
211
|
-
html_settings: typing.Optional[HtmlParams] = OMIT,
|
212
|
-
csv_settings: typing.Optional[CsvParams] = OMIT,
|
213
|
-
ppt_settings: typing.Optional[PptParams] = OMIT,
|
214
|
-
pptx_settings: typing.Optional[PptxParams] = OMIT,
|
215
|
-
xlsx_settings: typing.Optional[XlsxParams] = OMIT,
|
216
|
-
txt_settings: typing.Optional[TxtParams] = OMIT,
|
217
|
-
audio_settings: typing.Optional[AudioParams] = OMIT,
|
218
|
-
image_settings: typing.Optional[ImageParams] = OMIT,
|
219
|
-
video_settings: typing.Optional[VideoParams] = OMIT,
|
220
|
-
request_options: typing.Optional[RequestOptions] = None,
|
221
|
-
) -> typing.Any:
|
68
|
+
async def parse_file(self, *, request_options: typing.Optional[RequestOptions] = None) -> None:
|
222
69
|
"""
|
223
70
|
Parameters:
|
224
|
-
- file_url: typing.Optional[str].
|
225
|
-
|
226
|
-
- contents: typing.Optional[str].
|
227
|
-
|
228
|
-
- should_chunk: typing.Optional[bool].
|
229
|
-
|
230
|
-
- clean_text: typing.Optional[bool].
|
231
|
-
|
232
|
-
- max_characters_per_chunk: typing.Optional[int].
|
233
|
-
|
234
|
-
- extract_tags: typing.Optional[bool].
|
235
|
-
|
236
|
-
- summarize: typing.Optional[bool].
|
237
|
-
|
238
|
-
- pdf_settings: typing.Optional[PdfParams].
|
239
|
-
|
240
|
-
- html_settings: typing.Optional[HtmlParams].
|
241
|
-
|
242
|
-
- csv_settings: typing.Optional[CsvParams].
|
243
|
-
|
244
|
-
- ppt_settings: typing.Optional[PptParams].
|
245
|
-
|
246
|
-
- pptx_settings: typing.Optional[PptxParams].
|
247
|
-
|
248
|
-
- xlsx_settings: typing.Optional[XlsxParams].
|
249
|
-
|
250
|
-
- txt_settings: typing.Optional[TxtParams].
|
251
|
-
|
252
|
-
- audio_settings: typing.Optional[AudioParams].
|
253
|
-
|
254
|
-
- image_settings: typing.Optional[ImageParams].
|
255
|
-
|
256
|
-
- video_settings: typing.Optional[VideoParams].
|
257
|
-
|
258
71
|
- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
|
259
72
|
---
|
260
73
|
from mixpeek.client import AsyncMixpeek
|
@@ -263,57 +76,18 @@ class AsyncParseClient:
|
|
263
76
|
authorization="YOUR_AUTHORIZATION",
|
264
77
|
index_id="YOUR_INDEX_ID",
|
265
78
|
api_key="YOUR_API_KEY",
|
266
|
-
base_url="https://yourhost.com/path/to/api",
|
267
79
|
)
|
268
80
|
await client.parse.parse_file()
|
269
81
|
"""
|
270
|
-
_request: typing.Dict[str, typing.Any] = {}
|
271
|
-
if file_url is not OMIT:
|
272
|
-
_request["file_url"] = file_url
|
273
|
-
if contents is not OMIT:
|
274
|
-
_request["contents"] = contents
|
275
|
-
if should_chunk is not OMIT:
|
276
|
-
_request["should_chunk"] = should_chunk
|
277
|
-
if clean_text is not OMIT:
|
278
|
-
_request["clean_text"] = clean_text
|
279
|
-
if max_characters_per_chunk is not OMIT:
|
280
|
-
_request["max_characters_per_chunk"] = max_characters_per_chunk
|
281
|
-
if extract_tags is not OMIT:
|
282
|
-
_request["extract_tags"] = extract_tags
|
283
|
-
if summarize is not OMIT:
|
284
|
-
_request["summarize"] = summarize
|
285
|
-
if pdf_settings is not OMIT:
|
286
|
-
_request["pdf_settings"] = pdf_settings
|
287
|
-
if html_settings is not OMIT:
|
288
|
-
_request["html_settings"] = html_settings
|
289
|
-
if csv_settings is not OMIT:
|
290
|
-
_request["csv_settings"] = csv_settings
|
291
|
-
if ppt_settings is not OMIT:
|
292
|
-
_request["ppt_settings"] = ppt_settings
|
293
|
-
if pptx_settings is not OMIT:
|
294
|
-
_request["pptx_settings"] = pptx_settings
|
295
|
-
if xlsx_settings is not OMIT:
|
296
|
-
_request["xlsx_settings"] = xlsx_settings
|
297
|
-
if txt_settings is not OMIT:
|
298
|
-
_request["txt_settings"] = txt_settings
|
299
|
-
if audio_settings is not OMIT:
|
300
|
-
_request["audio_settings"] = audio_settings
|
301
|
-
if image_settings is not OMIT:
|
302
|
-
_request["image_settings"] = image_settings
|
303
|
-
if video_settings is not OMIT:
|
304
|
-
_request["video_settings"] = video_settings
|
305
82
|
_response = await self._client_wrapper.httpx_client.request(
|
306
83
|
"POST",
|
307
84
|
urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "parsers"),
|
308
85
|
params=jsonable_encoder(
|
309
86
|
request_options.get("additional_query_parameters") if request_options is not None else None
|
310
87
|
),
|
311
|
-
json=jsonable_encoder(
|
312
|
-
if request_options is
|
313
|
-
else
|
314
|
-
**jsonable_encoder(_request),
|
315
|
-
**(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
|
316
|
-
},
|
88
|
+
json=jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))
|
89
|
+
if request_options is not None
|
90
|
+
else None,
|
317
91
|
headers=jsonable_encoder(
|
318
92
|
remove_none_from_dict(
|
319
93
|
{
|
@@ -329,19 +103,7 @@ class AsyncParseClient:
|
|
329
103
|
max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
|
330
104
|
)
|
331
105
|
if 200 <= _response.status_code < 300:
|
332
|
-
return
|
333
|
-
if _response.status_code == 400:
|
334
|
-
raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
335
|
-
if _response.status_code == 401:
|
336
|
-
raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
337
|
-
if _response.status_code == 403:
|
338
|
-
raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
339
|
-
if _response.status_code == 404:
|
340
|
-
raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
341
|
-
if _response.status_code == 422:
|
342
|
-
raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
|
343
|
-
if _response.status_code == 500:
|
344
|
-
raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
106
|
+
return
|
345
107
|
try:
|
346
108
|
_response_json = _response.json()
|
347
109
|
except JSONDecodeError:
|
mixpeek/pipelines/client.py
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
2
2
|
|
3
|
-
import datetime as dt
|
4
3
|
import typing
|
5
4
|
import urllib.parse
|
6
5
|
from json.decoder import JSONDecodeError
|
@@ -16,12 +15,9 @@ from ..errors.internal_server_error import InternalServerError
|
|
16
15
|
from ..errors.not_found_error import NotFoundError
|
17
16
|
from ..errors.unauthorized_error import UnauthorizedError
|
18
17
|
from ..errors.unprocessable_entity_error import UnprocessableEntityError
|
19
|
-
from ..types.connection import Connection
|
20
|
-
from ..types.destination_schema import DestinationSchema
|
21
18
|
from ..types.error_response import ErrorResponse
|
22
19
|
from ..types.http_validation_error import HttpValidationError
|
23
|
-
from ..types.
|
24
|
-
from ..types.source_schema import SourceSchema
|
20
|
+
from ..types.source_destination_mapping import SourceDestinationMapping
|
25
21
|
|
26
22
|
try:
|
27
23
|
import pydantic.v1 as pydantic # type: ignore
|
@@ -49,7 +45,6 @@ class PipelinesClient:
|
|
49
45
|
authorization="YOUR_AUTHORIZATION",
|
50
46
|
index_id="YOUR_INDEX_ID",
|
51
47
|
api_key="YOUR_API_KEY",
|
52
|
-
base_url="https://yourhost.com/path/to/api",
|
53
48
|
)
|
54
49
|
client.pipelines.invoke(
|
55
50
|
pipeline_id="pipeline_id",
|
@@ -103,87 +98,52 @@ class PipelinesClient:
|
|
103
98
|
def create(
|
104
99
|
self,
|
105
100
|
*,
|
106
|
-
|
107
|
-
pipeline_id: typing.Optional[str] = OMIT,
|
108
|
-
connection: typing.Optional[Connection] = OMIT,
|
109
|
-
source: SourceSchema,
|
110
|
-
destination: DestinationSchema,
|
101
|
+
source_destination_mappings: typing.Sequence[SourceDestinationMapping],
|
111
102
|
metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
|
112
|
-
enabled: typing.Optional[bool] = OMIT,
|
113
|
-
last_run: typing.Optional[dt.datetime] = OMIT,
|
114
103
|
request_options: typing.Optional[RequestOptions] = None,
|
115
|
-
) ->
|
104
|
+
) -> typing.Any:
|
116
105
|
"""
|
117
106
|
Parameters:
|
118
|
-
-
|
119
|
-
|
120
|
-
- pipeline_id: typing.Optional[str].
|
121
|
-
|
122
|
-
- connection: typing.Optional[Connection].
|
123
|
-
|
124
|
-
- source: SourceSchema.
|
125
|
-
|
126
|
-
- destination: DestinationSchema.
|
107
|
+
- source_destination_mappings: typing.Sequence[SourceDestinationMapping].
|
127
108
|
|
128
109
|
- metadata: typing.Optional[typing.Dict[str, typing.Any]].
|
129
110
|
|
130
|
-
- enabled: typing.Optional[bool].
|
131
|
-
|
132
|
-
- last_run: typing.Optional[dt.datetime].
|
133
|
-
|
134
111
|
- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
|
135
112
|
---
|
136
|
-
from mixpeek import
|
113
|
+
from mixpeek import Destination, Source, SourceDestinationMapping
|
137
114
|
from mixpeek.client import Mixpeek
|
138
115
|
|
139
116
|
client = Mixpeek(
|
140
117
|
authorization="YOUR_AUTHORIZATION",
|
141
118
|
index_id="YOUR_INDEX_ID",
|
142
119
|
api_key="YOUR_API_KEY",
|
143
|
-
base_url="https://yourhost.com/path/to/api",
|
144
120
|
)
|
145
121
|
client.pipelines.create(
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
122
|
+
source_destination_mappings=[
|
123
|
+
SourceDestinationMapping(
|
124
|
+
embedding_model="embedding_model",
|
125
|
+
source=Source(
|
126
|
+
field="field",
|
127
|
+
type="file_url",
|
128
|
+
settings={},
|
129
|
+
),
|
130
|
+
destination=Destination(
|
131
|
+
collection="collection",
|
132
|
+
field="field",
|
133
|
+
embedding="embedding",
|
134
|
+
),
|
135
|
+
)
|
136
|
+
],
|
160
137
|
)
|
161
138
|
"""
|
162
|
-
_request: typing.Dict[str, typing.Any] = {"
|
163
|
-
if pipeline_id is not OMIT:
|
164
|
-
_request["pipeline_id"] = pipeline_id
|
165
|
-
if connection is not OMIT:
|
166
|
-
_request["connection"] = connection
|
139
|
+
_request: typing.Dict[str, typing.Any] = {"source_destination_mappings": source_destination_mappings}
|
167
140
|
if metadata is not OMIT:
|
168
141
|
_request["metadata"] = metadata
|
169
|
-
if enabled is not OMIT:
|
170
|
-
_request["enabled"] = enabled
|
171
|
-
if last_run is not OMIT:
|
172
|
-
_request["last_run"] = last_run
|
173
142
|
_response = self._client_wrapper.httpx_client.request(
|
174
143
|
"POST",
|
175
144
|
urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "pipelines"),
|
176
145
|
params=jsonable_encoder(
|
177
|
-
|
178
|
-
{
|
179
|
-
"connection_id": connection_id,
|
180
|
-
**(
|
181
|
-
request_options.get("additional_query_parameters", {})
|
182
|
-
if request_options is not None
|
183
|
-
else {}
|
184
|
-
),
|
185
|
-
}
|
186
|
-
)
|
146
|
+
request_options.get("additional_query_parameters") if request_options is not None else None
|
187
147
|
),
|
188
148
|
json=jsonable_encoder(_request)
|
189
149
|
if request_options is None or request_options.get("additional_body_parameters") is None
|
@@ -206,7 +166,7 @@ class PipelinesClient:
|
|
206
166
|
max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
|
207
167
|
)
|
208
168
|
if 200 <= _response.status_code < 300:
|
209
|
-
return pydantic.parse_obj_as(
|
169
|
+
return pydantic.parse_obj_as(typing.Any, _response.json()) # type: ignore
|
210
170
|
if _response.status_code == 400:
|
211
171
|
raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
212
172
|
if _response.status_code == 401:
|
@@ -240,7 +200,6 @@ class PipelinesClient:
|
|
240
200
|
authorization="YOUR_AUTHORIZATION",
|
241
201
|
index_id="YOUR_INDEX_ID",
|
242
202
|
api_key="YOUR_API_KEY",
|
243
|
-
base_url="https://yourhost.com/path/to/api",
|
244
203
|
)
|
245
204
|
client.pipelines.get_status(
|
246
205
|
task_id="task_id",
|
@@ -306,7 +265,6 @@ class AsyncPipelinesClient:
|
|
306
265
|
authorization="YOUR_AUTHORIZATION",
|
307
266
|
index_id="YOUR_INDEX_ID",
|
308
267
|
api_key="YOUR_API_KEY",
|
309
|
-
base_url="https://yourhost.com/path/to/api",
|
310
268
|
)
|
311
269
|
await client.pipelines.invoke(
|
312
270
|
pipeline_id="pipeline_id",
|
@@ -360,87 +318,52 @@ class AsyncPipelinesClient:
|
|
360
318
|
async def create(
|
361
319
|
self,
|
362
320
|
*,
|
363
|
-
|
364
|
-
pipeline_id: typing.Optional[str] = OMIT,
|
365
|
-
connection: typing.Optional[Connection] = OMIT,
|
366
|
-
source: SourceSchema,
|
367
|
-
destination: DestinationSchema,
|
321
|
+
source_destination_mappings: typing.Sequence[SourceDestinationMapping],
|
368
322
|
metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
|
369
|
-
enabled: typing.Optional[bool] = OMIT,
|
370
|
-
last_run: typing.Optional[dt.datetime] = OMIT,
|
371
323
|
request_options: typing.Optional[RequestOptions] = None,
|
372
|
-
) ->
|
324
|
+
) -> typing.Any:
|
373
325
|
"""
|
374
326
|
Parameters:
|
375
|
-
-
|
376
|
-
|
377
|
-
- pipeline_id: typing.Optional[str].
|
378
|
-
|
379
|
-
- connection: typing.Optional[Connection].
|
380
|
-
|
381
|
-
- source: SourceSchema.
|
382
|
-
|
383
|
-
- destination: DestinationSchema.
|
327
|
+
- source_destination_mappings: typing.Sequence[SourceDestinationMapping].
|
384
328
|
|
385
329
|
- metadata: typing.Optional[typing.Dict[str, typing.Any]].
|
386
330
|
|
387
|
-
- enabled: typing.Optional[bool].
|
388
|
-
|
389
|
-
- last_run: typing.Optional[dt.datetime].
|
390
|
-
|
391
331
|
- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
|
392
332
|
---
|
393
|
-
from mixpeek import
|
333
|
+
from mixpeek import Destination, Source, SourceDestinationMapping
|
394
334
|
from mixpeek.client import AsyncMixpeek
|
395
335
|
|
396
336
|
client = AsyncMixpeek(
|
397
337
|
authorization="YOUR_AUTHORIZATION",
|
398
338
|
index_id="YOUR_INDEX_ID",
|
399
339
|
api_key="YOUR_API_KEY",
|
400
|
-
base_url="https://yourhost.com/path/to/api",
|
401
340
|
)
|
402
341
|
await client.pipelines.create(
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
342
|
+
source_destination_mappings=[
|
343
|
+
SourceDestinationMapping(
|
344
|
+
embedding_model="embedding_model",
|
345
|
+
source=Source(
|
346
|
+
field="field",
|
347
|
+
type="file_url",
|
348
|
+
settings={},
|
349
|
+
),
|
350
|
+
destination=Destination(
|
351
|
+
collection="collection",
|
352
|
+
field="field",
|
353
|
+
embedding="embedding",
|
354
|
+
),
|
355
|
+
)
|
356
|
+
],
|
417
357
|
)
|
418
358
|
"""
|
419
|
-
_request: typing.Dict[str, typing.Any] = {"
|
420
|
-
if pipeline_id is not OMIT:
|
421
|
-
_request["pipeline_id"] = pipeline_id
|
422
|
-
if connection is not OMIT:
|
423
|
-
_request["connection"] = connection
|
359
|
+
_request: typing.Dict[str, typing.Any] = {"source_destination_mappings": source_destination_mappings}
|
424
360
|
if metadata is not OMIT:
|
425
361
|
_request["metadata"] = metadata
|
426
|
-
if enabled is not OMIT:
|
427
|
-
_request["enabled"] = enabled
|
428
|
-
if last_run is not OMIT:
|
429
|
-
_request["last_run"] = last_run
|
430
362
|
_response = await self._client_wrapper.httpx_client.request(
|
431
363
|
"POST",
|
432
364
|
urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "pipelines"),
|
433
365
|
params=jsonable_encoder(
|
434
|
-
|
435
|
-
{
|
436
|
-
"connection_id": connection_id,
|
437
|
-
**(
|
438
|
-
request_options.get("additional_query_parameters", {})
|
439
|
-
if request_options is not None
|
440
|
-
else {}
|
441
|
-
),
|
442
|
-
}
|
443
|
-
)
|
366
|
+
request_options.get("additional_query_parameters") if request_options is not None else None
|
444
367
|
),
|
445
368
|
json=jsonable_encoder(_request)
|
446
369
|
if request_options is None or request_options.get("additional_body_parameters") is None
|
@@ -463,7 +386,7 @@ class AsyncPipelinesClient:
|
|
463
386
|
max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
|
464
387
|
)
|
465
388
|
if 200 <= _response.status_code < 300:
|
466
|
-
return pydantic.parse_obj_as(
|
389
|
+
return pydantic.parse_obj_as(typing.Any, _response.json()) # type: ignore
|
467
390
|
if _response.status_code == 400:
|
468
391
|
raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
469
392
|
if _response.status_code == 401:
|
@@ -497,7 +420,6 @@ class AsyncPipelinesClient:
|
|
497
420
|
authorization="YOUR_AUTHORIZATION",
|
498
421
|
index_id="YOUR_INDEX_ID",
|
499
422
|
api_key="YOUR_API_KEY",
|
500
|
-
base_url="https://yourhost.com/path/to/api",
|
501
423
|
)
|
502
424
|
await client.pipelines.get_status(
|
503
425
|
task_id="task_id",
|
mixpeek/storage/client.py
CHANGED
@@ -39,7 +39,6 @@ class StorageClient:
|
|
39
39
|
authorization="YOUR_AUTHORIZATION",
|
40
40
|
index_id="YOUR_INDEX_ID",
|
41
41
|
api_key="YOUR_API_KEY",
|
42
|
-
base_url="https://yourhost.com/path/to/api",
|
43
42
|
)
|
44
43
|
client.storage.test_connection()
|
45
44
|
"""
|
@@ -94,7 +93,6 @@ class StorageClient:
|
|
94
93
|
authorization="YOUR_AUTHORIZATION",
|
95
94
|
index_id="YOUR_INDEX_ID",
|
96
95
|
api_key="YOUR_API_KEY",
|
97
|
-
base_url="https://yourhost.com/path/to/api",
|
98
96
|
)
|
99
97
|
client.storage.sample_database()
|
100
98
|
"""
|
@@ -154,7 +152,6 @@ class AsyncStorageClient:
|
|
154
152
|
authorization="YOUR_AUTHORIZATION",
|
155
153
|
index_id="YOUR_INDEX_ID",
|
156
154
|
api_key="YOUR_API_KEY",
|
157
|
-
base_url="https://yourhost.com/path/to/api",
|
158
155
|
)
|
159
156
|
await client.storage.test_connection()
|
160
157
|
"""
|
@@ -209,7 +206,6 @@ class AsyncStorageClient:
|
|
209
206
|
authorization="YOUR_AUTHORIZATION",
|
210
207
|
index_id="YOUR_INDEX_ID",
|
211
208
|
api_key="YOUR_API_KEY",
|
212
|
-
base_url="https://yourhost.com/path/to/api",
|
213
209
|
)
|
214
210
|
await client.storage.sample_database()
|
215
211
|
"""
|