models.py 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859
  1. from __future__ import annotations
  2. from dataclasses import dataclass
  3. from .Provider import IterListProvider, ProviderType
  4. from .Provider import (
  5. ### no auth required ###
  6. Blackbox,
  7. BlackboxAPI,
  8. ChatGLM,
  9. ChatGptEs,
  10. Cloudflare,
  11. Copilot,
  12. DDG,
  13. DeepInfraChat,
  14. HuggingSpace,
  15. G4F,
  16. Janus_Pro_7B,
  17. Glider,
  18. ImageLabs,
  19. Jmuz,
  20. Liaobots,
  21. Mhystical,
  22. OIVSCode,
  23. PerplexityLabs,
  24. Pi,
  25. PollinationsAI,
  26. PollinationsImage,
  27. TeachAnything,
  28. Yqcloud,
  29. ### needs auth ###
  30. BingCreateImages,
  31. CopilotAccount,
  32. Gemini,
  33. GeminiPro,
  34. GigaChat,
  35. HailuoAI,
  36. HuggingChat,
  37. HuggingFace,
  38. HuggingFaceAPI,
  39. MetaAI,
  40. MicrosoftDesigner,
  41. OpenaiAccount,
  42. OpenaiChat,
  43. Reka,
  44. )
  45. @dataclass(unsafe_hash=True)
  46. class Model:
  47. """
  48. Represents a machine learning model configuration.
  49. Attributes:
  50. name (str): Name of the model.
  51. base_provider (str): Default provider for the model.
  52. best_provider (ProviderType): The preferred provider for the model, typically with retry logic.
  53. """
  54. name: str
  55. base_provider: str
  56. best_provider: ProviderType = None
  57. @staticmethod
  58. def __all__() -> list[str]:
  59. """Returns a list of all model names."""
  60. return _all_models
  61. class ImageModel(Model):
  62. pass
  63. class VisionModel(Model):
  64. pass
  65. ### Default ###
  66. default = Model(
  67. name = "",
  68. base_provider = "",
  69. best_provider = IterListProvider([
  70. DDG,
  71. Blackbox,
  72. Copilot,
  73. DeepInfraChat,
  74. ChatGptEs,
  75. PollinationsAI,
  76. OIVSCode,
  77. OpenaiChat,
  78. Jmuz,
  79. Cloudflare,
  80. ])
  81. )
  82. default_vision = Model(
  83. name = "",
  84. base_provider = "",
  85. best_provider = IterListProvider([
  86. Blackbox,
  87. OIVSCode,
  88. DeepInfraChat,
  89. PollinationsAI,
  90. HuggingSpace,
  91. GeminiPro,
  92. HuggingFaceAPI,
  93. CopilotAccount,
  94. OpenaiAccount,
  95. Gemini,
  96. ], shuffle=False)
  97. )
  98. ###################
  99. ### Text/Vision ###
  100. ###################
  101. ### OpenAI ###
  102. # gpt-4
  103. gpt_4 = Model(
  104. name = 'gpt-4',
  105. base_provider = 'OpenAI',
  106. best_provider = IterListProvider([Blackbox, DDG, Jmuz, ChatGptEs, PollinationsAI, Yqcloud, Copilot, OpenaiChat, Liaobots, Mhystical])
  107. )
  108. # gpt-4o
  109. gpt_4o = VisionModel(
  110. name = 'gpt-4o',
  111. base_provider = 'OpenAI',
  112. best_provider = IterListProvider([Blackbox, Jmuz, ChatGptEs, PollinationsAI, Copilot, Liaobots, OpenaiChat])
  113. )
  114. gpt_4o_mini = Model(
  115. name = 'gpt-4o-mini',
  116. base_provider = 'OpenAI',
  117. best_provider = IterListProvider([DDG, ChatGptEs, Jmuz, PollinationsAI, OIVSCode, Liaobots, OpenaiChat])
  118. )
  119. # o1
  120. o1 = Model(
  121. name = 'o1',
  122. base_provider = 'OpenAI',
  123. best_provider = OpenaiAccount
  124. )
  125. o1_preview = Model(
  126. name = 'o1-preview',
  127. base_provider = 'OpenAI',
  128. best_provider = Liaobots
  129. )
  130. o1_mini = Model(
  131. name = 'o1-mini',
  132. base_provider = 'OpenAI',
  133. best_provider = Liaobots
  134. )
  135. # o3
  136. o3_mini = Model(
  137. name = 'o3-mini',
  138. base_provider = 'OpenAI',
  139. best_provider = IterListProvider([DDG, Blackbox])
  140. )
  141. ### GigaChat ###
  142. gigachat = Model(
  143. name = 'GigaChat:latest',
  144. base_provider = 'gigachat',
  145. best_provider = GigaChat
  146. )
  147. ### Meta ###
  148. meta = Model(
  149. name = "meta-ai",
  150. base_provider = "Meta",
  151. best_provider = MetaAI
  152. )
  153. # llama 2
  154. llama_2_7b = Model(
  155. name = "llama-2-7b",
  156. base_provider = "Meta Llama",
  157. best_provider = Cloudflare
  158. )
  159. # llama 3
  160. llama_3_8b = Model(
  161. name = "llama-3-8b",
  162. base_provider = "Meta Llama",
  163. best_provider = IterListProvider([Jmuz, Cloudflare])
  164. )
  165. llama_3_70b = Model(
  166. name = "llama-3-70b",
  167. base_provider = "Meta Llama",
  168. best_provider = Jmuz
  169. )
  170. # llama 3.1
  171. llama_3_1_8b = Model(
  172. name = "llama-3.1-8b",
  173. base_provider = "Meta Llama",
  174. best_provider = IterListProvider([Blackbox, DeepInfraChat, Glider, Jmuz, PollinationsAI, Cloudflare])
  175. )
  176. llama_3_1_70b = Model(
  177. name = "llama-3.1-70b",
  178. base_provider = "Meta Llama",
  179. best_provider = IterListProvider([Blackbox, Glider, Jmuz, TeachAnything])
  180. )
  181. llama_3_1_405b = Model(
  182. name = "llama-3.1-405b",
  183. base_provider = "Meta Llama",
  184. best_provider = IterListProvider([Blackbox, Jmuz])
  185. )
  186. # llama 3.2
  187. llama_3_2_1b = Model(
  188. name = "llama-3.2-1b",
  189. base_provider = "Meta Llama",
  190. best_provider = Cloudflare
  191. )
  192. llama_3_2_3b = Model(
  193. name = "llama-3.2-3b",
  194. base_provider = "Meta Llama",
  195. best_provider = Glider
  196. )
  197. llama_3_2_11b = VisionModel(
  198. name = "llama-3.2-11b",
  199. base_provider = "Meta Llama",
  200. best_provider = IterListProvider([Jmuz, HuggingChat, HuggingFace])
  201. )
  202. llama_3_2_90b = Model(
  203. name = "llama-3.2-90b",
  204. base_provider = "Meta Llama",
  205. best_provider = IterListProvider([DeepInfraChat, Jmuz])
  206. )
  207. # llama 3.3
  208. llama_3_3_70b = Model(
  209. name = "llama-3.3-70b",
  210. base_provider = "Meta Llama",
  211. best_provider = IterListProvider([DDG, Blackbox, DeepInfraChat, PollinationsAI, Jmuz, HuggingChat, HuggingFace])
  212. )
  213. ### Mistral ###
  214. mixtral_8x7b = Model(
  215. name = "mixtral-8x7b",
  216. base_provider = "Mistral",
  217. best_provider = Jmuz
  218. )
  219. mixtral_8x22b = Model(
  220. name = "mixtral-8x22b",
  221. base_provider = "Mistral",
  222. best_provider = DeepInfraChat
  223. )
  224. mistral_nemo = Model(
  225. name = "mistral-nemo",
  226. base_provider = "Mistral",
  227. best_provider = IterListProvider([PollinationsAI, HuggingChat, HuggingFace])
  228. )
  229. mixtral_small_24b = Model(
  230. name = "mixtral-small-24b",
  231. base_provider = "Mistral",
  232. best_provider = DDG
  233. )
  234. mixtral_small_28b = Model(
  235. name = "mixtral-small-28b",
  236. base_provider = "Mistral",
  237. best_provider = IterListProvider([Blackbox, BlackboxAPI, DeepInfraChat])
  238. )
  239. ### NousResearch ###
  240. hermes_2_dpo = Model(
  241. name = "hermes-2-dpo",
  242. base_provider = "NousResearch",
  243. best_provider = IterListProvider([Blackbox, BlackboxAPI])
  244. )
  245. ### Microsoft ###
  246. # phi
  247. phi_3_5_mini = Model(
  248. name = "phi-3.5-mini",
  249. base_provider = "Microsoft",
  250. best_provider = HuggingChat
  251. )
  252. phi_4 = Model(
  253. name = "phi-4",
  254. base_provider = "Microsoft",
  255. best_provider = DeepInfraChat
  256. )
  257. # wizardlm
  258. wizardlm_2_7b = Model(
  259. name = 'wizardlm-2-7b',
  260. base_provider = 'Microsoft',
  261. best_provider = DeepInfraChat
  262. )
  263. wizardlm_2_8x22b = Model(
  264. name = 'wizardlm-2-8x22b',
  265. base_provider = 'Microsoft',
  266. best_provider = IterListProvider([DeepInfraChat, Jmuz])
  267. )
  268. ### Google DeepMind ###
  269. # gemini
  270. gemini = Model(
  271. name = 'gemini-2.0',
  272. base_provider = 'Google',
  273. best_provider = Gemini
  274. )
  275. # gemini-exp
  276. gemini_exp = Model(
  277. name = 'gemini-exp',
  278. base_provider = 'Google',
  279. best_provider = Jmuz
  280. )
  281. # gemini-1.5
  282. gemini_1_5_flash = Model(
  283. name = 'gemini-1.5-flash',
  284. base_provider = 'Google DeepMind',
  285. best_provider = IterListProvider([Blackbox, Jmuz, GeminiPro, Liaobots])
  286. )
  287. gemini_1_5_pro = Model(
  288. name = 'gemini-1.5-pro',
  289. base_provider = 'Google DeepMind',
  290. best_provider = IterListProvider([Blackbox, Jmuz, GeminiPro, Liaobots])
  291. )
  292. # gemini-2.0
  293. gemini_2_0_flash = Model(
  294. name = 'gemini-2.0-flash',
  295. base_provider = 'Google DeepMind',
  296. best_provider = IterListProvider([Blackbox, PollinationsAI, GeminiPro, Liaobots])
  297. )
  298. gemini_2_0_flash_thinking = Model(
  299. name = 'gemini-2.0-flash-thinking',
  300. base_provider = 'Google DeepMind',
  301. best_provider = Liaobots
  302. )
  303. ### Anthropic ###
  304. # claude 3
  305. claude_3_haiku = Model(
  306. name = 'claude-3-haiku',
  307. base_provider = 'Anthropic',
  308. best_provider = IterListProvider([DDG, Jmuz])
  309. )
  310. claude_3_sonnet = Model(
  311. name = 'claude-3-sonnet',
  312. base_provider = 'Anthropic',
  313. best_provider = Liaobots
  314. )
  315. claude_3_opus = Model(
  316. name = 'claude-3-opus',
  317. base_provider = 'Anthropic',
  318. best_provider = IterListProvider([Jmuz, Liaobots])
  319. )
  320. # claude 3.5
  321. claude_3_5_sonnet = Model(
  322. name = 'claude-3.5-sonnet',
  323. base_provider = 'Anthropic',
  324. best_provider = IterListProvider([Jmuz, Liaobots])
  325. )
  326. ### Reka AI ###
  327. reka_core = Model(
  328. name = 'reka-core',
  329. base_provider = 'Reka AI',
  330. best_provider = Reka
  331. )
  332. ### Blackbox AI ###
  333. blackboxai = Model(
  334. name = 'blackboxai',
  335. base_provider = 'Blackbox AI',
  336. best_provider = Blackbox
  337. )
  338. blackboxai_pro = Model(
  339. name = 'blackboxai-pro',
  340. base_provider = 'Blackbox AI',
  341. best_provider = Blackbox
  342. )
  343. ### CohereForAI ###
  344. command_r = Model(
  345. name = 'command-r',
  346. base_provider = 'CohereForAI',
  347. best_provider = HuggingSpace
  348. )
  349. command_r_plus = Model(
  350. name = 'command-r-plus',
  351. base_provider = 'CohereForAI',
  352. best_provider = IterListProvider([HuggingSpace, HuggingChat])
  353. )
  354. command_r7b = Model(
  355. name = 'command-r7b',
  356. base_provider = 'CohereForAI',
  357. best_provider = HuggingSpace
  358. )
  359. ### Qwen ###
  360. qwen_1_5_7b = Model(
  361. name = 'qwen-1.5-7b',
  362. base_provider = 'Qwen',
  363. best_provider = Cloudflare
  364. )
  365. qwen_2_72b = Model(
  366. name = 'qwen-2-72b',
  367. base_provider = 'Qwen',
  368. best_provider = IterListProvider([DeepInfraChat, HuggingSpace])
  369. )
  370. qwen_2_vl_7b = VisionModel(
  371. name = "qwen-2-vl-7b",
  372. base_provider = 'Qwen',
  373. best_provider = HuggingFaceAPI
  374. )
  375. qwen_2_5_72b = Model(
  376. name = 'qwen-2.5-72b',
  377. base_provider = 'Qwen',
  378. best_provider = Jmuz
  379. )
  380. qwen_2_5_coder_32b = Model(
  381. name = 'qwen-2.5-coder-32b',
  382. base_provider = 'Qwen',
  383. best_provider = IterListProvider([PollinationsAI, Jmuz, HuggingChat])
  384. )
  385. qwen_2_5_1m = Model(
  386. name = 'qwen-2.5-1m-demo',
  387. base_provider = 'Qwen',
  388. best_provider = HuggingSpace
  389. )
  390. ### qwq/qvq ###
  391. qwq_32b = Model(
  392. name = 'qwq-32b',
  393. base_provider = 'Qwen',
  394. best_provider = IterListProvider([Blackbox, BlackboxAPI, Jmuz, HuggingChat])
  395. )
  396. qvq_72b = VisionModel(
  397. name = 'qvq-72b',
  398. base_provider = 'Qwen',
  399. best_provider = HuggingSpace
  400. )
  401. ### Inflection ###
  402. pi = Model(
  403. name = 'pi',
  404. base_provider = 'Inflection',
  405. best_provider = Pi
  406. )
  407. ### DeepSeek ###
  408. deepseek_chat = Model(
  409. name = 'deepseek-chat',
  410. base_provider = 'DeepSeek',
  411. best_provider = IterListProvider([Blackbox, BlackboxAPI, Jmuz, PollinationsAI])
  412. )
  413. deepseek_v3 = Model(
  414. name = 'deepseek-v3',
  415. base_provider = 'DeepSeek',
  416. best_provider = IterListProvider([Blackbox, BlackboxAPI, DeepInfraChat, Liaobots])
  417. )
  418. deepseek_r1 = Model(
  419. name = 'deepseek-r1',
  420. base_provider = 'DeepSeek',
  421. best_provider = IterListProvider([Blackbox, BlackboxAPI, DeepInfraChat, Glider, PollinationsAI, Jmuz, Liaobots, HuggingChat, HuggingFace])
  422. )
  423. janus_pro_7b = VisionModel(
  424. name = Janus_Pro_7B.default_model,
  425. base_provider = 'DeepSeek',
  426. best_provider = IterListProvider([Janus_Pro_7B, G4F])
  427. )
  428. ### x.ai ###
  429. grok_2 = Model(
  430. name = 'grok-2',
  431. base_provider = 'x.ai',
  432. best_provider = Liaobots
  433. )
  434. ### Perplexity AI ###
  435. sonar = Model(
  436. name = 'sonar',
  437. base_provider = 'Perplexity AI',
  438. best_provider = PerplexityLabs
  439. )
  440. sonar_pro = Model(
  441. name = 'sonar-pro',
  442. base_provider = 'Perplexity AI',
  443. best_provider = PerplexityLabs
  444. )
  445. sonar_reasoning = Model(
  446. name = 'sonar-reasoning',
  447. base_provider = 'Perplexity AI',
  448. best_provider = PerplexityLabs
  449. )
  450. sonar_reasoning_pro = Model(
  451. name = 'sonar-reasoning-pro',
  452. base_provider = 'Perplexity AI',
  453. best_provider = PerplexityLabs
  454. )
  455. ### Nvidia ###
  456. nemotron_70b = Model(
  457. name = 'nemotron-70b',
  458. base_provider = 'Nvidia',
  459. best_provider = IterListProvider([HuggingChat, HuggingFace])
  460. )
  461. ### Databricks ###
  462. dbrx_instruct = Model(
  463. name = 'dbrx-instruct',
  464. base_provider = 'Databricks',
  465. best_provider = IterListProvider([Blackbox, BlackboxAPI, DeepInfraChat])
  466. )
  467. ### THUDM ###
  468. glm_4 = Model(
  469. name = 'glm-4',
  470. base_provider = 'THUDM',
  471. best_provider = ChatGLM
  472. )
  473. ### MiniMax ###
  474. mini_max = Model(
  475. name = "MiniMax",
  476. base_provider = "MiniMax",
  477. best_provider = HailuoAI
  478. )
  479. ### 01-ai ###
  480. yi_34b = Model(
  481. name = "yi-34b",
  482. base_provider = "01-ai",
  483. best_provider = DeepInfraChat
  484. )
  485. ### Cognitive Computations ###
  486. dolphin_2_6 = Model(
  487. name = "dolphin-2.6",
  488. base_provider = "Cognitive Computations",
  489. best_provider = DeepInfraChat
  490. )
  491. dolphin_2_9 = Model(
  492. name = "dolphin-2.9",
  493. base_provider = "Cognitive Computations",
  494. best_provider = DeepInfraChat
  495. )
  496. ### DeepInfra ###
  497. airoboros_70b = Model(
  498. name = "airoboros-70b",
  499. base_provider = "DeepInfra",
  500. best_provider = DeepInfraChat
  501. )
  502. ### Lizpreciatior ###
  503. lzlv_70b = Model(
  504. name = "lzlv-70b",
  505. base_provider = "Lizpreciatior",
  506. best_provider = DeepInfraChat
  507. )
  508. ### OpenBMB ###
  509. minicpm_2_5 = Model(
  510. name = "minicpm-2.5",
  511. base_provider = "OpenBMB",
  512. best_provider = DeepInfraChat
  513. )
  514. ### Uncensored AI ###
  515. evil = Model(
  516. name = 'evil',
  517. base_provider = 'Evil Mode - Experimental',
  518. best_provider = PollinationsAI
  519. )
  520. #############
  521. ### Image ###
  522. #############
  523. ### Stability AI ###
  524. sdxl_turbo = ImageModel(
  525. name = 'sdxl-turbo',
  526. base_provider = 'Stability AI',
  527. best_provider = IterListProvider([PollinationsImage, ImageLabs])
  528. )
  529. sd_3_5 = ImageModel(
  530. name = 'sd-3.5',
  531. base_provider = 'Stability AI',
  532. best_provider = HuggingSpace
  533. )
  534. ### Black Forest Labs ###
  535. flux = ImageModel(
  536. name = 'flux',
  537. base_provider = 'Black Forest Labs',
  538. best_provider = IterListProvider([Blackbox, PollinationsImage, HuggingSpace])
  539. )
  540. flux_pro = ImageModel(
  541. name = 'flux-pro',
  542. base_provider = 'Black Forest Labs',
  543. best_provider = PollinationsImage
  544. )
  545. flux_dev = ImageModel(
  546. name = 'flux-dev',
  547. base_provider = 'Black Forest Labs',
  548. best_provider = IterListProvider([PollinationsImage, HuggingSpace, HuggingChat, HuggingFace])
  549. )
  550. flux_schnell = ImageModel(
  551. name = 'flux-schnell',
  552. base_provider = 'Black Forest Labs',
  553. best_provider = IterListProvider([PollinationsImage, HuggingSpace, HuggingChat, HuggingFace])
  554. )
  555. ### OpenAI ###
  556. dall_e_3 = ImageModel(
  557. name = 'dall-e-3',
  558. base_provider = 'OpenAI',
  559. best_provider = IterListProvider([PollinationsImage, CopilotAccount, OpenaiAccount, MicrosoftDesigner, BingCreateImages])
  560. )
  561. ### Midjourney ###
  562. midjourney = ImageModel(
  563. name = 'midjourney',
  564. base_provider = 'Midjourney',
  565. best_provider = PollinationsImage
  566. )
  567. class ModelUtils:
  568. """
  569. Utility class for mapping string identifiers to Model instances.
  570. Attributes:
  571. convert (dict[str, Model]): Dictionary mapping model string identifiers to Model instances.
  572. """
  573. convert: dict[str, Model] = {
  574. ############
  575. ### Text ###
  576. ############
  577. ### OpenAI ###
  578. # gpt-4
  579. gpt_4.name: gpt_4,
  580. # gpt-4o
  581. gpt_4o.name: gpt_4o,
  582. gpt_4o_mini.name: gpt_4o_mini,
  583. # o1
  584. o1.name: o1,
  585. o1_preview.name: o1_preview,
  586. o1_mini.name: o1_mini,
  587. # o3
  588. o3_mini.name: o3_mini,
  589. ### Meta ###
  590. meta.name: meta,
  591. # llama-2
  592. llama_2_7b.name: llama_2_7b,
  593. # llama-3
  594. llama_3_8b.name: llama_3_8b,
  595. llama_3_70b.name: llama_3_70b,
  596. # llama-3.1
  597. llama_3_1_8b.name: llama_3_1_8b,
  598. llama_3_1_70b.name: llama_3_1_70b,
  599. llama_3_1_405b.name: llama_3_1_405b,
  600. # llama-3.2
  601. llama_3_2_1b.name: llama_3_2_1b,
  602. llama_3_2_3b.name: llama_3_2_3b,
  603. llama_3_2_11b.name: llama_3_2_11b,
  604. llama_3_2_90b.name: llama_3_2_90b,
  605. # llama-3.3
  606. llama_3_3_70b.name: llama_3_3_70b,
  607. ### Mistral ###
  608. mixtral_8x7b.name: mixtral_8x7b,
  609. mixtral_8x22b.name: mixtral_8x22b,
  610. mistral_nemo.name: mistral_nemo,
  611. mixtral_small_24b.name: mixtral_small_24b,
  612. mixtral_small_28b.name: mixtral_small_28b,
  613. ### NousResearch ###
  614. hermes_2_dpo.name: hermes_2_dpo,
  615. ### Microsoft ###
  616. # phi
  617. phi_3_5_mini.name: phi_3_5_mini,
  618. phi_4.name: phi_4,
  619. # wizardlm
  620. wizardlm_2_7b.name: wizardlm_2_7b,
  621. wizardlm_2_8x22b.name: wizardlm_2_8x22b,
  622. ### Google ###
  623. ### Gemini
  624. "gemini": gemini,
  625. gemini.name: gemini,
  626. gemini_exp.name: gemini_exp,
  627. gemini_1_5_pro.name: gemini_1_5_pro,
  628. gemini_1_5_flash.name: gemini_1_5_flash,
  629. gemini_2_0_flash.name: gemini_2_0_flash,
  630. gemini_2_0_flash_thinking.name: gemini_2_0_flash_thinking,
  631. ### Anthropic ###
  632. # claude 3
  633. claude_3_opus.name: claude_3_opus,
  634. claude_3_sonnet.name: claude_3_sonnet,
  635. claude_3_haiku.name: claude_3_haiku,
  636. # claude 3.5
  637. claude_3_5_sonnet.name: claude_3_5_sonnet,
  638. ### Reka AI ###
  639. reka_core.name: reka_core,
  640. ### Blackbox AI ###
  641. blackboxai.name: blackboxai,
  642. blackboxai_pro.name: blackboxai_pro,
  643. ### CohereForAI ###
  644. command_r.name: command_r,
  645. command_r_plus.name: command_r_plus,
  646. command_r7b.name: command_r7b,
  647. ### GigaChat ###
  648. gigachat.name: gigachat,
  649. ### Qwen ###
  650. qwen_1_5_7b.name: qwen_1_5_7b,
  651. qwen_2_72b.name: qwen_2_72b,
  652. qwen_2_vl_7b.name: qwen_2_vl_7b,
  653. qwen_2_5_72b.name: qwen_2_5_72b,
  654. qwen_2_5_coder_32b.name: qwen_2_5_coder_32b,
  655. qwen_2_5_1m.name: qwen_2_5_1m,
  656. # qwq/qvq
  657. qwq_32b.name: qwq_32b,
  658. qvq_72b.name: qvq_72b,
  659. ### Inflection ###
  660. pi.name: pi,
  661. ### x.ai ###
  662. grok_2.name: grok_2,
  663. ### Perplexity AI ###
  664. sonar.name: sonar,
  665. sonar_pro.name: sonar_pro,
  666. sonar_reasoning.name: sonar_reasoning,
  667. sonar_reasoning_pro.name: sonar_reasoning_pro,
  668. ### DeepSeek ###
  669. deepseek_chat.name: deepseek_chat,
  670. deepseek_v3.name: deepseek_v3,
  671. deepseek_r1.name: deepseek_r1,
  672. nemotron_70b.name: nemotron_70b, ### Nvidia ###
  673. dbrx_instruct.name: dbrx_instruct, ### Databricks ###
  674. glm_4.name: glm_4, ### THUDM ###
  675. mini_max.name: mini_max, ## MiniMax ###
  676. yi_34b.name: yi_34b, ## 01-ai ###
  677. ### Cognitive Computations ###
  678. dolphin_2_6.name: dolphin_2_6,
  679. dolphin_2_9.name: dolphin_2_9,
  680. airoboros_70b.name: airoboros_70b, ### DeepInfra ###
  681. lzlv_70b.name: lzlv_70b, ### Lizpreciatior ###
  682. minicpm_2_5.name: minicpm_2_5, ### OpenBMB ###
  683. evil.name: evil, ### Uncensored AI ###
  684. #############
  685. ### Image ###
  686. #############
  687. ### Stability AI ###
  688. sdxl_turbo.name: sdxl_turbo,
  689. sd_3_5.name: sd_3_5,
  690. ### Flux AI ###
  691. flux.name: flux,
  692. flux_pro.name: flux_pro,
  693. flux_dev.name: flux_dev,
  694. flux_schnell.name: flux_schnell,
  695. ### OpenAI ###
  696. dall_e_3.name: dall_e_3,
  697. ### Midjourney ###
  698. midjourney.name: midjourney,
  699. }
  700. demo_models = {
  701. "default": [llama_3_2_11b, [HuggingFace]],
  702. qwen_2_vl_7b.name: [qwen_2_vl_7b, [HuggingFaceAPI]],
  703. deepseek_r1.name: [deepseek_r1, [HuggingFace, PollinationsAI]],
  704. janus_pro_7b.name: [janus_pro_7b, [HuggingSpace, G4F]],
  705. command_r.name: [command_r, [HuggingSpace]],
  706. command_r_plus.name: [command_r_plus, [HuggingSpace]],
  707. command_r7b.name: [command_r7b, [HuggingSpace]],
  708. qwen_2_5_coder_32b.name: [qwen_2_5_coder_32b, [HuggingFace]],
  709. qwq_32b.name: [qwq_32b, [HuggingFace]],
  710. llama_3_3_70b.name: [llama_3_3_70b, [HuggingFace]],
  711. sd_3_5.name: [sd_3_5, [HuggingSpace, HuggingFace]],
  712. flux_dev.name: [flux_dev, [PollinationsImage, HuggingSpace, HuggingFace, G4F]],
  713. flux_schnell.name: [flux_schnell, [PollinationsImage, HuggingFace, HuggingSpace, G4F]],
  714. }
  715. # Create a list of all models and his providers
  716. __models__ = {
  717. model.name: (model, providers)
  718. for model, providers in [
  719. (model, [provider for provider in model.best_provider.providers if provider.working]
  720. if isinstance(model.best_provider, IterListProvider)
  721. else [model.best_provider]
  722. if model.best_provider is not None and model.best_provider.working
  723. else [])
  724. for model in ModelUtils.convert.values()]
  725. if providers
  726. }
  727. _all_models = list(__models__.keys())