44import time
55from http import HTTPStatus
66from typing import Any , Dict , Iterator , List , Union
7- from urllib .parse import urlencode
87
98import requests
109
1110import dashscope
12- from dashscope .api_entities .api_request_factory import (_build_api_request ,
13- _build_simple_http_request )
11+ from dashscope .api_entities .api_request_factory import _build_api_request
1412from dashscope .api_entities .dashscope_response import DashScopeAPIResponse
1513from dashscope .common .api_key import get_default_api_key
1614from dashscope .common .constants import (DEFAULT_REQUEST_TIMEOUT_SECONDS ,
@@ -32,11 +30,14 @@ async def _get(cls,
3230 workspace : str = None ,
3331 ** kwargs ) -> DashScopeAPIResponse :
3432 base_url = kwargs .pop ('base_address' , None )
35- status_url = _normalization_url (base_url , 'tasks' , task_id )
33+ url = _normalization_url (base_url , 'tasks' , task_id )
3634 kwargs = cls ._handle_kwargs (api_key , workspace , ** kwargs )
37- request = _build_simple_http_request (http_url = status_url ,
38- api_key = api_key ,
39- ** kwargs )
35+ kwargs ["base_address" ] = url
36+ if not api_key :
37+ api_key = get_default_api_key ()
38+ request = _build_api_request ("" , "" , "" ,
39+ "" , "" , api_key = api_key ,
40+ is_service = False , ** kwargs )
4041 return await cls ._handle_request (request )
4142
4243 @classmethod
@@ -65,8 +66,7 @@ async def _handle_request(cls, request):
6566 # 如果 aio_call 返回的是异步生成器,则需要从中获取响应
6667 response = await request .aio_call ()
6768 # 处理异步生成器的情况
68- if (isinstance (response , collections .abc .AsyncGenerator )
69- or hasattr (response , '__aiter__' )):
69+ if isinstance (response , collections .abc .AsyncGenerator ):
7070 result = None
7171 async for item in response :
7272 result = item
@@ -226,9 +226,12 @@ async def cancel(
226226 base_url = kwargs .pop ('base_address' , None )
227227 url = _normalization_url (base_url , 'tasks' , task_id , 'cancel' )
228228 kwargs = cls ._handle_kwargs (api_key , workspace , ** kwargs )
229- request = _build_simple_http_request (http_url = url ,
230- api_key = api_key ,
231- ** kwargs )
229+ kwargs ["base_address" ] = url
230+ if not api_key :
231+ api_key = get_default_api_key ()
232+ request = _build_api_request ("" , "" , "" ,
233+ "" , "" ,api_key = api_key ,
234+ is_service = False , ** kwargs )
232235 return await cls ._handle_request (request )
233236
234237 @classmethod
@@ -281,17 +284,14 @@ async def list(cls,
281284 params ['region' ] = region
282285 if status is not None :
283286 params ['status' ] = status
284- if params :
285- query_string = urlencode (params )
286- url = f"{ url } ?{ query_string } "
287- kwargs ['http_method' ] = HTTPMethod .GET
288- request = _build_simple_http_request (http_url = url ,
289- api_key = api_key ,
290- headers = {
291- ** _workspace_header (workspace ),
292- ** default_headers (api_key ),
293- },
294- ** kwargs )
287+ kwargs = cls ._handle_kwargs (api_key , workspace , ** kwargs )
288+ kwargs ["base_address" ] = url
289+ if not api_key :
290+ api_key = get_default_api_key ()
291+ request = _build_api_request (model_name , "" , "" ,
292+ "" , "" , api_key = api_key ,
293+ is_service = False , extra_url_parameters = params ,
294+ ** kwargs )
295295 return await cls ._handle_request (request )
296296
297297 @classmethod
0 commit comments