返回提交历史
Modified
g4f/client/__init__.py
+9
-8
Modified
g4f/client/service.py
+7
-5
Modified
g4f/client/stubs.py
+1
-1
XFEstudio/gpt4free
Fix unit tests
16a11f99
代码差异
3 个文件
+17
-14
@@ -8,7 +8,6 @@ import asyncio
8
8
import base64
9
9
from typing import Union, AsyncIterator, Iterator, Coroutine, Optional
10
10
11
from ..providers.base_provider import AsyncGeneratorProvider
12
11
from ..image import ImageResponse, copy_images, images_dir
13
12
from ..typing import Messages, Image, ImageType
14
13
from ..providers.types import ProviderType
@@ -292,6 +291,7 @@ class Images:
292
291
**kwargs
293
292
) -> ImagesResponse:
294
293
provider_handler = await self.get_provider_handler(model, provider, BingCreateImages)
294
provider_name = provider.__name__ if hasattr(provider, "__name__") else type(provider).__name__
295
295
if proxy is None:
296
296
proxy = self.client.proxy
297
297
@@ -317,17 +317,17 @@ class Images:
317
317
response = item
318
318
break
319
319
else:
320
raise ValueError(f"Provider {getattr(provider_handler, '__name__')} does not support image generation")
320
raise ValueError(f"Provider {provider_name} does not support image generation")
321
321
if isinstance(response, ImageResponse):
322
322
return await self._process_image_response(
323
323
response,
324
324
response_format,
325
325
proxy,
326
326
model,
327
getattr(provider_handler, "__name__", None)
327
provider_name
328
328
)
329
329
if response is None:
330
raise NoImageResponseError(f"No image response from {getattr(provider_handler, '__name__')}")
330
raise NoImageResponseError(f"No image response from {provider_name}")
331
331
raise NoImageResponseError(f"Unexpected response type: {type(response)}")
332
332
333
333
def create_variation(
@@ -352,6 +352,7 @@ class Images:
352
352
**kwargs
353
353
) -> ImagesResponse:
354
354
provider_handler = await self.get_provider_handler(model, provider, OpenaiAccount)
355
provider_name = provider.__name__ if hasattr(provider, "__name__") else type(provider).__name__
355
356
if proxy is None:
356
357
proxy = self.client.proxy
357
358
@@ -372,14 +373,14 @@ class Images:
372
373
else:
373
374
response = provider_handler.create_variation(image, model=model, response_format=response_format, proxy=proxy, **kwargs)
374
375
else:
375
raise NoImageResponseError(f"Provider {provider} does not support image variation")
376
376
raise NoImageResponseError(f"Provider {provider_name} does not support image variation")
377
377
378
if isinstance(response, str):
378
379
response = ImageResponse([response])
379
380
if isinstance(response, ImageResponse):
380
return self._process_image_response(response, response_format, proxy, model, getattr(provider, "__name__", None))
381
return self._process_image_response(response, response_format, proxy, model, provider_name)
381
382
if response is None:
382
raise NoImageResponseError(f"No image response from {getattr(provider, '__name__')}")
383
raise NoImageResponseError(f"No image response from {provider_name}")
383
384
raise NoImageResponseError(f"Unexpected response type: {type(response)}")
384
385
385
386
async def _process_image_response(
@@ -74,11 +74,13 @@ def get_model_and_provider(model : Union[Model, str],
74
74
if not provider:
75
75
raise ProviderNotFoundError(f'No provider found for model: {model}')
76
76
77
provider_name = provider.__name__ if hasattr(provider, "__name__") else type(provider).__name__
78
77
79
if isinstance(model, Model):
78
80
model = model.name
79
81
80
82
if not ignore_working and not provider.working:
81
raise ProviderNotWorkingError(f'{provider.__name__} is not working')
83
raise ProviderNotWorkingError(f"{provider_name} is not working")
82
84
83
85
if isinstance(provider, BaseRetryProvider):
84
86
if not ignore_working:
@@ -87,12 +89,12 @@ def get_model_and_provider(model : Union[Model, str],
87
89
provider.providers = [p for p in provider.providers if p.__name__ not in ignored]
88
90
89
91
if not ignore_stream and not provider.supports_stream and stream:
90
raise StreamNotSupportedError(f'{provider.__name__} does not support "stream" argument')
92
raise StreamNotSupportedError(f'{provider_name} does not support "stream" argument')
91
93
92
94
if model:
93
debug.log(f'Using {type(provider).__name__} provider and {model} model')
95
debug.log(f'Using {provider_name} provider and {model} model')
94
96
else:
95
debug.log(f'Using {type(provider).__name__} provider')
97
debug.log(f'Using {provider_name} provider')
96
98
97
99
debug.last_provider = provider
98
100
debug.last_model = model
@@ -115,7 +117,7 @@ def get_last_provider(as_dict: bool = False) -> Union[ProviderType, dict[str, st
115
117
if as_dict:
116
118
if last:
117
119
return {
118
"name": type(last).__name__,
120
"name": last.__name__ if hasattr(last, "__name__") else type(last).__name__,
119
121
"url": last.url,
120
122
"model": debug.last_model,
121
123
"label": getattr(last, "label", None) if hasattr(last, "label") else None
@@ -147,4 +147,4 @@ class ImagesResponse(BaseModel):
147
147
model=model,
148
148
provider=provider,
149
149
created=created
150
)
150
)