mixpeek 0.6.2__py3-none-any.whl → 0.6.5__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 +12 -8
- mixpeek/base_client.py +857 -23
- mixpeek/client.py +7 -7
- mixpeek/core/client_wrapper.py +1 -1
- mixpeek/{pipelines → pipeline}/client.py +26 -20
- mixpeek/storage/__init__.py +3 -0
- mixpeek/storage/client.py +7 -112
- mixpeek/{embed → storage/sample}/client.py +61 -129
- mixpeek/types/__init__.py +8 -0
- mixpeek/types/configs_response.py +14 -3
- mixpeek/types/destination.py +14 -3
- mixpeek/types/embedding_response.py +6 -2
- mixpeek/types/extract_response.py +39 -0
- mixpeek/types/generation_response.py +6 -4
- mixpeek/types/message.py +9 -2
- mixpeek/types/metadata.py +0 -2
- mixpeek/types/modality.py +1 -1
- mixpeek/types/model.py +9 -2
- mixpeek/types/pipeline_response.py +49 -0
- mixpeek/types/pipeline_task_response.py +32 -0
- mixpeek/types/source.py +14 -3
- mixpeek/types/source_destination_mapping.py +14 -3
- mixpeek/types/workflow_code_response.py +29 -0
- mixpeek/{users → user}/client.py +10 -10
- mixpeek/{workflows → workflow}/client.py +14 -15
- {mixpeek-0.6.2.dist-info → mixpeek-0.6.5.dist-info}/METADATA +1 -1
- {mixpeek-0.6.2.dist-info → mixpeek-0.6.5.dist-info}/RECORD +33 -36
- mixpeek/extract/client.py +0 -347
- mixpeek/generators/client.py +0 -237
- mixpeek/parse/client.py +0 -111
- mixpeek/parse_client.py +0 -14
- mixpeek/pipelines/__init__.py +0 -2
- mixpeek/users/__init__.py +0 -2
- mixpeek/workflows/__init__.py +0 -2
- /mixpeek/{embed → pipeline}/__init__.py +0 -0
- /mixpeek/{extract → storage/sample}/__init__.py +0 -0
- /mixpeek/{generators → user}/__init__.py +0 -0
- /mixpeek/{parse → workflow}/__init__.py +0 -0
- {mixpeek-0.6.2.dist-info → mixpeek-0.6.5.dist-info}/LICENSE +0 -0
- {mixpeek-0.6.2.dist-info → mixpeek-0.6.5.dist-info}/WHEEL +0 -0
mixpeek/extract/client.py
DELETED
@@ -1,347 +0,0 @@
|
|
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)
|
mixpeek/generators/client.py
DELETED
@@ -1,237 +0,0 @@
|
|
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.error_response import ErrorResponse
|
19
|
-
from ..types.generation_response import GenerationResponse
|
20
|
-
from ..types.http_validation_error import HttpValidationError
|
21
|
-
from ..types.message import Message
|
22
|
-
from ..types.model import Model
|
23
|
-
from ..types.settings import Settings
|
24
|
-
|
25
|
-
try:
|
26
|
-
import pydantic.v1 as pydantic # type: ignore
|
27
|
-
except ImportError:
|
28
|
-
import pydantic # type: ignore
|
29
|
-
|
30
|
-
# this is used as the default value for optional parameters
|
31
|
-
OMIT = typing.cast(typing.Any, ...)
|
32
|
-
|
33
|
-
|
34
|
-
class GeneratorsClient:
|
35
|
-
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
36
|
-
self._client_wrapper = client_wrapper
|
37
|
-
|
38
|
-
def generate(
|
39
|
-
self,
|
40
|
-
*,
|
41
|
-
model: Model,
|
42
|
-
response_format: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
|
43
|
-
context: typing.Optional[str] = OMIT,
|
44
|
-
messages: typing.Sequence[Message],
|
45
|
-
settings: typing.Optional[Settings] = OMIT,
|
46
|
-
request_options: typing.Optional[RequestOptions] = None,
|
47
|
-
) -> GenerationResponse:
|
48
|
-
"""
|
49
|
-
Parameters:
|
50
|
-
- model: Model.
|
51
|
-
|
52
|
-
- response_format: typing.Optional[typing.Dict[str, typing.Any]].
|
53
|
-
|
54
|
-
- context: typing.Optional[str].
|
55
|
-
|
56
|
-
- messages: typing.Sequence[Message].
|
57
|
-
|
58
|
-
- settings: typing.Optional[Settings].
|
59
|
-
|
60
|
-
- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
|
61
|
-
---
|
62
|
-
from mixpeek import Message, Model
|
63
|
-
from mixpeek.client import Mixpeek
|
64
|
-
|
65
|
-
client = Mixpeek(
|
66
|
-
authorization="YOUR_AUTHORIZATION",
|
67
|
-
index_id="YOUR_INDEX_ID",
|
68
|
-
api_key="YOUR_API_KEY",
|
69
|
-
)
|
70
|
-
client.generators.generate(
|
71
|
-
model=Model(
|
72
|
-
provider="provider",
|
73
|
-
model="gpt-3.5-turbo",
|
74
|
-
),
|
75
|
-
messages=[
|
76
|
-
Message(
|
77
|
-
role="role",
|
78
|
-
content="content",
|
79
|
-
)
|
80
|
-
],
|
81
|
-
)
|
82
|
-
"""
|
83
|
-
_request: typing.Dict[str, typing.Any] = {"model": model, "messages": messages}
|
84
|
-
if response_format is not OMIT:
|
85
|
-
_request["response_format"] = response_format
|
86
|
-
if context is not OMIT:
|
87
|
-
_request["context"] = context
|
88
|
-
if settings is not OMIT:
|
89
|
-
_request["settings"] = settings
|
90
|
-
_response = self._client_wrapper.httpx_client.request(
|
91
|
-
"POST",
|
92
|
-
urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "generate"),
|
93
|
-
params=jsonable_encoder(
|
94
|
-
request_options.get("additional_query_parameters") if request_options is not None else None
|
95
|
-
),
|
96
|
-
json=jsonable_encoder(_request)
|
97
|
-
if request_options is None or request_options.get("additional_body_parameters") is None
|
98
|
-
else {
|
99
|
-
**jsonable_encoder(_request),
|
100
|
-
**(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
|
101
|
-
},
|
102
|
-
headers=jsonable_encoder(
|
103
|
-
remove_none_from_dict(
|
104
|
-
{
|
105
|
-
**self._client_wrapper.get_headers(),
|
106
|
-
**(request_options.get("additional_headers", {}) if request_options is not None else {}),
|
107
|
-
}
|
108
|
-
)
|
109
|
-
),
|
110
|
-
timeout=request_options.get("timeout_in_seconds")
|
111
|
-
if request_options is not None and request_options.get("timeout_in_seconds") is not None
|
112
|
-
else self._client_wrapper.get_timeout(),
|
113
|
-
retries=0,
|
114
|
-
max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
|
115
|
-
)
|
116
|
-
if 200 <= _response.status_code < 300:
|
117
|
-
return pydantic.parse_obj_as(GenerationResponse, _response.json()) # type: ignore
|
118
|
-
if _response.status_code == 400:
|
119
|
-
raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
120
|
-
if _response.status_code == 401:
|
121
|
-
raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
122
|
-
if _response.status_code == 403:
|
123
|
-
raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
124
|
-
if _response.status_code == 404:
|
125
|
-
raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
126
|
-
if _response.status_code == 422:
|
127
|
-
raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
|
128
|
-
if _response.status_code == 500:
|
129
|
-
raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
130
|
-
try:
|
131
|
-
_response_json = _response.json()
|
132
|
-
except JSONDecodeError:
|
133
|
-
raise ApiError(status_code=_response.status_code, body=_response.text)
|
134
|
-
raise ApiError(status_code=_response.status_code, body=_response_json)
|
135
|
-
|
136
|
-
|
137
|
-
class AsyncGeneratorsClient:
|
138
|
-
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
139
|
-
self._client_wrapper = client_wrapper
|
140
|
-
|
141
|
-
async def generate(
|
142
|
-
self,
|
143
|
-
*,
|
144
|
-
model: Model,
|
145
|
-
response_format: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
|
146
|
-
context: typing.Optional[str] = OMIT,
|
147
|
-
messages: typing.Sequence[Message],
|
148
|
-
settings: typing.Optional[Settings] = OMIT,
|
149
|
-
request_options: typing.Optional[RequestOptions] = None,
|
150
|
-
) -> GenerationResponse:
|
151
|
-
"""
|
152
|
-
Parameters:
|
153
|
-
- model: Model.
|
154
|
-
|
155
|
-
- response_format: typing.Optional[typing.Dict[str, typing.Any]].
|
156
|
-
|
157
|
-
- context: typing.Optional[str].
|
158
|
-
|
159
|
-
- messages: typing.Sequence[Message].
|
160
|
-
|
161
|
-
- settings: typing.Optional[Settings].
|
162
|
-
|
163
|
-
- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
|
164
|
-
---
|
165
|
-
from mixpeek import Message, Model
|
166
|
-
from mixpeek.client import AsyncMixpeek
|
167
|
-
|
168
|
-
client = AsyncMixpeek(
|
169
|
-
authorization="YOUR_AUTHORIZATION",
|
170
|
-
index_id="YOUR_INDEX_ID",
|
171
|
-
api_key="YOUR_API_KEY",
|
172
|
-
)
|
173
|
-
await client.generators.generate(
|
174
|
-
model=Model(
|
175
|
-
provider="provider",
|
176
|
-
model="gpt-3.5-turbo",
|
177
|
-
),
|
178
|
-
messages=[
|
179
|
-
Message(
|
180
|
-
role="role",
|
181
|
-
content="content",
|
182
|
-
)
|
183
|
-
],
|
184
|
-
)
|
185
|
-
"""
|
186
|
-
_request: typing.Dict[str, typing.Any] = {"model": model, "messages": messages}
|
187
|
-
if response_format is not OMIT:
|
188
|
-
_request["response_format"] = response_format
|
189
|
-
if context is not OMIT:
|
190
|
-
_request["context"] = context
|
191
|
-
if settings is not OMIT:
|
192
|
-
_request["settings"] = settings
|
193
|
-
_response = await self._client_wrapper.httpx_client.request(
|
194
|
-
"POST",
|
195
|
-
urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "generate"),
|
196
|
-
params=jsonable_encoder(
|
197
|
-
request_options.get("additional_query_parameters") if request_options is not None else None
|
198
|
-
),
|
199
|
-
json=jsonable_encoder(_request)
|
200
|
-
if request_options is None or request_options.get("additional_body_parameters") is None
|
201
|
-
else {
|
202
|
-
**jsonable_encoder(_request),
|
203
|
-
**(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
|
204
|
-
},
|
205
|
-
headers=jsonable_encoder(
|
206
|
-
remove_none_from_dict(
|
207
|
-
{
|
208
|
-
**self._client_wrapper.get_headers(),
|
209
|
-
**(request_options.get("additional_headers", {}) if request_options is not None else {}),
|
210
|
-
}
|
211
|
-
)
|
212
|
-
),
|
213
|
-
timeout=request_options.get("timeout_in_seconds")
|
214
|
-
if request_options is not None and request_options.get("timeout_in_seconds") is not None
|
215
|
-
else self._client_wrapper.get_timeout(),
|
216
|
-
retries=0,
|
217
|
-
max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
|
218
|
-
)
|
219
|
-
if 200 <= _response.status_code < 300:
|
220
|
-
return pydantic.parse_obj_as(GenerationResponse, _response.json()) # type: ignore
|
221
|
-
if _response.status_code == 400:
|
222
|
-
raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
223
|
-
if _response.status_code == 401:
|
224
|
-
raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
225
|
-
if _response.status_code == 403:
|
226
|
-
raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
227
|
-
if _response.status_code == 404:
|
228
|
-
raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
229
|
-
if _response.status_code == 422:
|
230
|
-
raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
|
231
|
-
if _response.status_code == 500:
|
232
|
-
raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
|
233
|
-
try:
|
234
|
-
_response_json = _response.json()
|
235
|
-
except JSONDecodeError:
|
236
|
-
raise ApiError(status_code=_response.status_code, body=_response.text)
|
237
|
-
raise ApiError(status_code=_response.status_code, body=_response_json)
|