返回提交历史
Modified
g4f/Provider/__init__.py
+35
-2
Modified
g4f/gui/server/backend_api.py
+2
-0
XFEstudio/gpt4free
Add virtual providers
4c77492f
代码差异
2 个文件
+37
-2
@@ -122,6 +122,8 @@ def _resolve_provider(name: str) -> ProviderType:
122
122
_loaded_providers[name] = AbstractClientFactory.create_provider(
123
123
None, "default"
124
124
)
125
_loaded_providers[name].__name__ = name
126
_loaded_providers[name].active_by_default = True
125
127
return _loaded_providers[name]
126
128
elif name == "GLM":
127
129
from g4f.Provider.glm import GLM
@@ -219,6 +221,23 @@ def _resolve_provider(name: str) -> ProviderType:
219
221
from g4f.Provider.needs_auth.Nvidia import Nvidia
220
222
221
223
return Nvidia
224
elif name == "RelayRouter":
225
from ..client.factory import AbstractClientFactory
226
_loaded_providers[name] = AbstractClientFactory.create_provider(
227
None, "custom:srv_mt1wbaxgf9c946af0c58",
228
)
229
_loaded_providers[name].__name__ = name
230
_loaded_providers[name].active_by_default = True
231
return _loaded_providers[name]
232
elif name == "KiloCode":
233
from ..client.factory import AbstractClientFactory
234
_loaded_providers[name] = AbstractClientFactory.create_provider(
235
None, "https://api.kilo.ai/api/gateway"
236
)
237
_loaded_providers[name].__name__ = name
238
_loaded_providers[name].active_by_default = True
239
_loaded_providers[name].default_model = "kilo-auto/free"
240
return _loaded_providers[name]
222
241
elif name == "Ollama":
223
242
from g4f.Provider.local.Ollama import Ollama
224
243
@@ -227,14 +246,24 @@ def _resolve_provider(name: str) -> ProviderType:
227
246
from g4f.Provider.audio.OpenAIFM import OpenAIFM
228
247
229
248
return OpenAIFM
249
elif name == "OpenCode":
250
from ..client.factory import AbstractClientFactory
251
_loaded_providers[name] = AbstractClientFactory.create_provider(
252
None, "https://opencode.ai/zen/v1"
253
)
254
_loaded_providers[name].__name__ = name
255
_loaded_providers[name].active_by_default = True
256
_loaded_providers[name].default_model = "big-pickle"
257
return _loaded_providers[name]
258
230
259
elif name == "OpenRouter":
231
260
from g4f.Provider.needs_auth.OpenRouter import OpenRouter
232
261
233
262
return OpenRouter
234
263
elif name == "OpenRouterFree":
235
from g4f.Provider.needs_auth.OpenRouter import OpenRouter
264
from g4f.Provider.needs_auth.OpenRouter import OpenRouterFree
236
265
237
return OpenRouter
266
return OpenRouterFree
238
267
elif name == "OrcaRouter":
239
268
from g4f.Provider.needs_auth.OrcaRouter import OrcaRouter
240
269
@@ -382,6 +411,7 @@ _provider_names = [
382
411
"EdgeTTS",
383
412
"ElevenLabs",
384
413
"FenayAI",
414
"G4FSpace",
385
415
"GLM",
386
416
"Gemini",
387
417
"GeminiCLI",
@@ -406,8 +436,11 @@ _provider_names = [
406
436
"MicrosoftDesigner",
407
437
"MiniMax",
408
438
"Nvidia",
439
"RelayRouter",
440
"KiloCode",
409
441
"Ollama",
410
442
"OpenAIFM",
443
"OpenCode",
411
444
"OpenRouter",
412
445
"OpenRouterFree",
413
446
"OrcaRouter",
@@ -648,6 +648,8 @@ class Backend_Api(Api):
648
648
httponly=True,
649
649
secure=True,
650
650
)
651
else:
652
resp.headers["Cache-Control"] = "public, max-age=3600"
651
653
return resp
652
654
653
655
@app.route("/backend-api/v2/create", methods=["GET"])