dashscope 1.20.14__py3-none-any.whl → 1.22.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dashscope might be problematic. Click here for more details.

@@ -67,7 +67,7 @@ class VoiceEnrollmentService(BaseApi):
67
67
  def create_voice(self, target_model: str, prefix: str, url: str) -> str:
68
68
  '''
69
69
  创建新克隆音色
70
- param: target_model 克隆音色对应的语音识别模型版本
70
+ param: target_model 克隆音色对应的语音合成模型版本
71
71
  param: prefix 音色自定义前缀,仅允许数字和小写字母,小于十个字符。
72
72
  param: url 用于克隆的音频文件url
73
73
  return: voice_id
@@ -275,6 +275,7 @@ class SpeechSynthesizer:
275
275
  self._start_stream_timestamp = -1
276
276
  self._first_package_timestamp = -1
277
277
  self._recv_audio_length = 0
278
+ self.last_response = None
278
279
 
279
280
  def __send_str(self, data: str):
280
281
  logger.debug('>>>send {}'.format(data))
@@ -313,6 +314,11 @@ class SpeechSynthesizer:
313
314
  while (not (self.ws.sock and self.ws.sock.connected)
314
315
  and (time.time() - start_time) < timeout):
315
316
  time.sleep(0.1) # 短暂休眠,避免密集轮询
317
+ if not (self.ws.sock and self.ws.sock.connected):
318
+ raise TimeoutError(
319
+ 'websocket connection could not established within 5s. '
320
+ 'Please check your network connection, firewall settings, or server status.'
321
+ )
316
322
  self.__send_str(request)
317
323
  if not self.start_event.wait(10):
318
324
  raise TimeoutError('start speech synthesizer failed within 5s.')
@@ -434,6 +440,7 @@ class SpeechSynthesizer:
434
440
  try:
435
441
  # 尝试将消息解析为JSON
436
442
  json_data = json.loads(message)
443
+ self.last_response = json_data
437
444
  event = json_data['header'][EVENT_KEY]
438
445
  # 调用JSON回调
439
446
  if EventType.STARTED == event:
@@ -471,7 +478,7 @@ class SpeechSynthesizer:
471
478
  self._recv_audio_length += len(message) / (2 * self.sample_rate /
472
479
  1000)
473
480
  current = time.time() * 1000
474
- current_rtf = (current - self._first_package_timestamp
481
+ current_rtf = (current - self._start_stream_timestamp
475
482
  ) / self._recv_audio_length
476
483
  logger.debug('total audio {} ms, current_rtf: {}'.format(
477
484
  self._recv_audio_length, current_rtf))
@@ -531,3 +538,11 @@ class SpeechSynthesizer:
531
538
  # 获取上一个任务的taskId
532
539
  def get_last_request_id(self):
533
540
  return self.last_request_id
541
+
542
+ def get_first_package_delay(self):
543
+ """First Package Delay is the time between start sending text and receive first audio package
544
+ """
545
+ return self._first_package_timestamp - self._start_stream_timestamp
546
+
547
+ def get_response(self):
548
+ return self.last_response
@@ -2,9 +2,8 @@ import time
2
2
  from http import HTTPStatus
3
3
  from typing import Any, Dict, Iterator, List, Union
4
4
 
5
- import requests
6
-
7
5
  import dashscope
6
+ import requests
8
7
  from dashscope.api_entities.api_request_factory import _build_api_request
9
8
  from dashscope.api_entities.dashscope_response import DashScopeAPIResponse
10
9
  from dashscope.common.api_key import get_default_api_key
@@ -173,9 +172,9 @@ class AsyncTaskGetMixin():
173
172
  status_url = _normalization_url(base_url, 'tasks', task_id)
174
173
  custom_headers = kwargs.pop('headers', None)
175
174
  headers = {
176
- **_workspace_header(workspace),
177
- **default_headers(api_key),
178
- }
175
+ **_workspace_header(workspace),
176
+ **default_headers(api_key),
177
+ }
179
178
  if custom_headers:
180
179
  headers = {
181
180
  **custom_headers,
dashscope/common/utils.py CHANGED
@@ -11,7 +11,6 @@ from urllib.parse import urlparse
11
11
 
12
12
  import aiohttp
13
13
  import requests
14
-
15
14
  from dashscope.api_entities.dashscope_response import DashScopeAPIResponse
16
15
  from dashscope.common.api_key import get_default_api_key
17
16
  from dashscope.common.constants import SSE_CONTENT_TYPE
@@ -1,7 +1,6 @@
1
1
  from http import HTTPStatus
2
2
 
3
3
  from attr import dataclass
4
-
5
4
  from dashscope.api_entities.dashscope_response import (DashScopeAPIResponse,
6
5
  DictMixin)
7
6
 
@@ -8,7 +8,6 @@ from urllib.parse import unquote_plus, urlparse
8
8
  from wsgiref.handlers import format_date_time
9
9
 
10
10
  import requests
11
-
12
11
  from dashscope.api_entities.dashscope_response import DashScopeAPIResponse
13
12
  from dashscope.client.base_api import GetMixin
14
13
  from dashscope.common.constants import FILE_PATH_SCHEMA
@@ -142,7 +141,7 @@ def check_and_upload_local(model: str, content: str, api_key: str):
142
141
  file_path = parse_result.netloc + unquote_plus(parse_result.path)
143
142
  else:
144
143
  file_path = unquote_plus(parse_result.path)
145
- if os.path.exists(file_path):
144
+ if os.path.isfile(file_path):
146
145
  file_url = OssUtils.upload(model=model,
147
146
  file_path=file_path,
148
147
  api_key=api_key)
@@ -153,7 +152,7 @@ def check_and_upload_local(model: str, content: str, api_key: str):
153
152
  else:
154
153
  raise InvalidInput('The file: %s is not exists!' % file_path)
155
154
  elif not content.startswith('http'):
156
- if os.path.exists(content):
155
+ if os.path.isfile(content):
157
156
  file_url = OssUtils.upload(model=model,
158
157
  file_path=content,
159
158
  api_key=api_key)
dashscope/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '1.20.14'
1
+ __version__ = '1.22.0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dashscope
3
- Version: 1.20.14
3
+ Version: 1.22.0
4
4
  Summary: dashscope client sdk library
5
5
  Home-page: https://dashscope.aliyun.com/
6
6
  Author: Alibaba Cloud
@@ -1,4 +1,4 @@
1
- dashscope/__init__.py,sha256=lIBZR5fWUiO1L62J_17Gri7Dwk9kCf2xhWl8eRw8bkQ,2933
1
+ dashscope/__init__.py,sha256=_9PaKXKpYc6PXO35BjcH3R0As9sTsXGOW2iQ6R5HAVc,3011
2
2
  dashscope/cli.py,sha256=amegoTkGOs6TlHMdoo4JVOqBePo3lGs745rc7leEyrE,24020
3
3
  dashscope/deployment.py,sha256=ljmVi-ny6SjEs8v4oIGNWIw8UQTorE7dl5QJv7dEPIQ,5728
4
4
  dashscope/file.py,sha256=Dv2Fz3DLbcye2uuQxyQwRM7ky27OthouLXIpSQagQy4,3324
@@ -6,21 +6,22 @@ dashscope/files.py,sha256=QgJjwhtn9F548nCA8jD8OvE6aQEj-20hZqJgYXsUdQU,3930
6
6
  dashscope/finetune.py,sha256=_tflDUvu0KagSoCzLaf0hofpG_P8NU6PylL8CPjVhrA,6243
7
7
  dashscope/model.py,sha256=UPOn1qMYFhX-ovXi3BMxZEBk8qOK7WLJOYHMbPZwYBo,1440
8
8
  dashscope/models.py,sha256=1-bc-Ue68zurgu_y6RhfFr9uzeQMF5AZq-C32lJGMGU,1224
9
- dashscope/version.py,sha256=f2v96-65Z-gg0WsfONkq43TxOuOMUup-4S2fb1hhRjA,24
10
- dashscope/aigc/__init__.py,sha256=s-MCA87KYiVumYtKtJi5IMN7xelSF6TqEU3s3_7RF-Y,327
9
+ dashscope/version.py,sha256=SDK5izPcJa4KNexMqsTGqKMhzuz-w_ifY4M7gq-3Eno,23
10
+ dashscope/aigc/__init__.py,sha256=xmdalVw7wS0cLIuU8Q0qk0q8XGw-iGk8NnQwAQZ3jAc,391
11
11
  dashscope/aigc/code_generation.py,sha256=KAJVrGp6tiNFBBg64Ovs9RfcP5SrIhrbW3wdA89NKso,10885
12
12
  dashscope/aigc/conversation.py,sha256=xRoJlCR-IXHjSdkDrK74a9ut1FJg0FZhTNXZAJC18MA,14231
13
13
  dashscope/aigc/generation.py,sha256=53oMCmN5ZbqeqAsKxmdunXlRh-XP8ZtnA7hB2id4Koo,17897
14
14
  dashscope/aigc/image_synthesis.py,sha256=UWHW-nvf7_aDZKr4uZDusVHjqWr9TSZjCsZI8YSWaek,11052
15
15
  dashscope/aigc/multimodal_conversation.py,sha256=SlNnnsUPV19gdx8fYJAtsMFWPNGY6vhk5IGHZ5ZczpI,5369
16
+ dashscope/aigc/video_synthesis.py,sha256=gbp5XG_DMVN0JnBOgxftdwsCIyrV7nM2gVnlyO8X-ek,10400
16
17
  dashscope/api_entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- dashscope/api_entities/aiohttp_request.py,sha256=aE3AeWba8Ig_xHMYjrAdkq0N61l_L2VFTG6HYh912X0,10229
18
- dashscope/api_entities/api_request_data.py,sha256=JUMcfpJjKXEZLCBSFIDpgoaeQYk5uK9-CwhM4OHIHFQ,5463
19
- dashscope/api_entities/api_request_factory.py,sha256=j4VOA1qKzvsK6-BOHGyA35oqsMkNoc4xZe9GHefV0fU,4947
18
+ dashscope/api_entities/aiohttp_request.py,sha256=ZFbdpJh7SwHnBzbYLhqr_FdcDVRgLVMLhLUS_vXbUGs,10228
19
+ dashscope/api_entities/api_request_data.py,sha256=QHGgIShcQ1jANO1szfsqUGtYix1nD2RN4LyC_fNciCM,5462
20
+ dashscope/api_entities/api_request_factory.py,sha256=iLjOqZkbuQkn9JVduI39XPrhm1UefekAekaNqxFpNLM,5061
20
21
  dashscope/api_entities/base_request.py,sha256=cXUL7xqSV8wBr5d-1kx65AO3IsRR9A_ps6Lok-v-MKM,926
21
- dashscope/api_entities/dashscope_response.py,sha256=Bp1T7HwVlkOvpMNg-AEjz-BScxhLUXMXlE8ApXTtfhQ,17872
22
- dashscope/api_entities/http_request.py,sha256=pYE8qRMu9CaQDiugPlXeYoaj_diBv-ZDExCD3WNhehI,13259
23
- dashscope/api_entities/websocket_request.py,sha256=Xr6IJ9WqrIw5ouBQLpgoRSwL1C09jkb4u1EZdxhVQy0,15039
22
+ dashscope/api_entities/dashscope_response.py,sha256=4a8Iya8RBUnVdzGmzoj6NvaaEeEnodGAD7evBrqEXfU,19832
23
+ dashscope/api_entities/http_request.py,sha256=Pr6mr01uXELK9LwIPXrJAhNtGMkWH3gQYORXShRiQRo,13258
24
+ dashscope/api_entities/websocket_request.py,sha256=h3RcvgvXpyzF8xvC4hqNUkev6HGN_YgO5emvqYaXw78,16094
24
25
  dashscope/app/__init__.py,sha256=UiN_9i--z84Dw5wUehOh_Tkk_9Gq_td_Kbz1dobBEKg,62
25
26
  dashscope/app/application.py,sha256=Cnd62LFpG70XJUo4Oibry9KzXPhPNmNkKFD4R5YuGTA,9343
26
27
  dashscope/app/application_response.py,sha256=0pulI3O3z4R4h_YaDwzVimamo3XwTXGy5TiHCzysTBg,7011
@@ -29,19 +30,20 @@ dashscope/assistants/assistant_types.py,sha256=1jNL30TOlrkiYhvCaB3E8jkPLG8CnQ6I3
29
30
  dashscope/assistants/assistants.py,sha256=NYahIDqhtnOcQOmnhZsjc5F5jvBUQcce8-fbrJXHVnQ,10833
30
31
  dashscope/assistants/files.py,sha256=pwLVJ_pjpRFWyfI_MRvhH7Si7FzGDj4ChzZgWTpLOhg,6699
31
32
  dashscope/audio/__init__.py,sha256=-ZRxrK-gV4QsUtlThIT-XwqB6vmyEsnhxIxdLmhCUuc,61
32
- dashscope/audio/asr/__init__.py,sha256=kFdx3IYsdfGGDDlQmUjvtd2kqifuEekwlPBEOUvXvEY,406
33
+ dashscope/audio/asr/__init__.py,sha256=VaWX5DRWcB81_5z2o7IPwz6Jrs9vFFJ5GEVarzVOvPY,1004
33
34
  dashscope/audio/asr/asr_phrase_manager.py,sha256=EjtbI3zz9UQGS1qv6Yb4zzEMj4OJJVXmwkqZyIrzvEA,7642
34
- dashscope/audio/asr/recognition.py,sha256=a4zIkIMiWwOEApP9k9ZC9jGDr7CP7BqB6Cy1dBVTN4g,18978
35
+ dashscope/audio/asr/recognition.py,sha256=7ApnKJKVp1JS6e6KBZzM8y1yiMB2fEun07S6BOvqfrs,20699
35
36
  dashscope/audio/asr/transcribe.py,sha256=HfZYpvpVfvGRAIIIzX65Af33E6vsIFGd_qqhQ8LaNcM,9651
36
37
  dashscope/audio/asr/transcription.py,sha256=D8CW0XDqJuEJVmNFJ6qczTysSV3Sz_rzk2C6NIKTtVc,9042
38
+ dashscope/audio/asr/translation_recognizer.py,sha256=j1oKgggSA2HDdEJAOJ4jY78_bK0FGwpfIf_AxbrAzWM,39629
37
39
  dashscope/audio/asr/vocabulary.py,sha256=2MHxeaL0ANWk-TILrHhArKSdj0d5M_YHw0cnjB-E4dY,6476
38
40
  dashscope/audio/tts/__init__.py,sha256=fbnieZX9yNFNh5BsxLpLXb63jlxzxrdCJakV3ignjlQ,194
39
41
  dashscope/audio/tts/speech_synthesizer.py,sha256=dnKx9FDDdO_ETHAjhK8zaMVaH6SfoTtN5YxXXqgY1JA,7571
40
42
  dashscope/audio/tts_v2/__init__.py,sha256=5UfyDBYnuGgOy9KMxEIXA2U2ihcXutdZc1cqJudy-8M,282
41
- dashscope/audio/tts_v2/enrollment.py,sha256=mvkYMj9WzqEztZb8zc56fm8Obw7ON9USrEYhATU6rcs,6140
42
- dashscope/audio/tts_v2/speech_synthesizer.py,sha256=lATasQJB8HlB_yYm90qqW6zIAE1CQFxBxhnch6xdg9s,19285
43
+ dashscope/audio/tts_v2/enrollment.py,sha256=pFxiB_F9jmNnyikabA710QVCVih8Q7AQPLIO4aGKfc8,6140
44
+ dashscope/audio/tts_v2/speech_synthesizer.py,sha256=JPS9LRfWX4VD-BZHAJcBh3Vfwn7oVueAnN0zXhnIqhQ,19928
43
45
  dashscope/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
- dashscope/client/base_api.py,sha256=D1lRDr_k58Vwd3jvmsMx4UtTjwdngx182LPYvmtXZjQ,41212
46
+ dashscope/client/base_api.py,sha256=RH8ztQgx1WPRXZVfvt5rbhu45IXFdaw8HSbHN5k8AF8,41187
45
47
  dashscope/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
48
  dashscope/common/api_key.py,sha256=5Stp0odL5JSuIO3qJBp23QNppuGbqhhvKPS66qbMs0I,1986
47
49
  dashscope/common/base_type.py,sha256=C9xP6WuN5pOzviZ2g3X2EPcigldtFE0VlaUmjyNnUUk,4619
@@ -50,14 +52,14 @@ dashscope/common/env.py,sha256=oQOZW5JyEeTSde394un2lpDJ5RBh4fMU9hBfbtrKKkc,869
50
52
  dashscope/common/error.py,sha256=Q7GRhniP-7ap4HBpU69frRdKgKLwmH4ySYxCtupsr60,2638
51
53
  dashscope/common/logging.py,sha256=ecGxylG3bWES_Xv5-BD6ep4_0Ciu7F6ZPBjiZtu9Jx4,984
52
54
  dashscope/common/message_manager.py,sha256=i5149WzDk6nWmdFaHzYx4USXMBeX18GKSI-F4fLwbN0,1097
53
- dashscope/common/utils.py,sha256=pMrJJWO3YV77VUFRhoKT7SdCMlopmXx0TgSzPuI3OYM,15388
55
+ dashscope/common/utils.py,sha256=Sw5UB_WH3lFnbwZO3RoA2V6DCHgthjaetW5mN9JM5BE,15387
54
56
  dashscope/customize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
57
  dashscope/customize/customize_types.py,sha256=ZtEwSXA4dbjIYr5vgQQNkMuXyC2BNmznGuaF6b7jwr0,4803
56
58
  dashscope/customize/deployments.py,sha256=LIkM-hmJHcJZCKV6WJIPSXQ5CAhB5PUxnt5mqKbVbfE,5189
57
59
  dashscope/customize/finetunes.py,sha256=iFnEUMGY6FGogVClIJMEeFhUwfYi7gD05Iq1-eMP2M0,8311
58
60
  dashscope/embeddings/__init__.py,sha256=-dxHaoxZZVuP-wAGUIa3sNNh8CQwaeWj2UlqsDy1sV4,240
59
61
  dashscope/embeddings/batch_text_embedding.py,sha256=P32LFO9v7ehdJsl0c32In94hUET6K6AaGJ_pDRtFqco,8791
60
- dashscope/embeddings/batch_text_embedding_response.py,sha256=WziXlQsFIkL1kPc_7lRG1HtqgkO5vVThtnNqExJggNU,2000
62
+ dashscope/embeddings/batch_text_embedding_response.py,sha256=hf17wfhJKvX3ggnigOiTqD4O1lFhx_NG_O1ioKCx0gk,1999
61
63
  dashscope/embeddings/multimodal_embedding.py,sha256=yojtGNoT2N54g0jcAYUwNIiwzueun1ouqS0S0tvnyQc,3966
62
64
  dashscope/embeddings/text_embedding.py,sha256=I3zRvuT2HWcaZYH-zrtGcAQmzuLQxFswIHJMiQXfaJQ,2009
63
65
  dashscope/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -84,10 +86,10 @@ dashscope/tokenizers/tokenization.py,sha256=G6cSEmVLr3pjXUC3EOU9ot8MYxNnOQ4wOB2m
84
86
  dashscope/tokenizers/tokenizer.py,sha256=y6P91qTCYo__pEx_0VHAcj9YECfbUdRqZU1fdGTjF4o,1154
85
87
  dashscope/tokenizers/tokenizer_base.py,sha256=REDhzRyDT13iequ61-a6_KcTy0GFKlihQve5HkyoyRs,656
86
88
  dashscope/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
- dashscope/utils/oss_utils.py,sha256=7vZ2Lypxwiit8VcAqAvr3cCyhVfaLapDiNuF-H3ZCD4,7332
88
- dashscope-1.20.14.dist-info/LICENSE,sha256=Izp5L1DF1Mbza6qojkqNNWlE_mYLnr4rmzx2EBF8YFw,11413
89
- dashscope-1.20.14.dist-info/METADATA,sha256=BjqLaIu_UNVWxAYRXU8wsrrr4I8qsr08dUtKcm-LGyY,6642
90
- dashscope-1.20.14.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
91
- dashscope-1.20.14.dist-info/entry_points.txt,sha256=raEp5dOuj8whJ7yqZlDM8WQ5p2RfnGrGNo0QLQEnatY,50
92
- dashscope-1.20.14.dist-info/top_level.txt,sha256=woqavFJK9zas5xTqynmALqOtlafghjsk63Xk86powTU,10
93
- dashscope-1.20.14.dist-info/RECORD,,
89
+ dashscope/utils/oss_utils.py,sha256=TlqaMAmVRtBJIm5aIaXsrRZGKc_7cwWQ7liMB2f9Css,7331
90
+ dashscope-1.22.0.dist-info/LICENSE,sha256=Izp5L1DF1Mbza6qojkqNNWlE_mYLnr4rmzx2EBF8YFw,11413
91
+ dashscope-1.22.0.dist-info/METADATA,sha256=ZmeEprSXjdVtgfudY4kN8L0XSN8EughpPz7y3OyCwkM,6641
92
+ dashscope-1.22.0.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
93
+ dashscope-1.22.0.dist-info/entry_points.txt,sha256=raEp5dOuj8whJ7yqZlDM8WQ5p2RfnGrGNo0QLQEnatY,50
94
+ dashscope-1.22.0.dist-info/top_level.txt,sha256=woqavFJK9zas5xTqynmALqOtlafghjsk63Xk86powTU,10
95
+ dashscope-1.22.0.dist-info/RECORD,,