dashscope 1.13.6__py3-none-any.whl → 1.14.1__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.
- dashscope/__init__.py +4 -3
- dashscope/api_entities/aiohttp_request.py +1 -4
- dashscope/api_entities/api_request_factory.py +6 -8
- dashscope/api_entities/http_request.py +1 -4
- dashscope/api_entities/websocket_request.py +6 -32
- dashscope/common/constants.py +0 -16
- dashscope/common/error.py +27 -23
- dashscope/common/utils.py +1 -1
- dashscope/embeddings/multimodal_embedding.py +1 -0
- dashscope/resources/qwen.tiktoken +151643 -0
- dashscope/tokenizers/__init__.py +3 -3
- dashscope/tokenizers/qwen_tokenizer.py +109 -0
- dashscope/tokenizers/tokenization.py +2 -0
- dashscope/tokenizers/tokenizer.py +43 -0
- dashscope/tokenizers/tokenizer_base.py +30 -0
- dashscope/version.py +1 -1
- {dashscope-1.13.6.dist-info → dashscope-1.14.1.dist-info}/METADATA +27 -38
- {dashscope-1.13.6.dist-info → dashscope-1.14.1.dist-info}/RECORD +22 -18
- {dashscope-1.13.6.dist-info → dashscope-1.14.1.dist-info}/LICENSE +0 -0
- {dashscope-1.13.6.dist-info → dashscope-1.14.1.dist-info}/WHEEL +0 -0
- {dashscope-1.13.6.dist-info → dashscope-1.14.1.dist-info}/entry_points.txt +0 -0
- {dashscope-1.13.6.dist-info → dashscope-1.14.1.dist-info}/top_level.txt +0 -0
dashscope/tokenizers/__init__.py
CHANGED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import base64
|
|
2
|
+
import unicodedata
|
|
3
|
+
from typing import Collection, Dict, List, Set, Union
|
|
4
|
+
|
|
5
|
+
from .tokenizer_base import Tokenizer
|
|
6
|
+
|
|
7
|
+
PAT_STR = r"""(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\r\n\p{L}\p{N}]?\p{L}+|\p{N}| ?[^\s\p{L}\p{N}]+[\r\n]*|\s*[\r\n]+|\s+(?!\S)|\s+""" # noqa E501
|
|
8
|
+
ENDOFTEXT = '<|endoftext|>'
|
|
9
|
+
IMSTART = '<|im_start|>'
|
|
10
|
+
IMEND = '<|im_end|>'
|
|
11
|
+
# as the default behavior is changed to allow special tokens in
|
|
12
|
+
# regular texts, the surface forms of special tokens need to be
|
|
13
|
+
# as different as possible to minimize the impact
|
|
14
|
+
EXTRAS = tuple((f'<|extra_{i}|>' for i in range(205)))
|
|
15
|
+
# changed to use actual index to avoid misconfiguration with vocabulary expansion
|
|
16
|
+
SPECIAL_START_ID = 151643
|
|
17
|
+
SPECIAL_TOKENS = tuple(
|
|
18
|
+
enumerate(
|
|
19
|
+
((
|
|
20
|
+
ENDOFTEXT,
|
|
21
|
+
IMSTART,
|
|
22
|
+
IMEND,
|
|
23
|
+
) + EXTRAS),
|
|
24
|
+
start=SPECIAL_START_ID,
|
|
25
|
+
))
|
|
26
|
+
SPECIAL_TOKENS_SET = set(t for i, t in SPECIAL_TOKENS)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class QwenTokenizer(Tokenizer):
|
|
30
|
+
@staticmethod
|
|
31
|
+
def _load_tiktoken_bpe(tiktoken_bpe_file: str) -> Dict[bytes, int]:
|
|
32
|
+
with open(tiktoken_bpe_file, 'rb') as f:
|
|
33
|
+
contents = f.read()
|
|
34
|
+
return {
|
|
35
|
+
base64.b64decode(token): int(rank)
|
|
36
|
+
for token, rank in (line.split() for line in contents.splitlines()
|
|
37
|
+
if line)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
def __init__(self, vocab_file, errors='replace', extra_vocab_file=None):
|
|
41
|
+
self._errors = errors
|
|
42
|
+
self._vocab_file = vocab_file
|
|
43
|
+
self._extra_vocab_file = extra_vocab_file
|
|
44
|
+
|
|
45
|
+
self._mergeable_ranks = QwenTokenizer._load_tiktoken_bpe(
|
|
46
|
+
vocab_file) # type: Dict[bytes, int]
|
|
47
|
+
self._special_tokens = {
|
|
48
|
+
token: index
|
|
49
|
+
for index, token in SPECIAL_TOKENS
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
# try load extra vocab from file
|
|
53
|
+
if extra_vocab_file is not None:
|
|
54
|
+
used_ids = set(self._mergeable_ranks.values()) | set(
|
|
55
|
+
self._special_tokens.values())
|
|
56
|
+
extra_mergeable_ranks = self._load_tiktoken_bpe(extra_vocab_file)
|
|
57
|
+
for token, index in extra_mergeable_ranks.items():
|
|
58
|
+
if token in self._mergeable_ranks:
|
|
59
|
+
continue
|
|
60
|
+
if index in used_ids:
|
|
61
|
+
continue
|
|
62
|
+
self._mergeable_ranks[token] = index
|
|
63
|
+
# the index may be sparse after this, but don't worry tiktoken.Encoding will handle this
|
|
64
|
+
import tiktoken
|
|
65
|
+
enc = tiktoken.Encoding(
|
|
66
|
+
'Qwen',
|
|
67
|
+
pat_str=PAT_STR,
|
|
68
|
+
mergeable_ranks=self._mergeable_ranks,
|
|
69
|
+
special_tokens=self._special_tokens,
|
|
70
|
+
)
|
|
71
|
+
assert (
|
|
72
|
+
len(self._mergeable_ranks) +
|
|
73
|
+
len(self._special_tokens) == enc.n_vocab
|
|
74
|
+
), f'{len(self._mergeable_ranks) + len(self._special_tokens)} != {enc.n_vocab} in encoding'
|
|
75
|
+
|
|
76
|
+
self.decoder = {v: k
|
|
77
|
+
for k, v in self._mergeable_ranks.items()
|
|
78
|
+
} # type: dict[int, bytes|str]
|
|
79
|
+
self.decoder.update({v: k for k, v in self._special_tokens.items()})
|
|
80
|
+
|
|
81
|
+
self._tokenizer = enc # type: tiktoken.Encoding
|
|
82
|
+
|
|
83
|
+
self.eod_id = self._tokenizer.eot_token
|
|
84
|
+
self.im_start_id = self._special_tokens[IMSTART]
|
|
85
|
+
self.im_end_id = self._special_tokens[IMEND]
|
|
86
|
+
|
|
87
|
+
def encode(
|
|
88
|
+
self,
|
|
89
|
+
text: str,
|
|
90
|
+
allowed_special: Union[Set, str] = 'all',
|
|
91
|
+
disallowed_special: Union[Collection, str] = (),
|
|
92
|
+
) -> Union[List[List], List]:
|
|
93
|
+
text = unicodedata.normalize('NFC', text)
|
|
94
|
+
return self._tokenizer.encode(text,
|
|
95
|
+
allowed_special=allowed_special,
|
|
96
|
+
disallowed_special=disallowed_special)
|
|
97
|
+
|
|
98
|
+
def decode(
|
|
99
|
+
self,
|
|
100
|
+
token_ids: Union[int, List[int]],
|
|
101
|
+
skip_special_tokens: bool = False,
|
|
102
|
+
errors: str = None,
|
|
103
|
+
**kwargs,
|
|
104
|
+
) -> str:
|
|
105
|
+
if isinstance(token_ids, int):
|
|
106
|
+
token_ids = [token_ids]
|
|
107
|
+
if skip_special_tokens:
|
|
108
|
+
token_ids = [i for i in token_ids if i < self.eod_id]
|
|
109
|
+
return self._tokenizer.decode(token_ids, errors=errors or self._errors)
|
|
@@ -25,6 +25,8 @@ class Tokenization(BaseApi):
|
|
|
25
25
|
qwen_14b_chat = 'qwen-14b-chat'
|
|
26
26
|
llama2_7b_chat_v2 = 'llama2-7b-chat-v2'
|
|
27
27
|
llama2_13b_chat_v2 = 'llama2-13b-chat-v2'
|
|
28
|
+
text_embedding_v2 = 'text-embedding-v2'
|
|
29
|
+
qwen_72b_chat = 'qwen-72b-chat'
|
|
28
30
|
|
|
29
31
|
@classmethod
|
|
30
32
|
def call(cls,
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from typing import List
|
|
3
|
+
|
|
4
|
+
from dashscope.common.error import UnsupportedModel
|
|
5
|
+
from dashscope.tokenizers.qwen_tokenizer import QwenTokenizer
|
|
6
|
+
|
|
7
|
+
from .tokenizer_base import Tokenizer
|
|
8
|
+
|
|
9
|
+
QWEN_SERIALS = ['qwen-7b-chat', 'qwen-turbo', 'qwen-plus', 'qwen-max']
|
|
10
|
+
current_path = os.path.dirname(os.path.abspath(__file__))
|
|
11
|
+
root_path = os.path.dirname(current_path)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def get_tokenizer(model: str) -> Tokenizer:
|
|
15
|
+
"""Get a tokenizer based on model name.
|
|
16
|
+
|
|
17
|
+
Args:
|
|
18
|
+
model (str): The model name.
|
|
19
|
+
|
|
20
|
+
Raises:
|
|
21
|
+
UnsupportedModel: Not support model
|
|
22
|
+
|
|
23
|
+
Returns:
|
|
24
|
+
Tokenizer: The `Tokenizer` of the model.
|
|
25
|
+
"""
|
|
26
|
+
if model in QWEN_SERIALS:
|
|
27
|
+
return QwenTokenizer(
|
|
28
|
+
os.path.join(root_path, 'resources', 'qwen.tiktoken'))
|
|
29
|
+
elif model.startswith('qwen'):
|
|
30
|
+
return QwenTokenizer(
|
|
31
|
+
os.path.join(root_path, 'resources', 'qwen.tiktoken'))
|
|
32
|
+
else:
|
|
33
|
+
raise UnsupportedModel(
|
|
34
|
+
f'Not support model: {model}, currently only support qwen models.')
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def list_tokenizers() -> List[str]:
|
|
38
|
+
"""List support models
|
|
39
|
+
|
|
40
|
+
Returns:
|
|
41
|
+
List[str]: The model list.
|
|
42
|
+
"""
|
|
43
|
+
return QWEN_SERIALS
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Tokenizer:
|
|
5
|
+
"""Base tokenizer interface for local tokenizers.
|
|
6
|
+
"""
|
|
7
|
+
def __init__(self):
|
|
8
|
+
pass
|
|
9
|
+
|
|
10
|
+
def encode(self, text: str, **kwargs) -> List[int]:
|
|
11
|
+
"""Encode input text string to token ids.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
text (str): The string to be encoded.
|
|
15
|
+
|
|
16
|
+
Returns:
|
|
17
|
+
List[int]: The token ids.
|
|
18
|
+
"""
|
|
19
|
+
pass
|
|
20
|
+
|
|
21
|
+
def decode(self, token_ids: List[int], **kwargs) -> str:
|
|
22
|
+
"""Decode token ids to string.
|
|
23
|
+
|
|
24
|
+
Args:
|
|
25
|
+
token_ids (List[int]): The input token ids.
|
|
26
|
+
|
|
27
|
+
Returns:
|
|
28
|
+
str: The string of the token ids.
|
|
29
|
+
"""
|
|
30
|
+
pass
|
dashscope/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '1.
|
|
1
|
+
__version__ = '1.14.1'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dashscope
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.14.1
|
|
4
4
|
Summary: dashscope client sdk library
|
|
5
5
|
Home-page: https://dashscope.aliyun.com/
|
|
6
6
|
Author: Alibaba Cloud
|
|
@@ -21,6 +21,8 @@ Requires-Python: >=3.7.0
|
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
Requires-Dist: aiohttp
|
|
23
23
|
Requires-Dist: requests
|
|
24
|
+
Provides-Extra: tokenizer
|
|
25
|
+
Requires-Dist: tiktoken ; extra == 'tokenizer'
|
|
24
26
|
|
|
25
27
|
<h4 align="center">
|
|
26
28
|
<p>
|
|
@@ -44,6 +46,10 @@ If you clone the code from github, you can install from source by running:
|
|
|
44
46
|
pip install -e .
|
|
45
47
|
```
|
|
46
48
|
|
|
49
|
+
To use tokenizer in local mode without downloading any files, run:
|
|
50
|
+
```shell
|
|
51
|
+
pip install dashscope[tokenizer]
|
|
52
|
+
```
|
|
47
53
|
|
|
48
54
|
|
|
49
55
|
## QuickStart
|
|
@@ -157,50 +163,33 @@ if __name__ == '__main__':
|
|
|
157
163
|
sample_sync_call_stream()
|
|
158
164
|
|
|
159
165
|
```
|
|
160
|
-
####
|
|
166
|
+
#### Stream with Messages
|
|
161
167
|
```python
|
|
162
168
|
from http import HTTPStatus
|
|
169
|
+
from dashscope import Generation
|
|
170
|
+
from dashscope.api_entities.dashscope_response import Role
|
|
163
171
|
|
|
164
|
-
|
|
165
|
-
def
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
item = HistoryItem('user', text='Do you have any places to recommend?')
|
|
173
|
-
history.append(item)
|
|
174
|
-
item = HistoryItem('bot', text='I suggest you go to the park. Spring is here, and the flowers are blooming. It is beautiful.')
|
|
175
|
-
history.append(item)
|
|
176
|
-
chat = Conversation(history)
|
|
177
|
-
response = chat.call(Conversation.Models.qwen_turbo,
|
|
178
|
-
prompt='Recommend a nearby park',
|
|
179
|
-
stream=True)
|
|
180
|
-
for part in response:
|
|
181
|
-
if part.status_code == HTTPStatus.OK:
|
|
182
|
-
print(part.output)
|
|
183
|
-
else:
|
|
184
|
-
print('Failed request_id: %s, status_code: %s code: %s, message:%s' %
|
|
185
|
-
(part.id, part.status_code, part.code, part.message))
|
|
186
|
-
response = chat.call(
|
|
187
|
-
Conversation.Models.qwen_turbo,
|
|
188
|
-
prompt='I have been to that park many times, how about a more distant one?',
|
|
189
|
-
auto_history=True,
|
|
172
|
+
|
|
173
|
+
def stream_with_messages():
|
|
174
|
+
messages = [{'role': Role.SYSTEM, 'content': 'You are a helpful assistant.'},
|
|
175
|
+
{'role': Role.USER, 'content': '如何做西红柿炖牛腩?'}]
|
|
176
|
+
responses = Generation.call(
|
|
177
|
+
Generation.Models.qwen_turbo,
|
|
178
|
+
messages=messages,
|
|
179
|
+
result_format='message', # set the result to be "message" format.
|
|
190
180
|
stream=True,
|
|
191
181
|
)
|
|
192
|
-
for
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
182
|
+
for response in responses:
|
|
183
|
+
if response.status_code == HTTPStatus.OK:
|
|
184
|
+
print(response)
|
|
185
|
+
else:
|
|
186
|
+
print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
|
|
187
|
+
response.request_id, response.status_code,
|
|
188
|
+
response.code, response.message
|
|
189
|
+
))
|
|
200
190
|
|
|
201
191
|
if __name__ == '__main__':
|
|
202
|
-
|
|
203
|
-
|
|
192
|
+
stream_with_messages()
|
|
204
193
|
|
|
205
194
|
```
|
|
206
195
|
## Logging
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
dashscope/__init__.py,sha256=
|
|
1
|
+
dashscope/__init__.py,sha256=UExSJnogmqVAzRL6R4HhTp-yTz9GwoDIh5xAf7E_BEI,2018
|
|
2
2
|
dashscope/cli.py,sha256=7CnUZqaaUc0FxbmXHMiqOALl9YzZmSrFS23A7hbR0w0,23917
|
|
3
3
|
dashscope/deployment.py,sha256=uhlQYOiu1baMQxQnFmRwI6ces0I-_DKp8uej_L0v1eY,4400
|
|
4
4
|
dashscope/file.py,sha256=Dv2Fz3DLbcye2uuQxyQwRM7ky27OthouLXIpSQagQy4,3324
|
|
5
5
|
dashscope/finetune.py,sha256=5QlIcnFCfSjN3gn9A2FO0kLUDa9Rx_jSc44ezT3aBEo,5118
|
|
6
6
|
dashscope/model.py,sha256=iuIfal-vOo0yav0HXPdA7f93vd5JNTGIAdCG_WIYkW8,1158
|
|
7
|
-
dashscope/version.py,sha256=
|
|
7
|
+
dashscope/version.py,sha256=eyARjsqZfiB7blnKzG-sgKU2HEsI143aQSUAfhkeA8U,23
|
|
8
8
|
dashscope/aigc/__init__.py,sha256=s-MCA87KYiVumYtKtJi5IMN7xelSF6TqEU3s3_7RF-Y,327
|
|
9
9
|
dashscope/aigc/code_generation.py,sha256=bizJb3zGZx3pB74FKMIcnOi_6jkxpKgx__6urzqhQ_E,10627
|
|
10
10
|
dashscope/aigc/conversation.py,sha256=_sAWhQjLgJENqRAXh-i2dw8bt_i69fJv9KZYVIi4CEg,14090
|
|
@@ -12,13 +12,13 @@ dashscope/aigc/generation.py,sha256=SgOtVsd0DaMOuHmJ2EcA3E_hcU1Bqah1Q-Ztnb3TcC8,
|
|
|
12
12
|
dashscope/aigc/image_synthesis.py,sha256=Y20B_hpCe-uLKR661hvFpjQVk9jFfNtiPpiBkYiHAA0,8996
|
|
13
13
|
dashscope/aigc/multimodal_conversation.py,sha256=D5JYLLxwdGsgCrYeF0gNvE1kR5Vbmq1g0MiRU-4hlZQ,5228
|
|
14
14
|
dashscope/api_entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
dashscope/api_entities/aiohttp_request.py,sha256=
|
|
15
|
+
dashscope/api_entities/aiohttp_request.py,sha256=ZFbdpJh7SwHnBzbYLhqr_FdcDVRgLVMLhLUS_vXbUGs,10228
|
|
16
16
|
dashscope/api_entities/api_request_data.py,sha256=JUMcfpJjKXEZLCBSFIDpgoaeQYk5uK9-CwhM4OHIHFQ,5463
|
|
17
|
-
dashscope/api_entities/api_request_factory.py,sha256=
|
|
17
|
+
dashscope/api_entities/api_request_factory.py,sha256=MCJOGgUzaWTaLZ5d8m8dck7QdSUNX7XLbKYyB3pT23E,4067
|
|
18
18
|
dashscope/api_entities/base_request.py,sha256=cXUL7xqSV8wBr5d-1kx65AO3IsRR9A_ps6Lok-v-MKM,926
|
|
19
19
|
dashscope/api_entities/dashscope_response.py,sha256=1KdBib5xOftcKXLzTETe5LElGy2mB8IG8E3JZrGOaAY,15814
|
|
20
|
-
dashscope/api_entities/http_request.py,sha256=
|
|
21
|
-
dashscope/api_entities/websocket_request.py,sha256=
|
|
20
|
+
dashscope/api_entities/http_request.py,sha256=MzaTznVJUbyA8u6cLegxVSEM3JWlAhPHbSh4uDCX0-A,9506
|
|
21
|
+
dashscope/api_entities/websocket_request.py,sha256=zU7OskAHaNlKcR9s_6Hlnhr5N3oam4w0sUD5E9N-4BQ,14586
|
|
22
22
|
dashscope/audio/__init__.py,sha256=vlw0TFVRdeRWfzmJxhzarVUqkMs-DZNf4GiMtm3C8XE,45
|
|
23
23
|
dashscope/audio/asr/__init__.py,sha256=-s180qWn_JPSpCo1q0aDJJ5HQ3zTzD4z5yUwsRqH4aU,275
|
|
24
24
|
dashscope/audio/asr/asr_phrase_manager.py,sha256=BNrRBGGoAW_rcxoi_euh6bRktJO6asTiGroE8PMh1Xg,6641
|
|
@@ -30,16 +30,16 @@ dashscope/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
|
|
|
30
30
|
dashscope/client/base_api.py,sha256=1YTlwY2_tlvMLaz6oGh1BNQt5GT_Xx3obS6nKOvnpkY,31749
|
|
31
31
|
dashscope/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
32
|
dashscope/common/api_key.py,sha256=5Stp0odL5JSuIO3qJBp23QNppuGbqhhvKPS66qbMs0I,1986
|
|
33
|
-
dashscope/common/constants.py,sha256=
|
|
33
|
+
dashscope/common/constants.py,sha256=OCe3UNGH05sTEsffipWDYpUL_bz__AaYm9lSDB-ZkRI,2297
|
|
34
34
|
dashscope/common/env.py,sha256=oQOZW5JyEeTSde394un2lpDJ5RBh4fMU9hBfbtrKKkc,869
|
|
35
|
-
dashscope/common/error.py,sha256=
|
|
35
|
+
dashscope/common/error.py,sha256=5Ndi6w38fSHX6qcPgr9udKISf1RbRJVL8hjDPtU4lJ4,1896
|
|
36
36
|
dashscope/common/logging.py,sha256=ecGxylG3bWES_Xv5-BD6ep4_0Ciu7F6ZPBjiZtu9Jx4,984
|
|
37
37
|
dashscope/common/message_manager.py,sha256=i5149WzDk6nWmdFaHzYx4USXMBeX18GKSI-F4fLwbN0,1097
|
|
38
|
-
dashscope/common/utils.py,sha256=
|
|
38
|
+
dashscope/common/utils.py,sha256=xsY36zXGnProdkgarbFu30rX9rmdQNZHcHbvEuVXoss,6697
|
|
39
39
|
dashscope/embeddings/__init__.py,sha256=-dxHaoxZZVuP-wAGUIa3sNNh8CQwaeWj2UlqsDy1sV4,240
|
|
40
40
|
dashscope/embeddings/batch_text_embedding.py,sha256=M8jvdz304Oh5ZwegHWGwTda9AezYsgVC59HnweuCagY,7977
|
|
41
41
|
dashscope/embeddings/batch_text_embedding_response.py,sha256=WziXlQsFIkL1kPc_7lRG1HtqgkO5vVThtnNqExJggNU,2000
|
|
42
|
-
dashscope/embeddings/multimodal_embedding.py,sha256=
|
|
42
|
+
dashscope/embeddings/multimodal_embedding.py,sha256=Wgh80k-mI0DJiapWxM27H1rwkCPoFqunca2JHvwTE68,3824
|
|
43
43
|
dashscope/embeddings/text_embedding.py,sha256=X7_FBM57gQQCu8xb-W-jTlSsathaCiAtW0mdb19N-PM,1714
|
|
44
44
|
dashscope/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
45
|
dashscope/io/input_output.py,sha256=iZ1X1x1btdoZK2VeC9JsKkag2eaXwqfNT3Q6SrmRi2w,3941
|
|
@@ -47,13 +47,17 @@ dashscope/nlp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
47
47
|
dashscope/nlp/understanding.py,sha256=uVkf_4iULnlnuGmEX3taKiHgzxu173vvgVwY5EO2C2Y,2803
|
|
48
48
|
dashscope/protocol/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
49
|
dashscope/protocol/websocket.py,sha256=z-v6PGx3L4zYBANuC48s7SWSQSwRCDoh0zcfhv9Bf8U,561
|
|
50
|
-
dashscope/
|
|
51
|
-
dashscope/tokenizers/
|
|
50
|
+
dashscope/resources/qwen.tiktoken,sha256=srG437XMXwJLr8NzEhxquj9m-aWgJp4kNHCh3hajMYY,2561218
|
|
51
|
+
dashscope/tokenizers/__init__.py,sha256=Oy5FMT37Non6e1YxdHQ89U93Dy3CG1Ez0gBa771KZo0,200
|
|
52
|
+
dashscope/tokenizers/qwen_tokenizer.py,sha256=dCnT9-9NrqPS85bEhjlPULUfDADVRhlleYwM_ILgCeI,4111
|
|
53
|
+
dashscope/tokenizers/tokenization.py,sha256=q-mx2ufZAXyelLyPZdjsKieYHC6tJU19t7lC5bEz6kU,4631
|
|
54
|
+
dashscope/tokenizers/tokenizer.py,sha256=y6P91qTCYo__pEx_0VHAcj9YECfbUdRqZU1fdGTjF4o,1154
|
|
55
|
+
dashscope/tokenizers/tokenizer_base.py,sha256=REDhzRyDT13iequ61-a6_KcTy0GFKlihQve5HkyoyRs,656
|
|
52
56
|
dashscope/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
57
|
dashscope/utils/oss_utils.py,sha256=iCF5fLqIXDCS2zkE96t2DEUxCI76ArnQH2DiY2hgHu0,6522
|
|
54
|
-
dashscope-1.
|
|
55
|
-
dashscope-1.
|
|
56
|
-
dashscope-1.
|
|
57
|
-
dashscope-1.
|
|
58
|
-
dashscope-1.
|
|
59
|
-
dashscope-1.
|
|
58
|
+
dashscope-1.14.1.dist-info/LICENSE,sha256=Izp5L1DF1Mbza6qojkqNNWlE_mYLnr4rmzx2EBF8YFw,11413
|
|
59
|
+
dashscope-1.14.1.dist-info/METADATA,sha256=Hlg9nly8P6C_7fj2RwM8HEDuP8dt5unBCUmwGEy-FoY,6659
|
|
60
|
+
dashscope-1.14.1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
|
61
|
+
dashscope-1.14.1.dist-info/entry_points.txt,sha256=raEp5dOuj8whJ7yqZlDM8WQ5p2RfnGrGNo0QLQEnatY,50
|
|
62
|
+
dashscope-1.14.1.dist-info/top_level.txt,sha256=woqavFJK9zas5xTqynmALqOtlafghjsk63Xk86powTU,10
|
|
63
|
+
dashscope-1.14.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|