返回提交历史
Modified
g4f/client/async.py
+4
-16
XFEstudio/gpt4free
Update async.py
2b9a95c5
代码差异
1 个文件
+4
-16
@@ -13,7 +13,7 @@ from ..typing import Union, Iterator, Messages, ImageType, AsyncIerator
13
13
from ..image import ImageResponse as ImageProviderResponse
14
14
from ..errors import NoImageResponseError, RateLimitError, MissingAuthError
15
15
from .. import get_model_and_provider, get_last_provider
16
from .helper import read_json, find_stop
16
from .helper import read_json, find_stop, filter_none
17
17
18
18
from .Provider.BingCreateImages import BingCreateImages
19
19
from .Provider.needs_auth import Gemini, OpenaiChat
@@ -90,7 +90,7 @@ class Completions():
90
90
ignore_working: bool = False,
91
91
ignore_stream: bool = False,
92
92
**kwargs
93
) -> Union[ChatCompletion, Iterator[ChatCompletionChunk]]:
93
) -> Union[ChatCompletion, AsyncIterator[ChatCompletionChunk]]:
94
94
model, provider = get_model_and_provider(
95
95
model,
96
96
self.provider if provider is None else provider,
@@ -101,7 +101,7 @@ class Completions():
101
101
**kwargs
102
102
)
103
103
stop = [stop] if isinstance(stop, str) else stop
104
response = provider.create_completion(
104
response = provider.create_async(
105
105
model, messages, stream,
106
106
**filter_none(
107
107
proxy=self.client.get_proxy(),
@@ -113,7 +113,7 @@ class Completions():
113
113
)
114
114
response = iter_response(response, stream, response_format, max_tokens, stop)
115
115
response = iter_append_model_and_provider(response)
116
return response if stream else next(response)
116
return response if stream else anext(response)
117
117
118
118
class Chat():
119
119
completions: Completions
@@ -121,18 +121,6 @@ class Chat():
121
121
def __init__(self, client: Client, provider: ProviderType = None):
122
122
self.completions = Completions(client, provider)
123
123
124
class ImageModels():
125
gemini = Gemini
126
openai = OpenaiChat
127
you = You
128
129
def __init__(self, client: Client) -> None:
130
self.client = client
131
self.default = BingCreateImages(proxy=self.client.get_proxy())
132
133
def get(self, name: str, default: ImageProvider = None) -> ImageProvider:
134
return getattr(self, name) if hasattr(self, name) else default or self.default
135
136
124
def iter_image_response(response: Iterator) -> Union[ImagesResponse, None]:
137
125
for chunk in list(response):
138
126
if isinstance(chunk, ImageProviderResponse):