返回提交历史
Modified
docs/providers-and-models.md
+21
-36
Modified
g4f/Provider/Airforce.py
+1
-1
Deleted
g4f/Provider/Binjie.py
+0
-65
Modified
g4f/Provider/Blackbox.py
+0
-2
Modified
g4f/Provider/ChatifyAI.py
+9
-1
Deleted
g4f/Provider/LiteIcoding.py
+0
-132
Modified
g4f/Provider/__init__.py
+0
-2
Deleted
g4f/Provider/nexra/NexraAnimagineXL.py
+0
-66
Modified
g4f/Provider/nexra/NexraBing.py
+1
-1
Modified
g4f/Provider/nexra/NexraGeminiPro.py
+1
-1
Modified
g4f/Provider/nexra/NexraLLaMA31.py
+9
-1
Modified
g4f/Provider/nexra/NexraMidjourney.py
+1
-1
Modified
g4f/Provider/nexra/NexraProdiaAI.py
+1
-1
Modified
g4f/Provider/nexra/NexraSD15.py
+1
-1
Modified
g4f/Provider/nexra/NexraSD21.py
+1
-1
Modified
g4f/Provider/nexra/NexraSDLora.py
+1
-1
Modified
g4f/Provider/nexra/NexraSDTurbo.py
+1
-1
Modified
g4f/Provider/nexra/__init__.py
+0
-1
Modified
g4f/models.py
+43
-193
XFEstudio/gpt4free
chore: temporarily disable some new providers
3119b8e3
代码差异
19 个文件
+91
-508
@@ -21,7 +21,6 @@
21
21
|[openchat.team](https://openchat.team/)|`g4f.Provider.Aura`|✔|❌|❌|?||❌|
22
22
|[bing.com](https://bing.com/chat)|`g4f.Provider.Bing`|`gpt-4`|✔|`gpt-4-vision`|✔||❌+✔|
23
23
|[bing.com/images](https://www.bing.com/images/create)|`g4f.Provider.BingCreateImages`|`❌|✔|❌|❌||✔|
24
|[chat18.aichatos8.com](https://chat18.aichatos8.com)|`g4f.Provider.Binjie`|`gpt-4`|❌|❌|✔||❌|
25
24
|[blackbox.ai](https://www.blackbox.ai)|`g4f.Provider.Blackbox`|`blackboxai, blackboxai-pro, gemini-flash, llama-3.1-8b, llama-3.1-70b, gpt-4o, gemini-pro, claude-3.5-sonnet`|`flux`|✔|✔||❌|
26
25
|[chatgot.one](https://www.chatgot.one/)|`g4f.Provider.ChatGot`|`gemini-pro`|❌|❌|✔||❌|
27
26
|[chatgpt.com](https://chatgpt.com)|`g4f.Provider.ChatGpt`|`?`|`?`|`?`|?| |❌|
@@ -30,12 +29,12 @@
30
29
|[chatgpt4o.one](https://chatgpt4o.one)|`g4f.Provider.Chatgpt4o`|✔|❌|❌|❌||❌|
31
30
|[chatgptfree.ai](https://chatgptfree.ai)|`g4f.Provider.ChatgptFree`|`gpt-4o-mini`|❌|❌|?||❌|
32
31
|[app.chathub.gg](https://app.chathub.gg)|`g4f.Provider.ChatHub`|`llama-3.1-8b, mixtral-8x7b, gemma-2, sonar-online`|❌|❌|✔||❌|
33
|[chatify-ai.vercel.app](https://chatify-ai.vercel.app)|`g4f.Provider.ChatifyAI`|`llama-3.1`|❌|❌|✔||❌|
32
|[chatify-ai.vercel.app](https://chatify-ai.vercel.app)|`g4f.Provider.ChatifyAI`|`llama-3.1-8b`|❌|❌|✔||❌|
34
33
|[playground.ai.cloudflare.com](https://playground.ai.cloudflare.com)|`g4f.Provider.Cloudflare`|`german-7b, gemma-7b, llama-2-7b, llama-3-8b, llama-3.1-8b, llama-3.2-11b, llama-3.2-1b, llama-3.2-3b, mistral-7b, openchat-3.5, phi-2, qwen-1.5-0.5b, qwen-1.5-1.8b, qwen-1.5-14b, qwen-1.5-7b, tinyllama-1.1b, cybertron-7b`|❌|❌|✔||❌|
35
34
|[aiuncensored.info](https://www.aiuncensored.info)|`g4f.Provider.DarkAI`|`gpt-4o, gpt-3.5-turbo, llama-3-70b, llama-3-405b`|❌|❌|✔||❌|
36
35
|[duckduckgo.com](https://duckduckgo.com/duckchat/v1/chat)|`g4f.Provider.DDG`|`gpt-4o-mini, claude-3-haiku, llama-3.1-70b, mixtral-8x7b`|❌|❌|✔||❌|
37
36
|[deepinfra.com](https://deepinfra.com)|`g4f.Provider.DeepInfra`|✔|❌|❌|✔||✔|
38
|[deepinfra.com/chat](https://deepinfra.com/chat)|`g4f.Provider.DeepInfraChat`|`llama-3.1-405b, llama-3.1-70b, Llama-3.1-8B, mixtral-8x22b, mixtral-8x7b, wizardlm-2-8x22b, wizardlm-2-7b, qwen-2-72b, phi-3-medium-4k, gemma-2b-27b, minicpm-llama-3-v2.5, mistral-7b, lzlv_70b, openchat-3.6-8b, phind-codellama-34b-v2, dolphin-2.9.1-llama-3-70b`|❌|`minicpm-llama-3-v2.5`|❌||❌|
37
|[deepinfra.com/chat](https://deepinfra.com/chat)|`g4f.Provider.DeepInfraChat`|`llama-3.1-405b, llama-3.1-70b, llama-3.1-8B, mixtral-8x22b, mixtral-8x7b, wizardlm-2-8x22b, wizardlm-2-7b, qwen-2-72b, phi-3-medium-4k, gemma-2b-27b, minicpm-llama-3-v2.5, mistral-7b, lzlv_70b, openchat-3.6-8b, phind-codellama-34b-v2, dolphin-2.9.1-llama-3-70b`|❌|`minicpm-llama-3-v2.5`|❌||❌|
39
38
|[deepinfra.com](https://deepinfra.com)|`g4f.Provider.DeepInfraImage`|❌|✔|❌|❌||✔|
40
39
|[flowgpt.com](https://flowgpt.com/chat)|`g4f.Provider.FlowGpt`|✔||❌|✔||❌|
41
40
|[chat10.free2gpt.xyz](chat10.free2gpt.xyz)|`g4f.Provider.Free2GPT`|`llama-3.1-70b`|❌|❌|✔||❌|
@@ -51,12 +50,10 @@
51
50
|[huggingface.co](https://huggingface.co/chat)|`g4f.Provider.HuggingFace`|✔|❌|❌|✔||❌|
52
51
|[koala.sh/chat](https://koala.sh/chat)|`g4f.Provider.Koala`|`gpt-4o-mini`|❌|❌|?||❌|
53
52
|[liaobots.work](https://liaobots.work)|`g4f.Provider.Liaobots`|`gpt-3.5-turbo, gpt-4o-mini, gpt-4o, gpt-4-turbo, grok-2, grok-2-mini, claude-3-opus, claude-3-sonnet, claude-3-5-sonnet, claude-3-haiku, claude-2.1, gemini-flash, gemini-pro`|❌|❌|✔||❌|
54
|[lite.icoding.ink](https://lite.icoding.ink)|`g4f.Provider.LiteIcoding`|`gpt-4o-mini, gpt-4-turbo, claude-3, claude-3.5, gemini-pro`|❌|❌|❌||❌|
55
53
|[magickpen.com](https://magickpen.com)|`g4f.Provider.MagickPen`|`gpt-4o-mini`|❌|❌|✔||❌|
56
54
|[meta.ai](https://www.meta.ai)|`g4f.Provider.MetaAI`|✔|✔|?|?||✔|
57
55
|[app.myshell.ai/chat](https://app.myshell.ai/chat)|`g4f.Provider.MyShell`|✔|❌|?|?||❌|
58
|[nexra.aryahcr.cc/midjourney](https://nexra.aryahcr.cc/documentation/midjourney/en)|`g4f.Provider.NexraAnimagineXL`|❌ |`animagine-xl`|❌|✔||❌|
59
|[nexra.aryahcr.cc/bing](https://nexra.aryahcr.cc/documentation/bing/en)|`g4f.Provider.NexraBing`|`gpt-4` |❌|❌|✔||❌|
56
|[nexra.aryahcr.cc/bing](https://nexra.aryahcr.cc/documentation/bing/en)|`g4f.Provider.NexraBing`|✔|❌|❌|✔||❌|
60
57
|[nexra.aryahcr.cc/blackbox](https://nexra.aryahcr.cc/documentation/blackbox/en)|`g4f.Provider.NexraBlackbox`|`blackboxai` |❌|❌|✔||❌|
61
58
|[nexra.aryahcr.cc/chatgpt](https://nexra.aryahcr.cc/documentation/chatgpt/en)|`g4f.Provider.NexraChatGPT`|`gpt-4, gpt-3.5-turbo, gpt-3` |❌|❌|✔||❌|
62
59
|[nexra.aryahcr.cc/chatgpt](https://nexra.aryahcr.cc/documentation/chatgpt/en)|`g4f.Provider.NexraChatGPT4o`|`gpt-4o` |❌|❌|✔||❌|
@@ -67,16 +64,16 @@
67
64
|[nexra.aryahcr.cc/dall-e](https://nexra.aryahcr.cc/documentation/dall-e/en)|`g4f.Provider.NexraDalleMini`|❌ |`dalle-mini`|❌|✔||❌|
68
65
|[nexra.aryahcr.cc/emi](https://nexra.aryahcr.cc/documentation/emi/en)|`g4f.Provider.NexraEmi`|❌ |`emi`|❌|✔||❌|
69
66
|[nexra.aryahcr.cc/flux-pro](https://nexra.aryahcr.cc/documentation/flux-pro/en)|`g4f.Provider.NexraFluxPro`|❌ |`flux-pro`|❌|✔||❌|
70
|[nexra.aryahcr.cc/gemini-pro](https://nexra.aryahcr.cc/documentation/gemini-pro/en)|`g4f.Provider.NexraGeminiPro`|`gemini-pro`|❌|❌|✔||❌|
71
|[nexra.aryahcr.cc/llama-3.1](https://nexra.aryahcr.cc/documentation/llama-3.1/en)|`g4f.Provider.NexraLLaMA31`|`llama-3.1`|❌|❌|✔||❌|
72
|[nexra.aryahcr.cc/midjourney](https://nexra.aryahcr.cc/documentation/midjourney/en)|`g4f.Provider.NexraMidjourney`|❌|`midjourney`|❌|✔||❌|
73
|[nexra.aryahcr.cc/prodia](https://nexra.aryahcr.cc/documentation/prodia/en)|`g4f.Provider.NexraProdiaAI`|❌|✔|❌|✔||❌|
67
|[nexra.aryahcr.cc/gemini-pro](https://nexra.aryahcr.cc/documentation/gemini-pro/en)|`g4f.Provider.NexraGeminiPro`|✔|❌|❌|✔||❌|
68
|[nexra.aryahcr.cc/llama-3.1](https://nexra.aryahcr.cc/documentation/llama-3.1/en)|`g4f.Provider.NexraLLaMA31`|`llama-3.1-8b`|❌|❌|✔||❌|
69
|[nexra.aryahcr.cc/midjourney](https://nexra.aryahcr.cc/documentation/midjourney/en)|`g4f.Provider.NexraMidjourney`|❌|✔|❌|✔||❌|
70
|[nexra.aryahcr.cc/prodia](https://nexra.aryahcr.cc/documentation/prodia/en)|`g4f.Provider.NexraProdiaAI`|❌|✔|❌|✔||❌|
74
71
|[nexra.aryahcr.cc/qwen](https://nexra.aryahcr.cc/documentation/qwen/en)|`g4f.Provider.NexraQwen`|`qwen`|❌|❌|✔||❌|
75
72
|[nexra.aryahcr.cc/qwen](https://nexra.aryahcr.cc/documentation/qwen/en)|`g4f.Provider.NexraQwen`|`qwen`|❌|❌|✔||
76
|[nexra.aryahcr.cc/stable-diffusion](https://nexra.aryahcr.cc/documentation/stable-diffusion/en)|`g4f.Provider.NexraSD15`|`sd-1.5`|❌|❌|✔||
77
|[nexra.aryahcr.cc/stable-diffusion](https://nexra.aryahcr.cc/documentation/stable-diffusion/en)|`g4f.Provider.NexraSD21`|`sd-2.1`|❌|❌|✔||
78
|[nexra.aryahcr.cc/stable-diffusion](https://nexra.aryahcr.cc/documentation/stable-diffusion/en)|`g4f.Provider.NexraSDLora`|`sdxl-lora`|❌|❌|✔||
79
|[nexra.aryahcr.cc/stable-diffusion](https://nexra.aryahcr.cc/documentation/stable-diffusion/en)|`g4f.Provider.NexraSDTurbo`|`sdxl-turbo`|❌|❌|✔||
73
|[nexra.aryahcr.cc/stable-diffusion](https://nexra.aryahcr.cc/documentation/stable-diffusion/en)|`g4f.Provider.NexraSD15`|✔|❌|❌|✔||
74
|[nexra.aryahcr.cc/stable-diffusion](https://nexra.aryahcr.cc/documentation/stable-diffusion/en)|`g4f.Provider.NexraSD21`|✔|❌|❌|✔||
75
|[nexra.aryahcr.cc/stable-diffusion](https://nexra.aryahcr.cc/documentation/stable-diffusion/en)|`g4f.Provider.NexraSDLora`|✔|❌|❌|✔||
76
|[nexra.aryahcr.cc/stable-diffusion](https://nexra.aryahcr.cc/documentation/stable-diffusion/en)|`g4f.Provider.NexraSDTurbo`|✔|❌|❌|✔||
80
77
|[openrouter.ai](https://openrouter.ai)|`g4f.Provider.OpenRouter`|✔|❌|?|?||❌|
81
78
|[platform.openai.com](https://platform.openai.com/)|`g4f.Provider.Openai`|✔|❌|✔|||✔|
82
79
|[chatgpt.com](https://chatgpt.com/)|`g4f.Provider.OpenaiChat`|`gpt-4o, gpt-4o-mini, gpt-4`|❌|✔|||✔|
@@ -109,19 +106,17 @@
109
106
|--|--|--|-|
110
107
|gpt-3|OpenAI|1+ Providers|[platform.openai.com](https://platform.openai.com/docs/models/gpt-base)|
111
108
|gpt-3.5-turbo|OpenAI|5+ Providers|[platform.openai.com](https://platform.openai.com/docs/models/gpt-3-5-turbo)|
112
|gpt-4|OpenAI|32+ Providers|[platform.openai.com](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4)|
113
|gpt-4-turbo|OpenAI|3+ Providers|[platform.openai.com](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4)|
114
|gpt-4o|OpenAI|7+ Providers|[platform.openai.com](https://platform.openai.com/docs/models/gpt-4o)|
115
|gpt-4o-mini|OpenAI|14+ Providers|[platform.openai.com](https://platform.openai.com/docs/models/gpt-4o-mini)|
109
|gpt-4|OpenAI|8+ Providers|[platform.openai.com](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4)|
110
|gpt-4-turbo|OpenAI|2+ Providers|[platform.openai.com](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4)|
111
|gpt-4o|OpenAI|6+ Providers|[platform.openai.com](https://platform.openai.com/docs/models/gpt-4o)|
112
|gpt-4o-mini|OpenAI|13+ Providers|[platform.openai.com](https://platform.openai.com/docs/models/gpt-4o-mini)|
116
113
|o1|OpenAI|1+ Providers|[platform.openai.com](https://openai.com/index/introducing-openai-o1-preview/)|
117
114
|o1-mini|OpenAI|1+ Providers|[platform.openai.com](https://openai.com/index/openai-o1-mini-advancing-cost-efficient-reasoning/)|
118
115
|llama-2-7b|Meta Llama|1+ Providers|[huggingface.co](https://huggingface.co/meta-llama/Llama-2-7b)|
119
116
|llama-2-13b|Meta Llama|1+ Providers|[llama.com](https://www.llama.com/llama2/)|
120
|llama-3|Meta Llama|7+ Providers|[ai.meta.com](https://ai.meta.com/blog/meta-llama-3/)|
121
117
|llama-3-8b|Meta Llama|4+ Providers|[ai.meta.com](https://ai.meta.com/blog/meta-llama-3/)|
122
118
|llama-3-70b|Meta Llama|4+ Providers|[ai.meta.com](https://ai.meta.com/blog/meta-llama-3/)|
123
|llama-3.1|Meta Llama|21+ Providers|[ai.meta.com](https://ai.meta.com/blog/meta-llama-3-1/)|
124
|llama-3.1-8b|Meta Llama|6+ Providers|[ai.meta.com](https://ai.meta.com/blog/meta-llama-3-1/)|
119
|llama-3.1-8b|Meta Llama|7+ Providers|[ai.meta.com](https://ai.meta.com/blog/meta-llama-3-1/)|
125
120
|llama-3.1-70b|Meta Llama|11+ Providers|[ai.meta.com](https://ai.meta.com/blog/meta-llama-3-1/)|
126
121
|llama-3.1-405b|Meta Llama|5+ Providers|[ai.meta.com](https://ai.meta.com/blog/meta-llama-3-1/)|
127
122
|llama-3.2-1b|Meta Llama|1+ Providers|[huggingface.co](https://huggingface.co/meta-llama/Llama-3.2-1B)|
@@ -137,22 +132,19 @@
137
132
|mixtral-8x7b-dpo|NousResearch|1+ Providers|[huggingface.co](https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO)|
138
133
|yi-34b|NousResearch|1+ Providers|[huggingface.co](https://huggingface.co/NousResearch/Nous-Hermes-2-Yi-34B)|
139
134
|hermes-3|NousResearch|1+ Providers|[huggingface.co](https://huggingface.co/NousResearch/Hermes-3-Llama-3.1-8B)|
140
|gemini|Google DeepMind|13+ Providers|[deepmind.google](http://deepmind.google/technologies/gemini/)|
135
|gemini|Google DeepMind|1+ Providers|[deepmind.google](http://deepmind.google/technologies/gemini/)|
141
136
|gemini-flash|Google DeepMind|3+ Providers|[deepmind.google](https://deepmind.google/technologies/gemini/flash/)|
142
|gemini-pro|Google DeepMind|9+ Providers|[deepmind.google](https://deepmind.google/technologies/gemini/pro/)|
137
|gemini-pro|Google DeepMind|8+ Providers|[deepmind.google](https://deepmind.google/technologies/gemini/pro/)|
143
138
|gemma-2b|Google|5+ Providers|[huggingface.co](https://huggingface.co/google/gemma-2b)|
144
139
|gemma-2b-9b|Google|1+ Providers|[huggingface.co](https://huggingface.co/google/gemma-2-9b)|
145
140
|gemma-2b-27b|Google|2+ Providers|[huggingface.co](https://huggingface.co/google/gemma-2-27b)|
146
141
|gemma-7b|Google|1+ Providers|[huggingface.co](https://huggingface.co/google/gemma-7b)|
147
142
|gemma-2|Google|2+ Providers|[huggingface.co](https://huggingface.co/blog/gemma2)|
148
143
|gemma_2_27b|Google|1+ Providers|[huggingface.co](https://huggingface.co/blog/gemma2)|
149
|claude-2|Anthropic|2+ Providers|[anthropic.com](https://www.anthropic.com/news/claude-2)|
150
144
|claude-2.1|Anthropic|1+ Providers|[anthropic.com](https://www.anthropic.com/news/claude-2)|
151
|claude-3|Anthropic|7+ Providers|[anthropic.com](https://www.anthropic.com/news/claude-3-family)|
152
145
|claude-3-haiku|Anthropic|3+ Providers|[anthropic.com](https://www.anthropic.com/news/claude-3-haiku)|
153
146
|claude-3-sonnet|Anthropic|2+ Providers|[anthropic.com](https://www.anthropic.com/news/claude-3-family)|
154
147
|claude-3-opus|Anthropic|2+ Providers|[anthropic.com](https://www.anthropic.com/news/claude-3-family)|
155
|claude-3.5|Anthropic|5+ Providers|[anthropic.com](https://www.anthropic.com/news/claude-3-5-sonnet)|
156
148
|claude-3.5-sonnet|Anthropic|4+ Providers|[anthropic.com](https://www.anthropic.com/news/claude-3-5-sonnet)|
157
149
|blackboxai|Blackbox AI|2+ Providers|[docs.blackbox.chat](https://docs.blackbox.chat/blackbox-ai-1)|
158
150
|blackboxai-pro|Blackbox AI|1+ Providers|[docs.blackbox.chat](https://docs.blackbox.chat/blackbox-ai-1)|
@@ -163,7 +155,7 @@
163
155
|dbrx-instruct|Databricks|1+ Providers|[huggingface.co](https://huggingface.co/databricks/dbrx-instruct)|
164
156
|command-r-plus|CohereForAI|1+ Providers|[docs.cohere.com](https://docs.cohere.com/docs/command-r-plus)|
165
157
|sparkdesk-v1.1|iFlytek|1+ Providers|[xfyun.cn](https://www.xfyun.cn/doc/spark/Guide.html)|
166
|qwen|Qwen|10+ Providers|[huggingface.co](https://huggingface.co/Qwen)|
158
|qwen|Qwen|1+ Providers|[huggingface.co](https://huggingface.co/Qwen)|
167
159
|qwen-1.5-0.5b|Qwen|1+ Providers|[huggingface.co](https://huggingface.co/Qwen/Qwen1.5-0.5B)|
168
160
|qwen-1.5-7b|Qwen|2+ Providers|[huggingface.co](https://huggingface.co/Qwen/Qwen1.5-7B)|
169
161
|qwen-1.5-14b|Qwen|3+ Providers|[huggingface.co](https://huggingface.co/Qwen/Qwen1.5-14B)|
@@ -201,12 +193,7 @@
201
193
### ImageModel
202
194
|Model|Base Provider|Provider|Website|
203
195
|--|--|--|-|
204
|sdxl|Stability AI|1+ Providers|[huggingface.co](https://huggingface.co/docs/diffusers/en/using-diffusers/sdxl)|
205
|sdxl-lora|Stability AI|1+ Providers|[huggingface.co](https://huggingface.co/blog/lora)|
206
|sdxl-turbo|Stability AI|1+ Providers|[huggingface.co](https://huggingface.co/stabilityai/sdxl-turbo)|
207
|sd|Stability AI|3+ Providers|[huggingface.co](https://huggingface.co/stabilityai/)|
208
|sd-1.5|Stability AI|1+ Providers|[github.com](https://github.com/Stability-AI/StableDiffusion)|
209
|sd-2.1|Stability AI|1+ Providers|[huggingface.co](https://huggingface.co/stabilityai/stable-diffusion-2-1)|
196
|sdxl|Stability AI|3+ Providers|[huggingface.co](https://huggingface.co/docs/diffusers/en/using-diffusers/sdxl)|
210
197
|sd-3|Stability AI|1+ Providers|[huggingface.co](https://huggingface.co/docs/diffusers/main/en/api/pipelines/stable_diffusion/stable_diffusion_3)|
211
198
|playground-v2.5|Playground AI|1+ Providers|[huggingface.co](https://huggingface.co/playgroundai/playground-v2.5-1024px-aesthetic)|
212
199
|flux|Black Forest Labs|2+ Providers|[github.com/black-forest-labs/flux](https://github.com/black-forest-labs/flux)|
@@ -218,11 +205,9 @@
218
205
|flux-pixel|Flux AI|1+ Providers|[]()|
219
206
|flux-4o|Flux AI|1+ Providers|[]()|
220
207
|flux-schnell|Black Forest Labs|1+ Providers|[huggingface.co](https://huggingface.co/black-forest-labs/FLUX.1-schnell)|
221
|dalle|OpenAI|4+ Providers|[openai.com](https://openai.com/index/dall-e/)|
208
|dalle|OpenAI|1+ Providers|[openai.com](https://openai.com/index/dall-e/)|
222
209
|dalle-2|OpenAI|1+ Providers|[openai.com](https://openai.com/index/dall-e-2/)|
223
210
|dalle-3|OpenAI|2+ Providers|[openai.com](https://openai.com/index/dall-e-3/)|
224
211
|dalle-mini||1+ Providers|[huggingface.co](https://huggingface.co/dalle-mini/dalle-mini)|
225
|animagine-xl|Cagliostro Research Lab|1+ Providers|[huggingface.co](https://huggingface.co/cagliostrolab/animagine-xl-3.1)|
226
|midjourney|Midjourney|1+ Providers|[docs.midjourney.com](https://docs.midjourney.com/docs/model-versions)|
227
212
|emi||1+ Providers|[]()|
228
213
|any-dark||1+ Providers|[]()|
@@ -37,7 +37,7 @@ class Airforce(AsyncGeneratorProvider, ProviderModelMixin):
37
37
'gpt-3.5-turbo',
38
38
'gpt-3.5-turbo-0125',
39
39
'gpt-3.5-turbo-1106',
40
'llama-3-70b-chat',
40
default_model,
41
41
'llama-3-70b-chat-turbo',
42
42
'llama-3-8b-chat',
43
43
'llama-3-8b-chat-turbo',
@@ -1,65 +0,0 @@
1
from __future__ import annotations
2
3
import random
4
from ..requests import StreamSession
5
6
from ..typing import AsyncResult, Messages
7
from .base_provider import AsyncGeneratorProvider, format_prompt
8
9
10
class Binjie(AsyncGeneratorProvider):
11
url = "https://chat18.aichatos8.com"
12
working = True
13
supports_gpt_4 = True
14
supports_stream = True
15
supports_system_message = True
16
supports_message_history = True
17
18
@staticmethod
19
async def create_async_generator(
20
model: str,
21
messages: Messages,
22
proxy: str = None,
23
timeout: int = 120,
24
**kwargs,
25
) -> AsyncResult:
26
async with StreamSession(
27
headers=_create_header(), proxies={"https": proxy}, timeout=timeout
28
) as session:
29
payload = _create_payload(messages, **kwargs)
30
async with session.post("https://api.binjie.fun/api/generateStream", json=payload) as response:
31
response.raise_for_status()
32
async for chunk in response.iter_content():
33
if chunk:
34
chunk = chunk.decode()
35
if "sorry, 您的ip已由于触发防滥用检测而被封禁" in chunk:
36
raise RuntimeError("IP address is blocked by abuse detection.")
37
yield chunk
38
39
40
def _create_header():
41
return {
42
"accept" : "application/json, text/plain, */*",
43
"content-type" : "application/json",
44
"origin" : "https://chat18.aichatos8.com",
45
"referer" : "https://chat18.aichatos8.com/"
46
}
47
48
49
def _create_payload(
50
messages: Messages,
51
system_message: str = "",
52
user_id: int = None,
53
**kwargs
54
):
55
if not user_id:
56
user_id = random.randint(1690000544336, 2093025544336)
57
return {
58
"prompt": format_prompt(messages),
59
"network": True,
60
"system": system_message,
61
"withoutContext": False,
62
"stream": True,
63
"userId": f"#/chat/{user_id}"
64
}
65
@@ -80,7 +80,6 @@ class Blackbox(AsyncGeneratorProvider, ProviderModelMixin):
80
80
"gpt-4o": "gpt-4o",
81
81
"gemini-pro": "gemini-pro",
82
82
'claude-sonnet-3.5': "claude-sonnet-3.5",
83
'blackboxai-pro': "blackboxai-pro",
84
83
}
85
84
86
85
model_prefixes = {
@@ -107,7 +106,6 @@ class Blackbox(AsyncGeneratorProvider, ProviderModelMixin):
107
106
108
107
model_referers = {
109
108
"blackboxai": f"{url}/?model=blackboxai",
110
"blackboxai-pro": f"{url}/?model=blackboxai-pro",
111
109
"gpt-4o": f"{url}/?model=gpt-4o",
112
110
"gemini-pro": f"{url}/?model=gemini-pro",
113
111
"claude-sonnet-3.5": f"{url}/?model=claude-sonnet-3.5"
@@ -17,10 +17,18 @@ class ChatifyAI(AsyncGeneratorProvider, ProviderModelMixin):
17
17
18
18
default_model = 'llama-3.1'
19
19
models = [default_model]
20
model_aliases = {
21
"llama-3.1-8b": "llama-3.1",
22
}
20
23
21
24
@classmethod
22
25
def get_model(cls, model: str) -> str:
23
return cls.default_model
26
if model in cls.models:
27
return model
28
elif model in cls.model_aliases:
29
return cls.model_aliases.get(model, cls.default_model)
30
else:
31
return cls.default_model
24
32
25
33
@classmethod
26
34
async def create_async_generator(
@@ -1,132 +0,0 @@
1
from __future__ import annotations
2
import base64
3
import re
4
from aiohttp import ClientSession, ClientResponseError
5
from ..typing import AsyncResult, Messages
6
from .base_provider import AsyncGeneratorProvider, ProviderModelMixin
7
from .helper import format_prompt
8
9
class LiteIcoding(AsyncGeneratorProvider, ProviderModelMixin):
10
url = "https://lite.icoding.ink"
11
api_endpoint = "/api/v1/gpt/message"
12
working = True
13
supports_gpt_4 = True
14
default_model = "gpt-4o"
15
models = [
16
'gpt-4o',
17
'gpt-4-turbo',
18
'claude-3',
19
'claude-3.5',
20
'gemini-1.5',
21
]
22
23
model_aliases = {
24
"gpt-4o-mini": "gpt-4o",
25
"gemini-pro": "gemini-1.5",
26
}
27
28
bearer_tokens = [
29
"NWQ2OWNkMjcxYjE0NDIyNmFjMTE5OWIzYzg0OWE1NjY=",
30
]
31
current_token_index = 0
32
33
@classmethod
34
def decode_token(cls, encoded_token: str) -> str:
35
return base64.b64decode(encoded_token).decode('utf-8')
36
37
@classmethod
38
def get_next_bearer_token(cls):
39
encoded_token = cls.bearer_tokens[cls.current_token_index]
40
cls.current_token_index = (cls.current_token_index + 1) % len(cls.bearer_tokens)
41
return cls.decode_token(encoded_token)
42
43
@classmethod
44
async def create_async_generator(
45
cls,
46
model: str,
47
messages: Messages,
48
proxy: str = None,
49
**kwargs
50
) -> AsyncResult:
51
bearer_token = cls.get_next_bearer_token()
52
headers = {
53
"Accept": "*/*",
54
"Accept-Language": "en-US,en;q=0.9",
55
"Authorization": f"Bearer {bearer_token}",
56
"Connection": "keep-alive",
57
"Content-Type": "application/json;charset=utf-8",
58
"DNT": "1",
59
"Origin": cls.url,
60
"Referer": f"{cls.url}/",
61
"Sec-Fetch-Dest": "empty",
62
"Sec-Fetch-Mode": "cors",
63
"Sec-Fetch-Site": "same-origin",
64
"User-Agent": (
65
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) "
66
"Chrome/126.0.0.0 Safari/537.36"
67
),
68
"sec-ch-ua": '"Not/A)Brand";v="8", "Chromium";v="126"',
69
"sec-ch-ua-mobile": "?0",
70
"sec-ch-ua-platform": '"Linux"',
71
}
72
73
data = {
74
"model": model,
75
"chatId": "-1",
76
"messages": [
77
{
78
"role": msg["role"],
79
"content": msg["content"],
80
"time": msg.get("time", ""),
81
"attachments": msg.get("attachments", []),
82
}
83
for msg in messages
84
],
85
"plugins": [],
86
"systemPrompt": "",
87
"temperature": 0.5,
88
}
89
90
async with ClientSession(headers=headers) as session:
91
try:
92
async with session.post(
93
f"{cls.url}{cls.api_endpoint}", json=data, proxy=proxy
94
) as response:
95
response.raise_for_status()
96
buffer = ""
97
full_response = ""
98
99
def decode_content(data):
100
bytes_array = bytes([int(b, 16) ^ 255 for b in data.split()])
101
return bytes_array.decode('utf-8')
102
103
async for chunk in response.content.iter_any():
104
if chunk:
105
buffer += chunk.decode()
106
while "\n\n" in buffer:
107
part, buffer = buffer.split("\n\n", 1)
108
if part.startswith("data: "):
109
content = part[6:].strip()
110
if content and content != "[DONE]":
111
content = content.strip('"')
112
decoded_content = decode_content(content)
113
full_response += decoded_content
114
full_response = (
115
full_response.replace('""', '')
116
.replace('" "', ' ')
117
.replace("\\n\\n", "\n\n")
118
.replace("\\n", "\n")
119
.replace('\\"', '"')
120
.strip()
121
)
122
filtered_response = re.sub(r'\n---\n.*', '', full_response, flags=re.DOTALL)
123
cleaned_response = filtered_response.strip().strip('"')
124
yield cleaned_response
125
126
except ClientResponseError as e:
127
raise RuntimeError(
128
f"ClientResponseError {e.status}: {e.message}, url={e.request_info.url}, data={data}"
129
) from e
130
131
except Exception as e:
132
raise RuntimeError(f"Unexpected error: {str(e)}") from e
@@ -22,7 +22,6 @@ from .Airforce import Airforce
22
22
from .Aura import Aura
23
23
from .Bing import Bing
24
24
from .BingCreateImages import BingCreateImages
25
from .Binjie import Binjie
26
25
from .Blackbox import Blackbox
27
26
from .ChatGot import ChatGot
28
27
from .ChatGpt import ChatGpt
@@ -50,7 +49,6 @@ from .HuggingChat import HuggingChat
50
49
from .HuggingFace import HuggingFace
51
50
from .Koala import Koala
52
51
from .Liaobots import Liaobots
53
from .LiteIcoding import LiteIcoding
54
52
from .Local import Local
55
53
from .MagickPen import MagickPen
56
54
from .MetaAI import MetaAI
@@ -1,66 +0,0 @@
1
from __future__ import annotations
2
3
from aiohttp import ClientSession
4
import json
5
6
from ...typing import AsyncResult, Messages
7
from ..base_provider import AsyncGeneratorProvider, ProviderModelMixin
8
from ...image import ImageResponse
9
10
11
class NexraAnimagineXL(AsyncGeneratorProvider, ProviderModelMixin):
12
label = "Nexra Animagine XL"
13
url = "https://nexra.aryahcr.cc/documentation/midjourney/en"
14
api_endpoint = "https://nexra.aryahcr.cc/api/image/complements"
15
working = True
16
17
default_model = 'animagine-xl'
18
models = [default_model]
19
20
@classmethod
21
def get_model(cls, model: str) -> str:
22
return cls.default_model
23
24
@classmethod
25
async def create_async_generator(
26
cls,
27
model: str,
28
messages: Messages,
29
proxy: str = None,
30
response: str = "url", # base64 or url
31
**kwargs
32
) -> AsyncResult:
33
# Retrieve the correct model to use
34
model = cls.get_model(model)
35
36
# Format the prompt from the messages
37
prompt = messages[0]['content']
38
39
headers = {
40
"Content-Type": "application/json"
41
}
42
payload = {
43
"prompt": prompt,
44
"model": model,
45
"response": response
46
}
47
48
async with ClientSession(headers=headers) as session:
49
async with session.post(cls.api_endpoint, json=payload, proxy=proxy) as response:
50
response.raise_for_status()
51
text_data = await response.text()
52
53
try:
54
# Parse the JSON response
55
json_start = text_data.find('{')
56
json_data = text_data[json_start:]
57
data = json.loads(json_data)
58
59
# Check if the response contains images
60
if 'images' in data and len(data['images']) > 0:
61
image_url = data['images'][0]
62
yield ImageResponse(image_url, prompt)
63
else:
64
yield ImageResponse("No images found in the response.", prompt)
65
except json.JSONDecodeError:
66
yield ImageResponse("Failed to parse JSON. Response might not be in JSON format.", prompt)
@@ -13,7 +13,7 @@ class NexraBing(AsyncGeneratorProvider, ProviderModelMixin):
13
13
label = "Nexra Bing"
14
14
url = "https://nexra.aryahcr.cc/documentation/bing/en"
15
15
api_endpoint = "https://nexra.aryahcr.cc/api/chat/complements"
16
working = True
16
working = False
17
17
supports_gpt_4 = False
18
18
supports_stream = False
19
19
@@ -11,7 +11,7 @@ class NexraGeminiPro(AsyncGeneratorProvider, ProviderModelMixin):
11
11
label = "Nexra Gemini PRO"
12
12
url = "https://nexra.aryahcr.cc/documentation/gemini-pro/en"
13
13
api_endpoint = "https://nexra.aryahcr.cc/api/chat/complements"
14
working = True
14
working = False
15
15
supports_stream = True
16
16
17
17
default_model = 'gemini-pro'
@@ -17,10 +17,18 @@ class NexraLLaMA31(AsyncGeneratorProvider, ProviderModelMixin):
17
17
18
18
default_model = 'llama-3.1'
19
19
models = [default_model]
20
model_aliases = {
21
"llama-3.1-8b": "llama-3.1",
22
}
20
23
21
24
@classmethod
22
25
def get_model(cls, model: str) -> str:
23
return cls.default_model
26
if model in cls.models:
27
return model
28
elif model in cls.model_aliases:
29
return cls.model_aliases.get(model, cls.default_model)
30
else:
31
return cls.default_model
24
32
25
33
@classmethod
26
34
async def create_async_generator(
@@ -12,7 +12,7 @@ class NexraMidjourney(AsyncGeneratorProvider, ProviderModelMixin):
12
12
label = "Nexra Midjourney"
13
13
url = "https://nexra.aryahcr.cc/documentation/midjourney/en"
14
14
api_endpoint = "https://nexra.aryahcr.cc/api/image/complements"
15
working = True
15
working = False
16
16
17
17
default_model = 'midjourney'
18
18
models = [default_model]