summaryrefslogtreecommitdiffstats
path: root/g4f/Provider/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'g4f/Provider/__init__.py')
-rw-r--r--g4f/Provider/__init__.py168
1 files changed, 22 insertions, 146 deletions
diff --git a/g4f/Provider/__init__.py b/g4f/Provider/__init__.py
index 70ad9de7..f1f0a167 100644
--- a/g4f/Provider/__init__.py
+++ b/g4f/Provider/__init__.py
@@ -1,10 +1,12 @@
-from __future__ import annotations
+from __future__ import annotations
+
from .AiAsk import AiAsk
from .Aichat import Aichat
from .AItianhu import AItianhu
from .AItianhuSpace import AItianhuSpace
from .Berlin import Berlin
from .Bing import Bing
+from .ChatAnywhere import ChatAnywhere
from .ChatBase import ChatBase
from .ChatForAi import ChatForAi
from .Chatgpt4Online import Chatgpt4Online
@@ -28,6 +30,7 @@ from .Llama2 import Llama2
from .MyShell import MyShell
from .NoowAi import NoowAi
from .Opchatgpts import Opchatgpts
+from .PerplexityAi import PerplexityAi
from .Phind import Phind
from .Vercel import Vercel
from .Ylokh import Ylokh
@@ -41,150 +44,23 @@ from .deprecated import *
from .needs_auth import *
from .unfinished import *
-class ProviderUtils:
- convert: dict[str, BaseProvider] = {
- 'AItianhu': AItianhu,
- 'AItianhuSpace': AItianhuSpace,
- 'Acytoo': Acytoo,
- 'AiAsk': AiAsk,
- 'AiService': AiService,
- 'Aibn': Aibn,
- 'Aichat': Aichat,
- 'Ails': Ails,
- 'Aivvm': Aivvm,
- 'AsyncGeneratorProvider': AsyncGeneratorProvider,
- 'AsyncProvider': AsyncProvider,
- 'Bard': Bard,
- 'BaseProvider': BaseProvider,
- 'Berlin': Berlin,
- 'Bing': Bing,
- 'ChatBase': ChatBase,
- 'ChatForAi': ChatForAi,
- 'Chatgpt4Online': Chatgpt4Online,
- 'ChatgptAi': ChatgptAi,
- 'ChatgptDemo': ChatgptDemo,
- 'ChatgptDuo': ChatgptDuo,
- 'ChatgptFree': ChatgptFree,
- 'ChatgptLogin': ChatgptLogin,
- 'ChatgptX': ChatgptX,
- 'CodeLinkAva': CodeLinkAva,
- 'Cromicle': Cromicle,
- 'DeepInfra': DeepInfra,
- 'DfeHub': DfeHub,
- 'EasyChat': EasyChat,
- 'Equing': Equing,
- 'FastGpt': FastGpt,
- 'Forefront': Forefront,
- 'FakeGpt': FakeGpt,
- 'FreeGpt': FreeGpt,
- 'GPTalk': GPTalk,
- 'GptChatly': GptChatly,
- 'GetGpt': GetGpt,
- 'GptForLove': GptForLove,
- 'GptGo': GptGo,
- 'GptGod': GptGod,
- 'Hashnode': Hashnode,
- 'H2o': H2o,
- 'HuggingChat': HuggingChat,
- 'Komo': Komo,
- 'Koala': Koala,
- 'Liaobots': Liaobots,
- 'Llama2': Llama2,
- 'Lockchat': Lockchat,
- 'MikuChat': MikuChat,
- 'Myshell': Myshell,
- 'MyShell': MyShell,
- 'NoowAi': NoowAi,
- 'Opchatgpts': Opchatgpts,
- 'OpenAssistant': OpenAssistant,
- 'OpenaiChat': OpenaiChat,
- 'PerplexityAi': PerplexityAi,
- 'Phind': Phind,
- 'Raycast': Raycast,
- 'Theb': Theb,
- 'V50': V50,
- 'Vercel': Vercel,
- 'Vitalentum': Vitalentum,
- 'Wewordle': Wewordle,
- 'Wuguokai': Wuguokai,
- 'Ylokh': Ylokh,
- 'You': You,
- 'Yqcloud': Yqcloud,
- 'GeekGpt': GeekGpt,
-
- 'BaseProvider': BaseProvider,
- 'AsyncProvider': AsyncProvider,
- 'AsyncGeneratorProvider': AsyncGeneratorProvider,
- 'RetryProvider': RetryProvider,
- }
+import sys
-__all__ = [
- 'BaseProvider',
- 'AsyncProvider',
- 'AsyncGeneratorProvider',
- 'RetryProvider',
- 'Acytoo',
- 'AiAsk',
- 'Aibn',
- 'Aichat',
- 'Ails',
- 'Aivvm',
- 'AiService',
- 'AItianhu',
- 'AItianhuSpace',
- 'Aivvm',
- 'Bard',
- 'Berlin',
- 'Bing',
- 'ChatBase',
- 'ChatForAi',
- 'Chatgpt4Online',
- 'ChatgptAi',
- 'ChatgptDemo',
- 'ChatgptDuo',
- 'ChatgptFree',
- 'ChatgptLogin',
- 'ChatgptX',
- 'Cromicle',
- 'DeepInfra',
- 'CodeLinkAva',
- 'DfeHub',
- 'EasyChat',
- 'Forefront',
- 'FakeGpt',
- 'FreeGpt',
- 'GPTalk',
- 'GptChatly',
- 'GptForLove',
- 'GetGpt',
- 'GptGo',
- 'GptGod',
- 'Hashnode',
- 'H2o',
- 'HuggingChat',
- 'Koala',
- 'Liaobots',
- 'Llama2',
- 'Lockchat',
- 'Myshell',
- 'MyShell',
- 'NoowAi',
- 'Opchatgpts',
- 'Raycast',
- 'OpenaiChat',
- 'OpenAssistant',
- 'PerplexityAi',
- 'Phind',
- 'Theb',
- 'Vercel',
- 'Vitalentum',
- 'Wewordle',
- 'Ylokh',
- 'You',
- 'Yqcloud',
- 'Equing',
- 'FastGpt',
- 'Wuguokai',
- 'V50',
- 'GeekGpt'
+__modules__: list = [
+ getattr(sys.modules[__name__], provider) for provider in dir()
+ if not provider.startswith("__")
+]
+__providers__: list[type[BaseProvider]] = [
+ provider for provider in __modules__
+ if isinstance(provider, type)
+ and issubclass(provider, BaseProvider)
]
+__all__: list[str] = [
+ provider.__name__ for provider in __providers__
+]
+__map__: dict[str, BaseProvider] = dict([
+ (provider.__name__, provider) for provider in __providers__
+])
+
+class ProviderUtils:
+ convert: dict[str, BaseProvider] = __map__ \ No newline at end of file