most-client 1.0.24__tar.gz → 1.0.25__tar.gz
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.
- {most_client-1.0.24/most_client.egg-info → most_client-1.0.25}/PKG-INFO +2 -2
- most_client-1.0.25/most/_constrants.py +7 -0
- {most_client-1.0.24 → most_client-1.0.25}/most/api.py +48 -31
- {most_client-1.0.24 → most_client-1.0.25}/most/async_api.py +51 -33
- {most_client-1.0.24 → most_client-1.0.25/most_client.egg-info}/PKG-INFO +2 -2
- {most_client-1.0.24 → most_client-1.0.25}/most_client.egg-info/SOURCES.txt +1 -0
- {most_client-1.0.24 → most_client-1.0.25}/setup.py +1 -1
- {most_client-1.0.24 → most_client-1.0.25}/MANIFEST.in +0 -0
- {most_client-1.0.24 → most_client-1.0.25}/README.md +0 -0
- {most_client-1.0.24 → most_client-1.0.25}/most/__init__.py +0 -0
- {most_client-1.0.24 → most_client-1.0.25}/most/score_calculation.py +0 -0
- {most_client-1.0.24 → most_client-1.0.25}/most/types.py +0 -0
- {most_client-1.0.24 → most_client-1.0.25}/most_client.egg-info/dependency_links.txt +0 -0
- {most_client-1.0.24 → most_client-1.0.25}/most_client.egg-info/requires.txt +0 -0
- {most_client-1.0.24 → most_client-1.0.25}/most_client.egg-info/top_level.txt +0 -0
- {most_client-1.0.24 → most_client-1.0.25}/most_client.egg-info/zip-safe +0 -0
- {most_client-1.0.24 → most_client-1.0.25}/requirements.txt +0 -0
- {most_client-1.0.24 → most_client-1.0.25}/setup.cfg +0 -0
@@ -2,13 +2,12 @@ import io
|
|
2
2
|
import os
|
3
3
|
import uuid
|
4
4
|
from pathlib import Path
|
5
|
-
from typing import Dict, List, Optional
|
6
|
-
|
5
|
+
from typing import Dict, List, Optional, Union
|
7
6
|
import json5
|
8
|
-
import
|
7
|
+
import httpx
|
9
8
|
from adaptix import Retort
|
10
9
|
from pydub import AudioSegment
|
11
|
-
|
10
|
+
from most._constrants import DEFAULT_MAX_RETRIES, DEFAULT_RETRY_DELAY
|
12
11
|
from most.score_calculation import ScoreCalculation
|
13
12
|
from most.types import (
|
14
13
|
Audio,
|
@@ -28,7 +27,13 @@ class MostClient(object):
|
|
28
27
|
def __init__(self,
|
29
28
|
client_id=None,
|
30
29
|
client_secret=None,
|
31
|
-
model_id=None
|
30
|
+
model_id=None,
|
31
|
+
|
32
|
+
base_url: str | httpx.URL | None = None,
|
33
|
+
timeout: Union[float, httpx.Timeout] = 1e10,
|
34
|
+
max_retries: int = DEFAULT_MAX_RETRIES,
|
35
|
+
# retry_delay: float = DEFAULT_RETRY_DELAY,
|
36
|
+
http_client: httpx.Client | None = None):
|
32
37
|
super(MostClient, self).__init__()
|
33
38
|
self.client_id = client_id
|
34
39
|
self.client_secret = client_secret
|
@@ -46,7 +51,19 @@ class MostClient(object):
|
|
46
51
|
else:
|
47
52
|
self.save_credentials()
|
48
53
|
|
49
|
-
|
54
|
+
if base_url is None:
|
55
|
+
base_url = os.environ.get("MOST_BASE_URL")
|
56
|
+
if base_url is None:
|
57
|
+
base_url = f"https://api.the-most.ai/api/external"
|
58
|
+
|
59
|
+
if http_client is None:
|
60
|
+
http_client = httpx.Client(base_url=base_url,
|
61
|
+
timeout=timeout,
|
62
|
+
follow_redirects=True,
|
63
|
+
transport=httpx.HTTPTransport(retries=max_retries))
|
64
|
+
# self.max_retries = max_retries
|
65
|
+
# self.retry_delay = retry_delay
|
66
|
+
self.session = http_client
|
50
67
|
self.access_token = None
|
51
68
|
self.model_id = model_id
|
52
69
|
self.score_modifier = None
|
@@ -89,7 +106,7 @@ class MostClient(object):
|
|
89
106
|
return client
|
90
107
|
|
91
108
|
def refresh_access_token(self):
|
92
|
-
resp = self.session.post("
|
109
|
+
resp = self.session.post("/access_token",
|
93
110
|
json={"client_id": self.client_id,
|
94
111
|
"client_secret": self.client_secret},
|
95
112
|
timeout=None)
|
@@ -158,18 +175,18 @@ class MostClient(object):
|
|
158
175
|
return resp
|
159
176
|
|
160
177
|
def upload_text(self, text: str) -> Text:
|
161
|
-
resp = self.post(f"
|
178
|
+
resp = self.post(f"/{self.client_id}/upload_text",
|
162
179
|
files={"text": text})
|
163
180
|
return self.retort.load(resp.json(), Text)
|
164
181
|
|
165
182
|
def upload_dialog(self, dialog: Dialog) -> DialogResult:
|
166
|
-
resp = self.post(f"
|
183
|
+
resp = self.post(f"/{self.client_id}/upload_dialog",
|
167
184
|
json={"dialog": dialog})
|
168
185
|
return self.retort.load(resp.json(), DialogResult)
|
169
186
|
|
170
187
|
def upload_audio(self, audio_path) -> Audio:
|
171
188
|
with open(audio_path, 'rb') as f:
|
172
|
-
resp = self.post(f"
|
189
|
+
resp = self.post(f"/{self.client_id}/upload",
|
173
190
|
files={"audio_file": f})
|
174
191
|
return self.retort.load(resp.json(), Audio)
|
175
192
|
|
@@ -180,26 +197,26 @@ class MostClient(object):
|
|
180
197
|
f.seek(0)
|
181
198
|
if audio_name is None:
|
182
199
|
audio_name = uuid.uuid4().hex + ".mp3"
|
183
|
-
resp = self.post(f"
|
200
|
+
resp = self.post(f"/{self.client_id}/upload",
|
184
201
|
files={"audio_file": (audio_name, f, 'audio/mp3')})
|
185
202
|
return self.retort.load(resp.json(), Audio)
|
186
203
|
|
187
204
|
def upload_audio_url(self, audio_url) -> Audio:
|
188
|
-
resp = self.post(f"
|
205
|
+
resp = self.post(f"/{self.client_id}/upload_url",
|
189
206
|
json={"audio_url": audio_url})
|
190
207
|
return self.retort.load(resp.json(), Audio)
|
191
208
|
|
192
209
|
def list_audios(self,
|
193
210
|
offset: int = 0,
|
194
211
|
limit: int = 10) -> List[Audio]:
|
195
|
-
resp = self.get(f"
|
212
|
+
resp = self.get(f"/{self.client_id}/list?offset={offset}&limit={limit}")
|
196
213
|
audio_list = resp.json()
|
197
214
|
return self.retort.load(audio_list, List[Audio])
|
198
215
|
|
199
216
|
def list_texts(self,
|
200
217
|
offset: int = 0,
|
201
218
|
limit: int = 10) -> List[Text]:
|
202
|
-
resp = self.get(f"
|
219
|
+
resp = self.get(f"/{self.client_id}/list_texts?offset={offset}&limit={limit}")
|
203
220
|
texts_list = resp.json()
|
204
221
|
return self.retort.load(texts_list, List[Text])
|
205
222
|
|
@@ -207,7 +224,7 @@ class MostClient(object):
|
|
207
224
|
if not is_valid_id(self.model_id):
|
208
225
|
raise RuntimeError("Please choose valid model to apply. [try list_models()]")
|
209
226
|
|
210
|
-
resp = self.get(f"
|
227
|
+
resp = self.get(f"/{self.client_id}/model/{self.model_id}/script")
|
211
228
|
return self.retort.load(resp.json(), Script)
|
212
229
|
|
213
230
|
def get_score_modifier(self):
|
@@ -215,13 +232,13 @@ class MostClient(object):
|
|
215
232
|
if not is_valid_id(self.model_id):
|
216
233
|
raise RuntimeError("Please choose valid model to apply. [try list_models()]")
|
217
234
|
|
218
|
-
resp = self.get(f"
|
235
|
+
resp = self.get(f"/{self.client_id}/model/{self.model_id}/score_mapping")
|
219
236
|
score_mapping = self.retort.load(resp.json(), List[ScriptScoreMapping])
|
220
237
|
self.score_modifier = ScoreCalculation(score_mapping)
|
221
238
|
return self.score_modifier
|
222
239
|
|
223
240
|
def list_models(self):
|
224
|
-
resp = self.get("
|
241
|
+
resp = self.get("/list_models")
|
225
242
|
return [self.with_model(model['model'])
|
226
243
|
for model in resp.json()]
|
227
244
|
|
@@ -233,7 +250,7 @@ class MostClient(object):
|
|
233
250
|
if not is_valid_id(audio_id):
|
234
251
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
235
252
|
|
236
|
-
resp = self.post(f"
|
253
|
+
resp = self.post(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/apply")
|
237
254
|
result = self.retort.load(resp.json(), Result)
|
238
255
|
if modify_scores:
|
239
256
|
result = self.score_modifier.modify(result)
|
@@ -247,7 +264,7 @@ class MostClient(object):
|
|
247
264
|
if not is_valid_id(text_id):
|
248
265
|
raise RuntimeError("Please use valid text_id. [try text.id from list_texts()]")
|
249
266
|
|
250
|
-
resp = self.post(f"
|
267
|
+
resp = self.post(f"/{self.client_id}/text/{text_id}/model/{self.model_id}/apply")
|
251
268
|
result = self.retort.load(resp.json(), Result)
|
252
269
|
if modify_scores:
|
253
270
|
result = self.score_modifier.modify(result)
|
@@ -261,7 +278,7 @@ class MostClient(object):
|
|
261
278
|
if not is_valid_id(audio_id):
|
262
279
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
263
280
|
|
264
|
-
resp = self.post(f"
|
281
|
+
resp = self.post(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/apply_async")
|
265
282
|
result = self.retort.load(resp.json(), Result)
|
266
283
|
if modify_scores:
|
267
284
|
result = self.score_modifier.modify(result)
|
@@ -275,7 +292,7 @@ class MostClient(object):
|
|
275
292
|
if not is_valid_id(text_id):
|
276
293
|
raise RuntimeError("Please use valid text_id. [try audio.id from list_texts()]")
|
277
294
|
|
278
|
-
resp = self.post(f"
|
295
|
+
resp = self.post(f"/{self.client_id}/text/{text_id}/model/{self.model_id}/apply_async")
|
279
296
|
result = self.retort.load(resp.json(), Result)
|
280
297
|
if modify_scores:
|
281
298
|
result = self.score_modifier.modify(result)
|
@@ -288,7 +305,7 @@ class MostClient(object):
|
|
288
305
|
if not is_valid_id(audio_id):
|
289
306
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
290
307
|
|
291
|
-
resp = self.post(f"
|
308
|
+
resp = self.post(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/apply_status")
|
292
309
|
return self.retort.load(resp.json(), JobStatus)
|
293
310
|
|
294
311
|
def fetch_results(self, audio_id,
|
@@ -299,7 +316,7 @@ class MostClient(object):
|
|
299
316
|
if not is_valid_id(audio_id):
|
300
317
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
301
318
|
|
302
|
-
resp = self.get(f"
|
319
|
+
resp = self.get(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/results")
|
303
320
|
result = self.retort.load(resp.json(), Result)
|
304
321
|
if modify_scores:
|
305
322
|
result = self.score_modifier.modify(result)
|
@@ -312,7 +329,7 @@ class MostClient(object):
|
|
312
329
|
if not is_valid_id(audio_id):
|
313
330
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
314
331
|
|
315
|
-
resp = self.get(f"
|
332
|
+
resp = self.get(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/text")
|
316
333
|
return self.retort.load(resp.json(), Result)
|
317
334
|
|
318
335
|
def fetch_dialog(self, audio_id) -> DialogResult:
|
@@ -322,7 +339,7 @@ class MostClient(object):
|
|
322
339
|
if not is_valid_id(audio_id):
|
323
340
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
324
341
|
|
325
|
-
resp = self.get(f"
|
342
|
+
resp = self.get(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/dialog")
|
326
343
|
return self.retort.load(resp.json(), DialogResult)
|
327
344
|
|
328
345
|
def update_dialog(self, audio_id, dialog: Dialog) -> DialogResult:
|
@@ -332,7 +349,7 @@ class MostClient(object):
|
|
332
349
|
if not is_valid_id(audio_id):
|
333
350
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
334
351
|
|
335
|
-
resp = self.put(f"
|
352
|
+
resp = self.put(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/dialog",
|
336
353
|
json={"dialog": dialog.to_dict()})
|
337
354
|
return self.retort.load(resp.json(), DialogResult)
|
338
355
|
|
@@ -345,7 +362,7 @@ class MostClient(object):
|
|
345
362
|
if not is_valid_id(self.model_id):
|
346
363
|
raise RuntimeError("Please choose valid model to apply. [try list_models()]")
|
347
364
|
|
348
|
-
resp = self.get(f"
|
365
|
+
resp = self.get(f"/{self.client_id}/model/{self.model_id}/export",
|
349
366
|
params={'audio_ids': ','.join(audio_ids),
|
350
367
|
'aggregated_by': aggregated_by,
|
351
368
|
'aggregation_title': aggregation_title})
|
@@ -357,7 +374,7 @@ class MostClient(object):
|
|
357
374
|
if not is_valid_id(audio_id):
|
358
375
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
359
376
|
|
360
|
-
resp = self.post(f"
|
377
|
+
resp = self.post(f"/{self.client_id}/audio/{audio_id}/info",
|
361
378
|
json={
|
362
379
|
"data": data,
|
363
380
|
})
|
@@ -367,7 +384,7 @@ class MostClient(object):
|
|
367
384
|
if not is_valid_id(audio_id):
|
368
385
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
369
386
|
|
370
|
-
resp = self.get(f"
|
387
|
+
resp = self.get(f"/{self.client_id}/audio/{audio_id}/info")
|
371
388
|
return self.retort.load(resp.json(), StoredAudioData)
|
372
389
|
|
373
390
|
def __call__(self, audio_path: Path,
|
@@ -395,7 +412,7 @@ class MostClient(object):
|
|
395
412
|
return audio
|
396
413
|
|
397
414
|
def index_audio(self, audio_id: str) -> None:
|
398
|
-
resp = self.post(f"
|
415
|
+
resp = self.post(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/indexing")
|
399
416
|
if resp.status_code >= 400:
|
400
417
|
raise RuntimeError("Audio can't be indexed")
|
401
418
|
return None
|
@@ -404,7 +421,7 @@ class MostClient(object):
|
|
404
421
|
query: str,
|
405
422
|
filter: SearchParams,
|
406
423
|
limit: int = 10) -> List[Audio]:
|
407
|
-
resp = self.post(f"
|
424
|
+
resp = self.post(f"/{self.client_id}/model/{self.model_id}/search",
|
408
425
|
json={
|
409
426
|
"query": query,
|
410
427
|
"filter": filter.to_dict(),
|
@@ -2,13 +2,12 @@ import io
|
|
2
2
|
import os
|
3
3
|
import uuid
|
4
4
|
from pathlib import Path
|
5
|
-
from typing import Dict, List, Optional
|
6
|
-
|
5
|
+
from typing import Dict, List, Optional, Union
|
7
6
|
import httpx
|
8
7
|
import json5
|
9
8
|
from adaptix import Retort
|
10
9
|
from pydub import AudioSegment
|
11
|
-
|
10
|
+
from most._constrants import DEFAULT_MAX_RETRIES
|
12
11
|
from most.score_calculation import ScoreCalculation
|
13
12
|
from most.types import (
|
14
13
|
Audio,
|
@@ -28,7 +27,13 @@ class AsyncMostClient(object):
|
|
28
27
|
def __init__(self,
|
29
28
|
client_id=None,
|
30
29
|
client_secret=None,
|
31
|
-
model_id=None
|
30
|
+
model_id=None,
|
31
|
+
|
32
|
+
base_url: str | httpx.URL | None = None,
|
33
|
+
timeout: Union[float, httpx.Timeout] = 1e10,
|
34
|
+
max_retries: int = DEFAULT_MAX_RETRIES,
|
35
|
+
# retry_delay: float = 0,
|
36
|
+
http_client: httpx.AsyncClient | None = None):
|
32
37
|
super(AsyncMostClient, self).__init__()
|
33
38
|
self.client_id = client_id
|
34
39
|
self.client_secret = client_secret
|
@@ -46,7 +51,19 @@ class AsyncMostClient(object):
|
|
46
51
|
else:
|
47
52
|
self.save_credentials()
|
48
53
|
|
49
|
-
|
54
|
+
if base_url is None:
|
55
|
+
base_url = os.environ.get("MOST_BASE_URL")
|
56
|
+
if base_url is None:
|
57
|
+
base_url = f"https://api.the-most.ai/api/external"
|
58
|
+
|
59
|
+
if http_client is None:
|
60
|
+
http_client = httpx.AsyncClient(base_url=base_url,
|
61
|
+
timeout=timeout,
|
62
|
+
follow_redirects=True,
|
63
|
+
transport=httpx.AsyncHTTPTransport(retries=max_retries))
|
64
|
+
# self.max_retries = max_retries
|
65
|
+
# self.retry_delay = retry_delay
|
66
|
+
self.session = http_client
|
50
67
|
self.access_token = None
|
51
68
|
self.model_id = model_id
|
52
69
|
self.score_modifier: Optional[ScoreCalculation] = None
|
@@ -97,7 +114,7 @@ class AsyncMostClient(object):
|
|
97
114
|
return client
|
98
115
|
|
99
116
|
async def refresh_access_token(self):
|
100
|
-
resp = await self.session.post("
|
117
|
+
resp = await self.session.post("/access_token",
|
101
118
|
json={"client_id": self.client_id,
|
102
119
|
"client_secret": self.client_secret})
|
103
120
|
access_token = resp.json()
|
@@ -117,9 +134,10 @@ class AsyncMostClient(object):
|
|
117
134
|
return await self.get(url,
|
118
135
|
headers=headers,
|
119
136
|
**kwargs)
|
120
|
-
|
121
|
-
|
122
|
-
|
137
|
+
|
138
|
+
if resp.headers.get("Content-Type") == "application/json":
|
139
|
+
raise RuntimeError(resp.json()['message'])
|
140
|
+
resp.raise_for_status()
|
123
141
|
return resp
|
124
142
|
|
125
143
|
async def put(self, url, **kwargs):
|
@@ -168,7 +186,7 @@ class AsyncMostClient(object):
|
|
168
186
|
|
169
187
|
async def upload_audio(self, audio_path) -> Audio:
|
170
188
|
with open(audio_path, mode='rb') as f:
|
171
|
-
resp = await self.post(f"
|
189
|
+
resp = await self.post(f"/{self.client_id}/upload",
|
172
190
|
files={"audio_file": f})
|
173
191
|
return self.retort.load(resp.json(), Audio)
|
174
192
|
|
@@ -179,36 +197,36 @@ class AsyncMostClient(object):
|
|
179
197
|
f.seek(0)
|
180
198
|
if audio_name is None:
|
181
199
|
audio_name = uuid.uuid4().hex + ".mp3"
|
182
|
-
resp = await self.post(f"
|
200
|
+
resp = await self.post(f"/{self.client_id}/upload",
|
183
201
|
files={"audio_file": (audio_name, f, 'audio/mp3')})
|
184
202
|
return self.retort.load(resp.json(), Audio)
|
185
203
|
|
186
204
|
async def upload_text(self, text: str) -> Text:
|
187
|
-
resp = await self.post(f"
|
205
|
+
resp = await self.post(f"/{self.client_id}/upload_text",
|
188
206
|
json={"text": text})
|
189
207
|
return self.retort.load(resp.json(), Text)
|
190
208
|
|
191
209
|
async def upload_dialog(self, dialog: Dialog) -> DialogResult:
|
192
|
-
resp = await self.post(f"
|
210
|
+
resp = await self.post(f"/{self.client_id}/upload_dialog",
|
193
211
|
json={"dialog": dialog})
|
194
212
|
return self.retort.load(resp.json(), DialogResult)
|
195
213
|
|
196
214
|
async def upload_audio_url(self, audio_url) -> Audio:
|
197
|
-
resp = await self.post(f"
|
215
|
+
resp = await self.post(f"/{self.client_id}/upload_url",
|
198
216
|
json={"audio_url": audio_url})
|
199
217
|
return self.retort.load(resp.json(), Audio)
|
200
218
|
|
201
219
|
async def list_audios(self,
|
202
220
|
offset: int = 0,
|
203
221
|
limit: int = 10) -> List[Audio]:
|
204
|
-
resp = await self.get(f"
|
222
|
+
resp = await self.get(f"/{self.client_id}/list?offset={offset}&limit={limit}")
|
205
223
|
audio_list = resp.json()
|
206
224
|
return self.retort.load(audio_list, List[Audio])
|
207
225
|
|
208
226
|
async def list_texts(self,
|
209
227
|
offset: int = 0,
|
210
228
|
limit: int = 10) -> List[Text]:
|
211
|
-
resp = await self.get(f"
|
229
|
+
resp = await self.get(f"/{self.client_id}/list_texts?offset={offset}&limit={limit}")
|
212
230
|
texts_list = resp.json()
|
213
231
|
return self.retort.load(texts_list, List[Text])
|
214
232
|
|
@@ -216,7 +234,7 @@ class AsyncMostClient(object):
|
|
216
234
|
if not is_valid_id(self.model_id):
|
217
235
|
raise RuntimeError("Please choose valid model to apply. [try list_models()]")
|
218
236
|
|
219
|
-
resp = await self.get(f"
|
237
|
+
resp = await self.get(f"/{self.client_id}/model/{self.model_id}/script")
|
220
238
|
return self.retort.load(resp.json(), Script)
|
221
239
|
|
222
240
|
async def get_score_modifier(self):
|
@@ -224,13 +242,13 @@ class AsyncMostClient(object):
|
|
224
242
|
if not is_valid_id(self.model_id):
|
225
243
|
raise RuntimeError("Please choose valid model to apply. [try list_models()]")
|
226
244
|
|
227
|
-
resp = await self.get(f"
|
245
|
+
resp = await self.get(f"/{self.client_id}/model/{self.model_id}/score_mapping")
|
228
246
|
score_mapping = self.retort.load(resp.json(), List[ScriptScoreMapping])
|
229
247
|
self.score_modifier = ScoreCalculation(score_mapping)
|
230
248
|
return self.score_modifier
|
231
249
|
|
232
250
|
async def list_models(self):
|
233
|
-
resp = await self.get("
|
251
|
+
resp = await self.get("/list_models")
|
234
252
|
return [self.with_model(model['model'])
|
235
253
|
for model in resp.json()]
|
236
254
|
|
@@ -242,7 +260,7 @@ class AsyncMostClient(object):
|
|
242
260
|
if not is_valid_id(audio_id):
|
243
261
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
244
262
|
|
245
|
-
resp = await self.post(f"
|
263
|
+
resp = await self.post(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/apply")
|
246
264
|
result = self.retort.load(resp.json(), Result)
|
247
265
|
if modify_scores:
|
248
266
|
result = self.score_modifier.modify(result)
|
@@ -256,7 +274,7 @@ class AsyncMostClient(object):
|
|
256
274
|
if not is_valid_id(text_id):
|
257
275
|
raise RuntimeError("Please use valid text_id. [try text.id from list_texts()]")
|
258
276
|
|
259
|
-
resp = await self.post(f"
|
277
|
+
resp = await self.post(f"/{self.client_id}/text/{text_id}/model/{self.model_id}/apply")
|
260
278
|
result = self.retort.load(resp.json(), Result)
|
261
279
|
if modify_scores:
|
262
280
|
result = self.score_modifier.modify(result)
|
@@ -270,7 +288,7 @@ class AsyncMostClient(object):
|
|
270
288
|
if not is_valid_id(audio_id):
|
271
289
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
272
290
|
|
273
|
-
resp = await self.post(f"
|
291
|
+
resp = await self.post(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/apply_async")
|
274
292
|
result = self.retort.load(resp.json(), Result)
|
275
293
|
if modify_scores:
|
276
294
|
result = self.score_modifier.modify(result)
|
@@ -284,7 +302,7 @@ class AsyncMostClient(object):
|
|
284
302
|
if not is_valid_id(text_id):
|
285
303
|
raise RuntimeError("Please use valid text_id. [try audio.id from list_texts()]")
|
286
304
|
|
287
|
-
resp = await self.post(f"
|
305
|
+
resp = await self.post(f"/{self.client_id}/text/{text_id}/model/{self.model_id}/apply_async")
|
288
306
|
result = self.retort.load(resp.json(), Result)
|
289
307
|
if modify_scores:
|
290
308
|
result = self.score_modifier.modify(result)
|
@@ -297,7 +315,7 @@ class AsyncMostClient(object):
|
|
297
315
|
if not is_valid_id(audio_id):
|
298
316
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
299
317
|
|
300
|
-
resp = await self.post(f"
|
318
|
+
resp = await self.post(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/apply_status")
|
301
319
|
return self.retort.load(resp.json(), JobStatus)
|
302
320
|
|
303
321
|
async def fetch_results(self, audio_id,
|
@@ -308,7 +326,7 @@ class AsyncMostClient(object):
|
|
308
326
|
if not is_valid_id(audio_id):
|
309
327
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
310
328
|
|
311
|
-
resp = await self.get(f"
|
329
|
+
resp = await self.get(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/results")
|
312
330
|
result = self.retort.load(resp.json(), Result)
|
313
331
|
if modify_scores:
|
314
332
|
result = self.score_modifier.modify(result)
|
@@ -321,7 +339,7 @@ class AsyncMostClient(object):
|
|
321
339
|
if not is_valid_id(audio_id):
|
322
340
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
323
341
|
|
324
|
-
resp = await self.get(f"
|
342
|
+
resp = await self.get(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/text")
|
325
343
|
return self.retort.load(resp.json(), Result)
|
326
344
|
|
327
345
|
async def fetch_dialog(self, audio_id) -> DialogResult:
|
@@ -331,7 +349,7 @@ class AsyncMostClient(object):
|
|
331
349
|
if not is_valid_id(audio_id):
|
332
350
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
333
351
|
|
334
|
-
resp = await self.get(f"
|
352
|
+
resp = await self.get(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/dialog")
|
335
353
|
return self.retort.load(resp.json(), DialogResult)
|
336
354
|
|
337
355
|
async def update_dialog(self, audio_id, dialog: Dialog) -> DialogResult:
|
@@ -341,7 +359,7 @@ class AsyncMostClient(object):
|
|
341
359
|
if not is_valid_id(audio_id):
|
342
360
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
343
361
|
|
344
|
-
resp = await self.put(f"
|
362
|
+
resp = await self.put(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/dialog",
|
345
363
|
json={"dialog": dialog.to_dict()})
|
346
364
|
return self.retort.load(resp.json(), DialogResult)
|
347
365
|
|
@@ -354,7 +372,7 @@ class AsyncMostClient(object):
|
|
354
372
|
if not is_valid_id(self.model_id):
|
355
373
|
raise RuntimeError("Please choose valid model to apply. [try list_models()]")
|
356
374
|
|
357
|
-
resp = await self.get(f"
|
375
|
+
resp = await self.get(f"/{self.client_id}/model/{self.model_id}/export",
|
358
376
|
params={'audio_ids': ','.join(audio_ids),
|
359
377
|
"aggregated_by": aggregated_by,
|
360
378
|
"aggregation_title": aggregation_title})
|
@@ -363,7 +381,7 @@ class AsyncMostClient(object):
|
|
363
381
|
async def store_info(self,
|
364
382
|
audio_id: str,
|
365
383
|
data: Dict[str, str]):
|
366
|
-
resp = await self.post(f"
|
384
|
+
resp = await self.post(f"/{self.client_id}/audio/{audio_id}/info",
|
367
385
|
json={
|
368
386
|
"data": data,
|
369
387
|
})
|
@@ -372,7 +390,7 @@ class AsyncMostClient(object):
|
|
372
390
|
async def fetch_info(self, audio_id: str) -> Dict[str, str]:
|
373
391
|
if not is_valid_id(audio_id):
|
374
392
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
375
|
-
resp = await self.get(f"
|
393
|
+
resp = await self.get(f"/{self.client_id}/audio/{audio_id}/info")
|
376
394
|
return self.retort.load(resp.json(), StoredAudioData)
|
377
395
|
|
378
396
|
async def __call__(self, audio_path: Path,
|
@@ -400,7 +418,7 @@ class AsyncMostClient(object):
|
|
400
418
|
return audio
|
401
419
|
|
402
420
|
async def index_audio(self, audio_id: str) -> None:
|
403
|
-
resp = await self.post(f"
|
421
|
+
resp = await self.post(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/indexing")
|
404
422
|
if resp.status_code >= 400:
|
405
423
|
raise RuntimeError("Audio can't be indexed")
|
406
424
|
return None
|
@@ -409,7 +427,7 @@ class AsyncMostClient(object):
|
|
409
427
|
query: str,
|
410
428
|
filter: SearchParams,
|
411
429
|
limit: int = 10) -> List[Audio]:
|
412
|
-
resp = await self.post(f"
|
430
|
+
resp = await self.post(f"/{self.client_id}/model/{self.model_id}/search",
|
413
431
|
json={
|
414
432
|
"query": query,
|
415
433
|
"filter": filter.to_dict(),
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|