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.
@@ -0,0 +1,347 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ import urllib.parse
5
+ from json.decoder import JSONDecodeError
6
+
7
+ from ..core.api_error import ApiError
8
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
9
+ from ..core.jsonable_encoder import jsonable_encoder
10
+ from ..core.remove_none_from_dict import remove_none_from_dict
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
+
39
+
40
+ class ExtractClient:
41
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
42
+ self._client_wrapper = client_wrapper
43
+
44
+ def file_extract_post(
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:
66
+ """
67
+ 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
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
103
+ ---
104
+ from mixpeek.client import Mixpeek
105
+
106
+ client = Mixpeek(
107
+ authorization="YOUR_AUTHORIZATION",
108
+ index_id="YOUR_INDEX_ID",
109
+ api_key="YOUR_API_KEY",
110
+ )
111
+ client.extract.file_extract_post()
112
+ """
113
+ _request: typing.Dict[str, typing.Any] = {}
114
+ if file_url is not OMIT:
115
+ _request["file_url"] = file_url
116
+ if contents is not OMIT:
117
+ _request["contents"] = contents
118
+ if should_chunk is not OMIT:
119
+ _request["should_chunk"] = should_chunk
120
+ if clean_text is not OMIT:
121
+ _request["clean_text"] = clean_text
122
+ if max_characters_per_chunk is not OMIT:
123
+ _request["max_characters_per_chunk"] = max_characters_per_chunk
124
+ if extract_tags is not OMIT:
125
+ _request["extract_tags"] = extract_tags
126
+ if summarize is not OMIT:
127
+ _request["summarize"] = summarize
128
+ if pdf_settings is not OMIT:
129
+ _request["pdf_settings"] = pdf_settings
130
+ if html_settings is not OMIT:
131
+ _request["html_settings"] = html_settings
132
+ if csv_settings is not OMIT:
133
+ _request["csv_settings"] = csv_settings
134
+ if ppt_settings is not OMIT:
135
+ _request["ppt_settings"] = ppt_settings
136
+ if pptx_settings is not OMIT:
137
+ _request["pptx_settings"] = pptx_settings
138
+ if xlsx_settings is not OMIT:
139
+ _request["xlsx_settings"] = xlsx_settings
140
+ if txt_settings is not OMIT:
141
+ _request["txt_settings"] = txt_settings
142
+ if audio_settings is not OMIT:
143
+ _request["audio_settings"] = audio_settings
144
+ if image_settings is not OMIT:
145
+ _request["image_settings"] = image_settings
146
+ if video_settings is not OMIT:
147
+ _request["video_settings"] = video_settings
148
+ _response = self._client_wrapper.httpx_client.request(
149
+ "POST",
150
+ urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "extract"),
151
+ params=jsonable_encoder(
152
+ request_options.get("additional_query_parameters") if request_options is not None else None
153
+ ),
154
+ json=jsonable_encoder(_request)
155
+ if request_options is None or request_options.get("additional_body_parameters") is None
156
+ else {
157
+ **jsonable_encoder(_request),
158
+ **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
159
+ },
160
+ headers=jsonable_encoder(
161
+ remove_none_from_dict(
162
+ {
163
+ **self._client_wrapper.get_headers(),
164
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
165
+ }
166
+ )
167
+ ),
168
+ timeout=request_options.get("timeout_in_seconds")
169
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
170
+ else self._client_wrapper.get_timeout(),
171
+ retries=0,
172
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
173
+ )
174
+ if 200 <= _response.status_code < 300:
175
+ return pydantic.parse_obj_as(typing.Any, _response.json()) # type: ignore
176
+ if _response.status_code == 400:
177
+ raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
178
+ if _response.status_code == 401:
179
+ raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
180
+ if _response.status_code == 403:
181
+ raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
182
+ if _response.status_code == 404:
183
+ raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
184
+ if _response.status_code == 422:
185
+ raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
186
+ if _response.status_code == 500:
187
+ raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
188
+ try:
189
+ _response_json = _response.json()
190
+ except JSONDecodeError:
191
+ raise ApiError(status_code=_response.status_code, body=_response.text)
192
+ raise ApiError(status_code=_response.status_code, body=_response_json)
193
+
194
+
195
+ class AsyncExtractClient:
196
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
197
+ self._client_wrapper = client_wrapper
198
+
199
+ async def file_extract_post(
200
+ self,
201
+ *,
202
+ file_url: typing.Optional[str] = OMIT,
203
+ contents: typing.Optional[str] = OMIT,
204
+ should_chunk: typing.Optional[bool] = OMIT,
205
+ clean_text: typing.Optional[bool] = OMIT,
206
+ max_characters_per_chunk: typing.Optional[int] = OMIT,
207
+ extract_tags: typing.Optional[bool] = OMIT,
208
+ summarize: typing.Optional[bool] = OMIT,
209
+ pdf_settings: typing.Optional[PdfParams] = OMIT,
210
+ html_settings: typing.Optional[HtmlParams] = OMIT,
211
+ csv_settings: typing.Optional[CsvParams] = OMIT,
212
+ ppt_settings: typing.Optional[PptParams] = OMIT,
213
+ pptx_settings: typing.Optional[PptxParams] = OMIT,
214
+ xlsx_settings: typing.Optional[XlsxParams] = OMIT,
215
+ txt_settings: typing.Optional[TxtParams] = OMIT,
216
+ audio_settings: typing.Optional[AudioParams] = OMIT,
217
+ image_settings: typing.Optional[ImageParams] = OMIT,
218
+ video_settings: typing.Optional[VideoParams] = OMIT,
219
+ request_options: typing.Optional[RequestOptions] = None,
220
+ ) -> typing.Any:
221
+ """
222
+ Parameters:
223
+ - file_url: typing.Optional[str].
224
+
225
+ - contents: typing.Optional[str].
226
+
227
+ - should_chunk: typing.Optional[bool].
228
+
229
+ - clean_text: typing.Optional[bool].
230
+
231
+ - max_characters_per_chunk: typing.Optional[int].
232
+
233
+ - extract_tags: typing.Optional[bool].
234
+
235
+ - summarize: typing.Optional[bool].
236
+
237
+ - pdf_settings: typing.Optional[PdfParams].
238
+
239
+ - html_settings: typing.Optional[HtmlParams].
240
+
241
+ - csv_settings: typing.Optional[CsvParams].
242
+
243
+ - ppt_settings: typing.Optional[PptParams].
244
+
245
+ - pptx_settings: typing.Optional[PptxParams].
246
+
247
+ - xlsx_settings: typing.Optional[XlsxParams].
248
+
249
+ - txt_settings: typing.Optional[TxtParams].
250
+
251
+ - audio_settings: typing.Optional[AudioParams].
252
+
253
+ - image_settings: typing.Optional[ImageParams].
254
+
255
+ - video_settings: typing.Optional[VideoParams].
256
+
257
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
258
+ ---
259
+ from mixpeek.client import AsyncMixpeek
260
+
261
+ client = AsyncMixpeek(
262
+ authorization="YOUR_AUTHORIZATION",
263
+ index_id="YOUR_INDEX_ID",
264
+ api_key="YOUR_API_KEY",
265
+ )
266
+ await client.extract.file_extract_post()
267
+ """
268
+ _request: typing.Dict[str, typing.Any] = {}
269
+ if file_url is not OMIT:
270
+ _request["file_url"] = file_url
271
+ if contents is not OMIT:
272
+ _request["contents"] = contents
273
+ if should_chunk is not OMIT:
274
+ _request["should_chunk"] = should_chunk
275
+ if clean_text is not OMIT:
276
+ _request["clean_text"] = clean_text
277
+ if max_characters_per_chunk is not OMIT:
278
+ _request["max_characters_per_chunk"] = max_characters_per_chunk
279
+ if extract_tags is not OMIT:
280
+ _request["extract_tags"] = extract_tags
281
+ if summarize is not OMIT:
282
+ _request["summarize"] = summarize
283
+ if pdf_settings is not OMIT:
284
+ _request["pdf_settings"] = pdf_settings
285
+ if html_settings is not OMIT:
286
+ _request["html_settings"] = html_settings
287
+ if csv_settings is not OMIT:
288
+ _request["csv_settings"] = csv_settings
289
+ if ppt_settings is not OMIT:
290
+ _request["ppt_settings"] = ppt_settings
291
+ if pptx_settings is not OMIT:
292
+ _request["pptx_settings"] = pptx_settings
293
+ if xlsx_settings is not OMIT:
294
+ _request["xlsx_settings"] = xlsx_settings
295
+ if txt_settings is not OMIT:
296
+ _request["txt_settings"] = txt_settings
297
+ if audio_settings is not OMIT:
298
+ _request["audio_settings"] = audio_settings
299
+ if image_settings is not OMIT:
300
+ _request["image_settings"] = image_settings
301
+ if video_settings is not OMIT:
302
+ _request["video_settings"] = video_settings
303
+ _response = await self._client_wrapper.httpx_client.request(
304
+ "POST",
305
+ urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "extract"),
306
+ params=jsonable_encoder(
307
+ request_options.get("additional_query_parameters") if request_options is not None else None
308
+ ),
309
+ json=jsonable_encoder(_request)
310
+ if request_options is None or request_options.get("additional_body_parameters") is None
311
+ else {
312
+ **jsonable_encoder(_request),
313
+ **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
314
+ },
315
+ headers=jsonable_encoder(
316
+ remove_none_from_dict(
317
+ {
318
+ **self._client_wrapper.get_headers(),
319
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
320
+ }
321
+ )
322
+ ),
323
+ timeout=request_options.get("timeout_in_seconds")
324
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
325
+ else self._client_wrapper.get_timeout(),
326
+ retries=0,
327
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
328
+ )
329
+ if 200 <= _response.status_code < 300:
330
+ return pydantic.parse_obj_as(typing.Any, _response.json()) # type: ignore
331
+ if _response.status_code == 400:
332
+ raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
333
+ if _response.status_code == 401:
334
+ raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
335
+ if _response.status_code == 403:
336
+ raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
337
+ if _response.status_code == 404:
338
+ raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
339
+ if _response.status_code == 422:
340
+ raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
341
+ if _response.status_code == 500:
342
+ raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
343
+ try:
344
+ _response_json = _response.json()
345
+ except JSONDecodeError:
346
+ raise ApiError(status_code=_response.status_code, body=_response.text)
347
+ raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -66,12 +66,11 @@ class GeneratorsClient:
66
66
  authorization="YOUR_AUTHORIZATION",
67
67
  index_id="YOUR_INDEX_ID",
68
68
  api_key="YOUR_API_KEY",
69
- base_url="https://yourhost.com/path/to/api",
70
69
  )
71
70
  client.generators.generate(
72
71
  model=Model(
73
72
  provider="provider",
74
- model="model",
73
+ model="gpt-3.5-turbo",
75
74
  ),
76
75
  messages=[
77
76
  Message(
@@ -170,12 +169,11 @@ class AsyncGeneratorsClient:
170
169
  authorization="YOUR_AUTHORIZATION",
171
170
  index_id="YOUR_INDEX_ID",
172
171
  api_key="YOUR_API_KEY",
173
- base_url="https://yourhost.com/path/to/api",
174
172
  )
175
173
  await client.generators.generate(
176
174
  model=Model(
177
175
  provider="provider",
178
- model="model",
176
+ model="gpt-3.5-turbo",
179
177
  ),
180
178
  messages=[
181
179
  Message(