返回提交历史
Modified
g4f/models.py
+274
-107
XFEstudio/gpt4free
Add files via upload
ebea37c2
代码差异
1 个文件
+274
-107
@@ -4,30 +4,34 @@ from dataclasses import dataclass
4
4
5
5
from .Provider import IterListProvider, ProviderType
6
6
from .Provider import (
7
Aichatos,
8
Bing,
9
Blackbox,
10
ChatgptAi,
11
ChatgptNext,
12
Cnote,
13
DeepInfra,
14
Feedough,
15
FreeGpt,
16
Gemini,
17
GeminiPro,
18
GigaChat,
19
HuggingChat,
20
HuggingFace,
21
Koala,
22
Liaobots,
23
MetaAI,
24
OpenaiChat,
25
PerplexityLabs,
26
Replicate,
27
Pi,
28
Vercel,
29
You,
30
Reka
7
AI365VIP,
8
Bing,
9
Blackbox,
10
Chatgpt4o,
11
ChatgptFree,
12
DDG,
13
DeepInfra,
14
DeepInfraImage,
15
FreeChatgpt,
16
FreeGpt,
17
Gemini,
18
GeminiPro,
19
GeminiProChat,
20
GigaChat,
21
HuggingChat,
22
HuggingFace,
23
Koala,
24
Liaobots,
25
MetaAI,
26
OpenaiChat,
27
PerplexityLabs,
28
Pi,
29
Pizzagpt,
30
Reka,
31
Replicate,
32
ReplicateHome,
33
Vercel,
34
You,
31
35
)
32
36
33
37
@dataclass(unsafe_hash=True)
@@ -54,9 +58,15 @@ default = Model(
54
58
base_provider = "",
55
59
best_provider = IterListProvider([
56
60
Bing,
57
ChatgptAi,
58
61
You,
59
62
OpenaiChat,
63
FreeChatgpt,
64
AI365VIP,
65
Chatgpt4o,
66
DDG,
67
ChatgptFree,
68
Koala,
69
Pizzagpt,
60
70
])
61
71
)
62
72
@@ -67,28 +77,58 @@ gpt_35_long = Model(
67
77
best_provider = IterListProvider([
68
78
FreeGpt,
69
79
You,
70
ChatgptNext,
71
80
OpenaiChat,
72
81
Koala,
82
ChatgptFree,
83
FreeChatgpt,
84
DDG,
85
AI365VIP,
86
Pizzagpt,
73
87
])
74
88
)
75
89
76
# GPT-3.5 / GPT-4
90
############
91
### Text ###
92
############
93
94
### OpenAI ###
95
### GPT-3.5 / GPT-4 ###
96
# gpt-3.5
77
97
gpt_35_turbo = Model(
78
98
name = 'gpt-3.5-turbo',
79
99
base_provider = 'openai',
80
100
best_provider = IterListProvider([
81
101
FreeGpt,
82
102
You,
83
ChatgptNext,
84
103
Koala,
85
104
OpenaiChat,
86
Aichatos,
87
Cnote,
88
Feedough,
105
ChatgptFree,
106
FreeChatgpt,
107
DDG,
108
AI365VIP,
109
Pizzagpt,
89
110
])
90
111
)
91
112
113
gpt_35_turbo_16k = Model(
114
name = 'gpt-3.5-turbo-16k',
115
base_provider = 'openai',
116
best_provider = gpt_35_long.best_provider
117
)
118
119
gpt_35_turbo_16k_0613 = Model(
120
name = 'gpt-3.5-turbo-16k-0613',
121
base_provider = 'openai',
122
best_provider = gpt_35_long.best_provider
123
)
124
125
gpt_35_turbo_0613 = Model(
126
name = 'gpt-3.5-turbo-0613',
127
base_provider = 'openai',
128
best_provider = gpt_35_turbo.best_provider
129
)
130
131
# gpt-4
92
132
gpt_4 = Model(
93
133
name = 'gpt-4',
94
134
base_provider = 'openai',
@@ -97,12 +137,22 @@ gpt_4 = Model(
97
137
])
98
138
)
99
139
100
gpt_4o = Model(
101
name = 'gpt-4o',
140
gpt_4_0613 = Model(
141
name = 'gpt-4-0613',
102
142
base_provider = 'openai',
103
best_provider = IterListProvider([
104
You, Liaobots
105
])
143
best_provider = gpt_4.best_provider
144
)
145
146
gpt_4_32k = Model(
147
name = 'gpt-4-32k',
148
base_provider = 'openai',
149
best_provider = gpt_4.best_provider
150
)
151
152
gpt_4_32k_0613 = Model(
153
name = 'gpt-4-32k-0613',
154
base_provider = 'openai',
155
best_provider = gpt_4.best_provider
106
156
)
107
157
108
158
gpt_4_turbo = Model(
@@ -111,18 +161,36 @@ gpt_4_turbo = Model(
111
161
best_provider = Bing
112
162
)
113
163
164
gpt_4o = Model(
165
name = 'gpt-4o',
166
base_provider = 'openai',
167
best_provider = IterListProvider([
168
You, Liaobots, Chatgpt4o, AI365VIP
169
])
170
)
171
172
173
### GigaChat ###
114
174
gigachat = Model(
115
175
name = 'GigaChat:latest',
116
176
base_provider = 'gigachat',
117
177
best_provider = GigaChat
118
178
)
119
179
180
181
### Meta ###
120
182
meta = Model(
121
183
name = "meta",
122
184
base_provider = "meta",
123
185
best_provider = MetaAI
124
186
)
125
187
188
llama_2_70b_chat = Model(
189
name = "meta/llama-2-70b-chat",
190
base_provider = "meta",
191
best_provider = IterListProvider([ReplicateHome])
192
)
193
126
194
llama3_8b_instruct = Model(
127
195
name = "meta-llama/Meta-Llama-3-8B-Instruct",
128
196
base_provider = "meta",
@@ -132,7 +200,7 @@ llama3_8b_instruct = Model(
132
200
llama3_70b_instruct = Model(
133
201
name = "meta-llama/Meta-Llama-3-70B-Instruct",
134
202
base_provider = "meta",
135
best_provider = IterListProvider([DeepInfra, PerplexityLabs, Replicate])
203
best_provider = IterListProvider([DeepInfra, PerplexityLabs, Replicate, HuggingChat, DDG])
136
204
)
137
205
138
206
codellama_34b_instruct = Model(
@@ -144,35 +212,77 @@ codellama_34b_instruct = Model(
144
212
codellama_70b_instruct = Model(
145
213
name = "codellama/CodeLlama-70b-Instruct-hf",
146
214
base_provider = "meta",
147
best_provider = IterListProvider([DeepInfra, PerplexityLabs])
215
best_provider = IterListProvider([DeepInfra])
148
216
)
149
217
150
# Mistral
218
219
### Mistral ###
151
220
mixtral_8x7b = Model(
152
221
name = "mistralai/Mixtral-8x7B-Instruct-v0.1",
153
222
base_provider = "huggingface",
154
best_provider = IterListProvider([DeepInfra, HuggingFace, PerplexityLabs])
155
)
156
157
mistral_7b = Model(
158
name = "mistralai/Mistral-7B-Instruct-v0.1",
159
base_provider = "huggingface",
160
best_provider = IterListProvider([HuggingChat, HuggingFace, PerplexityLabs])
223
best_provider = IterListProvider([DeepInfra, HuggingFace, PerplexityLabs, HuggingChat, DDG])
161
224
)
162
225
163
226
mistral_7b_v02 = Model(
164
227
name = "mistralai/Mistral-7B-Instruct-v0.2",
165
228
base_provider = "huggingface",
166
best_provider = IterListProvider([DeepInfra, HuggingFace, PerplexityLabs])
229
best_provider = IterListProvider([DeepInfra, HuggingFace, HuggingChat, ReplicateHome])
230
)
231
232
233
### NousResearch ###
234
Nous_Hermes_2_Mixtral_8x7B_DPO = Model(
235
name = "NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO",
236
base_provider = "NousResearch",
237
best_provider = IterListProvider([HuggingFace, HuggingChat])
238
)
239
240
241
### 01-ai ###
242
Yi_1_5_34B_Chat = Model(
243
name = "01-ai/Yi-1.5-34B-Chat",
244
base_provider = "01-ai",
245
best_provider = IterListProvider([HuggingFace, HuggingChat])
246
)
247
248
249
### Microsoft ###
250
Phi_3_mini_4k_instruct = Model(
251
name = "microsoft/Phi-3-mini-4k-instruct",
252
base_provider = "Microsoft",
253
best_provider = IterListProvider([HuggingFace, HuggingChat])
167
254
)
168
255
169
# Bard
256
257
### Google ###
258
# gemini
170
259
gemini = Model(
171
260
name = 'gemini',
172
base_provider = 'google',
261
base_provider = 'Google',
173
262
best_provider = Gemini
174
263
)
175
264
265
gemini_pro = Model(
266
name = 'gemini-pro',
267
base_provider = 'Google',
268
best_provider = IterListProvider([GeminiPro, You, GeminiProChat])
269
)
270
271
# gemma
272
gemma_2_9b_it = Model(
273
name = 'gemma-2-9b-it',
274
base_provider = 'Google',
275
best_provider = IterListProvider([PerplexityLabs])
276
)
277
278
gemma_2_27b_it = Model(
279
name = 'gemma-2-27b-it',
280
base_provider = 'Google',
281
best_provider = IterListProvider([PerplexityLabs])
282
)
283
284
285
### Anthropic ###
176
286
claude_v2 = Model(
177
287
name = 'claude-v2',
178
288
base_provider = 'anthropic',
@@ -194,79 +304,76 @@ claude_3_sonnet = Model(
194
304
claude_3_haiku = Model(
195
305
name = 'claude-3-haiku',
196
306
base_provider = 'anthropic',
197
best_provider = None
307
best_provider = IterListProvider([DDG, AI365VIP])
198
308
)
199
309
200
gpt_35_turbo_16k = Model(
201
name = 'gpt-3.5-turbo-16k',
202
base_provider = 'openai',
203
best_provider = gpt_35_long.best_provider
204
)
205
310
206
gpt_35_turbo_16k_0613 = Model(
207
name = 'gpt-3.5-turbo-16k-0613',
208
base_provider = 'openai',
209
best_provider = gpt_35_long.best_provider
311
### Reka AI ###
312
reka_core = Model(
313
name = 'reka-core',
314
base_provider = 'Reka AI',
315
best_provider = Reka
210
316
)
211
317
212
gpt_35_turbo_0613 = Model(
213
name = 'gpt-3.5-turbo-0613',
214
base_provider = 'openai',
215
best_provider = gpt_35_turbo.best_provider
216
)
217
318
218
gpt_4_0613 = Model(
219
name = 'gpt-4-0613',
220
base_provider = 'openai',
221
best_provider = gpt_4.best_provider
319
### NVIDIA ###
320
nemotron_4_340b_instruct = Model(
321
name = 'nemotron-4-340b-instruct',
322
base_provider = 'NVIDIA',
323
best_provider = IterListProvider([PerplexityLabs])
222
324
)
223
325
224
gpt_4_32k = Model(
225
name = 'gpt-4-32k',
226
base_provider = 'openai',
227
best_provider = gpt_4.best_provider
326
327
### Blackbox ###
328
blackbox = Model(
329
name = 'blackbox',
330
base_provider = 'Blackbox',
331
best_provider = Blackbox
228
332
)
229
333
230
gpt_4_32k_0613 = Model(
231
name = 'gpt-4-32k-0613',
232
base_provider = 'openai',
233
best_provider = gpt_4.best_provider
334
335
### Databricks ###
336
dbrx_instruct = Model(
337
name = 'databricks/dbrx-instruct',
338
base_provider = 'Databricks',
339
best_provider = IterListProvider([DeepInfra])
234
340
)
235
341
236
gemini_pro = Model(
237
name = 'gemini-pro',
238
base_provider = 'google',
239
best_provider = IterListProvider([GeminiPro, You])
342
343
### CohereForAI ###
344
command_r_plus = Model(
345
name = 'CohereForAI/c4ai-command-r-plus',
346
base_provider = 'CohereForAI',
347
best_provider = IterListProvider([HuggingChat])
240
348
)
241
349
350
351
### Other ###
242
352
pi = Model(
243
353
name = 'pi',
244
354
base_provider = 'inflection',
245
355
best_provider = Pi
246
356
)
247
357
248
dbrx_instruct = Model(
249
name = 'databricks/dbrx-instruct',
250
base_provider = 'mistral',
251
best_provider = IterListProvider([DeepInfra, PerplexityLabs])
252
)
253
358
254
command_r_plus = Model(
255
name = 'CohereForAI/c4ai-command-r-plus',
256
base_provider = 'mistral',
257
best_provider = IterListProvider([HuggingChat])
258
)
359
#############
360
### Image ###
361
#############
259
362
260
blackbox = Model(
261
name = 'blackbox',
262
base_provider = 'blackbox',
263
best_provider = Blackbox
363
### Stability AI ###
364
sdxl = Model(
365
name = 'stability-ai/sdxl',
366
base_provider = 'Stability AI',
367
best_provider = IterListProvider([ReplicateHome, DeepInfraImage])
368
264
369
)
265
370
266
reka_core = Model(
267
name = 'reka-core',
268
base_provider = 'Reka AI',
269
best_provider = Reka
371
### AI Forever ###
372
kandinsky_2_2 = Model(
373
name = 'ai-forever/kandinsky-2.2',
374
base_provider = 'AI Forever',
375
best_provider = IterListProvider([ReplicateHome])
376
270
377
)
271
378
272
379
class ModelUtils:
@@ -277,6 +384,13 @@ class ModelUtils:
277
384
convert (dict[str, Model]): Dictionary mapping model string identifiers to Model instances.
278
385
"""
279
386
convert: dict[str, Model] = {
387
388
############
389
### Text ###
390
############
391
392
### OpenAI ###
393
### GPT-3.5 / GPT-4 ###
280
394
# gpt-3.5
281
395
'gpt-3.5-turbo' : gpt_35_turbo,
282
396
'gpt-3.5-turbo-0613' : gpt_35_turbo_0613,
@@ -291,8 +405,12 @@ class ModelUtils:
291
405
'gpt-4-32k' : gpt_4_32k,
292
406
'gpt-4-32k-0613' : gpt_4_32k_0613,
293
407
'gpt-4-turbo' : gpt_4_turbo,
294
408
409
410
### Meta ###
295
411
"meta-ai": meta,
412
413
'llama-2-70b-chat': llama_2_70b_chat,
296
414
'llama3-8b': llama3_8b_instruct, # alias
297
415
'llama3-70b': llama3_70b_instruct, # alias
298
416
'llama3-8b-instruct' : llama3_8b_instruct,
@@ -301,30 +419,79 @@ class ModelUtils:
301
419
'codellama-34b-instruct': codellama_34b_instruct,
302
420
'codellama-70b-instruct': codellama_70b_instruct,
303
421
304
# Mistral Opensource
422
423
### Mistral (Opensource) ###
305
424
'mixtral-8x7b': mixtral_8x7b,
306
'mistral-7b': mistral_7b,
307
425
'mistral-7b-v02': mistral_7b_v02,
426
427
428
### NousResearch ###
429
'Nous-Hermes-2-Mixtral-8x7B-DPO': Nous_Hermes_2_Mixtral_8x7B_DPO,
308
430
309
# google gemini
431
432
### 01-ai ###
433
'Yi-1.5-34B-Chat': Yi_1_5_34B_Chat,
434
435
436
### Microsoft ###
437
'Phi-3-mini-4k-instruct': Phi_3_mini_4k_instruct,
438
439
440
### Google ###
441
# gemini
310
442
'gemini': gemini,
311
443
'gemini-pro': gemini_pro,
444
445
# gemma
446
'gemma-2-9b-it': gemma_2_9b_it,
447
'gemma-2-27b-it': gemma_2_27b_it,
448
312
449
313
# anthropic
450
### Anthropic ###
314
451
'claude-v2': claude_v2,
315
452
'claude-3-opus': claude_3_opus,
316
453
'claude-3-sonnet': claude_3_sonnet,
317
454
'claude-3-haiku': claude_3_haiku,
318
455
319
# reka core
456
457
### Reka AI ###
320
458
'reka': reka_core,
321
459
322
# other
323
'blackbox': blackbox,
460
461
### NVIDIA ###
462
'nemotron-4-340b-instruct': nemotron_4_340b_instruct,
463
464
465
### Blackbox ###
466
'blackbox': blackbox,
467
468
469
### CohereForAI ###
324
470
'command-r+': command_r_plus,
471
472
473
### Databricks ###
325
474
'dbrx-instruct': dbrx_instruct,
475
476
477
### GigaChat ###
326
478
'gigachat': gigachat,
327
'pi': pi
479
480
481
# Other
482
'pi': pi,
483
484
485
486
#############
487
### Image ###
488
#############
489
490
### Stability AI ###
491
'sdxl': sdxl,
492
493
### AI Forever ###
494
'kandinsky-2.2': kandinsky_2_2,
328
495
}
329
496
330
497
_all_models = list(ModelUtils.convert.keys())