models.py 20 KB

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