返回提交历史
Modified
g4f/Provider/Pollinations.py
+2
-2
Modified
g4f/Provider/audio/PollinationsAudio.py
+0
-1
Modified
g4f/Provider/local/Ollama.py
+0
-1
Modified
g4f/Provider/needs_auth/Cohere.py
+0
-1
Modified
g4f/Provider/needs_auth/LMArena.py
+1
-1
Modified
g4f/client/__init__.py
+3
-2
Modified
g4f/image/copy_images.py
+1
-1
Modified
g4f/providers/helper.py
+1
-1
Modified
g4f/providers/retry_provider.py
+1
-1
Modified
g4f/tools/media.py
+1
-1
XFEstudio/gpt4free
perf(startup): defer heavy scraper and document parsing imports to speed up startup
1bcc9c55
代码差异
10 个文件
+10
-12
@@ -28,9 +28,9 @@ from ..providers.response import (
28
28
PreviewResponse,
29
29
)
30
30
from ..tools.media import render_messages
31
from ..tools.run_tools import AuthManager
31
from ..tools.auth import AuthManager
32
32
from ..cookies import get_cookies_dir
33
from ..tools.files import secure_filename
33
from ..files import secure_filename
34
34
from ..config import AppConfig
35
35
from .template.OpenaiTemplate import OpenaiTemplate, read_response
36
36
from .. import debug
@@ -12,7 +12,6 @@ from ...providers.base_provider import AsyncGeneratorProvider, ProviderModelMixi
12
12
from ...requests.aiohttp import get_connector
13
13
from ...requests.defaults import DEFAULT_HEADERS
14
14
from ...requests.raise_for_status import raise_for_status
15
from ...tools.run_tools import AuthManager
16
15
from ...image import to_bytes
17
16
from ...tools.media import merge_media
18
17
from ..helper import filter_none, format_media_prompt
@@ -9,7 +9,6 @@ from typing import Optional
9
9
from ..template import OpenaiTemplate
10
10
from ...requests import StreamSession, raise_for_status
11
11
from ...cookies import get_cookies
12
from ...tools.run_tools import AuthManager
13
12
from ...typing import AsyncResult, Messages
14
13
from ...config import AppConfig
15
14
from ...errors import MissingAuthError
@@ -7,7 +7,6 @@ from ...typing import AsyncResult, Messages
7
7
from ...requests import StreamSession, raise_for_status, sse_stream
8
8
from ...providers.response import FinishReason, Usage
9
9
from ...errors import MissingAuthError
10
from ...tools.run_tools import AuthManager
11
10
from ..base_provider import AsyncGeneratorProvider, ProviderModelMixin
12
11
from ... import debug
13
12
@@ -34,7 +34,7 @@ from ...typing import AsyncResult, Messages, MediaListType
34
34
from ...requests import get_args_from_nodriver, raise_for_status, merge_cookies
35
35
from ...requests import StreamSession
36
36
from ...cookies import get_cookies_dir
37
from ...tools.files import secure_filename
37
from ...files import secure_filename
38
38
from ...errors import (
39
39
ModelNotFoundError,
40
40
CloudflareError,
@@ -16,8 +16,7 @@ from ..providers.response import *
16
16
from ..errors import NoMediaResponseError
17
17
from ..providers.retry_provider import IterListProvider
18
18
from ..providers.asyncio import to_sync_generator
19
from ..Provider import PollinationsImage
20
from ..tools.run_tools import async_iter_run_tools, iter_run_tools
19
21
20
from .stubs import (
22
21
ChatCompletion,
23
22
ChatCompletionChunk,
@@ -385,6 +384,7 @@ class Completions:
385
384
if ignore_stream:
386
385
kwargs["ignore_stream"] = True
387
386
387
from ..tools.run_tools import iter_run_tools
388
388
response = iter_run_tools(
389
389
provider,
390
390
model=model,
@@ -783,6 +783,7 @@ class AsyncCompletions:
783
783
if ignore_stream:
784
784
kwargs["ignore_stream"] = True
785
785
786
from ..tools.run_tools import async_iter_run_tools
786
787
response = async_iter_run_tools(
787
788
provider,
788
789
model=model,
@@ -14,7 +14,7 @@ from urllib.parse import urlparse
14
14
from ..typing import Optional, Cookies, Union
15
15
from ..requests.aiohttp import get_connector
16
16
from ..image import MEDIA_TYPE_MAP, EXTENSIONS_MAP, is_safe_url
17
from ..tools.files import secure_filename
17
from ..files import secure_filename
18
18
from ..providers.response import ImageResponse, AudioResponse, VideoResponse, quote_url
19
19
from . import is_accepted_format, extract_data_uri
20
20
from .. import debug
@@ -5,7 +5,6 @@ import string
5
5
from pathlib import Path
6
6
7
7
from ..typing import Messages, Cookies, AsyncIterator, Iterator
8
from ..tools.files import get_bucket_dir, read_bucket
9
8
from .response import JsonResponse, HiddenResponse
10
9
from .. import debug
11
10
@@ -19,6 +18,7 @@ def to_string(value) -> str:
19
18
elif "name" in value:
20
19
return ""
21
20
elif "bucket_id" in value:
21
from ..tools.files import get_bucket_dir, read_bucket
22
22
bucket_dir = Path(get_bucket_dir(value.get("bucket_id")))
23
23
return "".join(read_bucket(bucket_dir))
24
24
return ""
@@ -9,7 +9,7 @@ from .types import BaseProvider, BaseRetryProvider, ProviderType
9
9
from .response import ProviderInfo, JsonConversation, is_content
10
10
from .base_provider import get_async_provider_method
11
11
from .. import debug
12
from ..tools.run_tools import AuthManager
12
from ..tools.auth import AuthManager
13
13
from ..config import AppConfig
14
14
from ..errors import RetryProviderError, RetryNoProviderError
15
15
@@ -14,7 +14,7 @@ from ..image import (
14
14
is_valid_audio,
15
15
to_data_uri,
16
16
)
17
from .files import get_bucket_dir, read_bucket
17
from ..files import get_bucket_dir
18
18
19
19
20
20
def render_media(