返回提交历史
Modified
g4f/Provider/__init__.py
+1
-0
Modified
g4f/Provider/needs_auth/OpenRouter.py
+0
-2
Modified
g4f/models.py
+2
-0
Modified
g4f/providers/any_provider.py
+5
-2
XFEstudio/gpt4free
Default tools models
548f00c8
代码差异
4 个文件
+8
-4
@@ -384,6 +384,7 @@ class ProviderLoader:
384
384
)
385
385
cls.loaded[name].__name__ = name
386
386
cls.loaded[name].active_by_default = True
387
cls.loaded[name].supports_native_tools = True
387
388
return cls.loaded[name]
388
389
elif name == "OpenaiAPI":
389
390
from g4f.Provider.needs_auth.OpenaiAPI import OpenaiAPI
@@ -19,10 +19,8 @@ class OpenRouterFree(OpenaiTemplate):
19
19
login_url = "https://openrouter.ai/settings/keys"
20
20
base_url = "https://openrouter.ai/api/v1"
21
21
backup_url = "https://g4f.space/api/openrouter"
22
max_tokens = 8192
23
22
working = True
24
23
active_by_default = True
25
default_model = "openrouter/free"
26
24
27
25
@classmethod
28
26
def get_models(cls, api_key: str = None, **kwargs):
@@ -132,6 +132,8 @@ default = Model(
132
132
"OrcaRouter",
133
133
"OpenCode",
134
134
"KiloCode",
135
"OpenRouterFree",
136
"GeminiPro",
135
137
]
136
138
),
137
139
)
@@ -440,6 +440,10 @@ class AnyProvider(AsyncGeneratorProvider, AnyModelProviderMixin):
440
440
providers = models.default_vision.best_provider.get_providers()
441
441
else:
442
442
providers = models.default.best_provider.get_providers()
443
if kwargs.get("tools"):
444
providers = [
445
p for p in providers if getattr(p, "supports_native_tools", False)
446
]
443
447
elif model in RouterConfig.routes:
444
448
async for chunk in ConfigModelProvider(
445
449
RouterConfig.routes.get(model)
@@ -484,7 +488,6 @@ class AnyProvider(AsyncGeneratorProvider, AnyModelProviderMixin):
484
488
except KeyError:
485
489
pass
486
490
if not providers:
487
488
491
def _safe_getattr(p):
489
492
try:
490
493
return __getattr__(p)
@@ -542,7 +545,7 @@ class AnyProvider(AsyncGeneratorProvider, AnyModelProviderMixin):
542
545
f"AnyProvider: Using providers: {[provider.__name__ for provider in providers]} for model '{model}'"
543
546
)
544
547
545
async for chunk in RotatedProvider(providers, False).create_async_generator(
548
async for chunk in RotatedProvider(providers, not model).create_async_generator(
546
549
model, messages, stream=stream, media=media, api_key=api_key, **kwargs
547
550
):
548
551
yield chunk