models.py 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806
  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. AIChatFree,
  7. AIUncensored,
  8. AutonomousAI,
  9. Blackbox,
  10. CablyAI,
  11. ChatGLM,
  12. ChatGpt,
  13. ChatGptEs,
  14. ChatGptt,
  15. Cloudflare,
  16. Copilot,
  17. DarkAI,
  18. DDG,
  19. DeepInfraChat,
  20. HuggingSpace,
  21. GPROChat,
  22. ImageLabs,
  23. Jmuz,
  24. Liaobots,
  25. Mhystical,
  26. OIVSCode,
  27. PerplexityLabs,
  28. Pi,
  29. PollinationsAI,
  30. TeachAnything,
  31. Yqcloud,
  32. ### needs auth ###
  33. BingCreateImages,
  34. CopilotAccount,
  35. Gemini,
  36. GeminiPro,
  37. GigaChat,
  38. HailuoAI,
  39. HuggingChat,
  40. HuggingFace,
  41. HuggingFaceAPI,
  42. MetaAI,
  43. MicrosoftDesigner,
  44. OpenaiAccount,
  45. OpenaiChat,
  46. Reka,
  47. )
  48. @dataclass(unsafe_hash=True)
  49. class Model:
  50. """
  51. Represents a machine learning model configuration.
  52. Attributes:
  53. name (str): Name of the model.
  54. base_provider (str): Default provider for the model.
  55. best_provider (ProviderType): The preferred provider for the model, typically with retry logic.
  56. """
  57. name: str
  58. base_provider: str
  59. best_provider: ProviderType = None
  60. @staticmethod
  61. def __all__() -> list[str]:
  62. """Returns a list of all model names."""
  63. return _all_models
  64. class ImageModel(Model):
  65. pass
  66. class VisionModel(Model):
  67. pass
  68. ### Default ###
  69. default = Model(
  70. name = "",
  71. base_provider = "",
  72. best_provider = IterListProvider([
  73. DDG,
  74. Blackbox,
  75. Copilot,
  76. DeepInfraChat,
  77. ChatGptEs,
  78. ChatGptt,
  79. PollinationsAI,
  80. Jmuz,
  81. CablyAI,
  82. OIVSCode,
  83. DarkAI,
  84. AIUncensored,
  85. OpenaiChat,
  86. Cloudflare,
  87. ])
  88. )
  89. default_vision = Model(
  90. name = "",
  91. base_provider = "",
  92. best_provider = IterListProvider([
  93. Blackbox,
  94. PollinationsAI,
  95. HuggingSpace,
  96. GeminiPro,
  97. HuggingFaceAPI,
  98. CopilotAccount,
  99. OpenaiAccount,
  100. Gemini,
  101. ], shuffle=False)
  102. )
  103. ############
  104. ### Text ###
  105. ############
  106. ### OpenAI ###
  107. # gpt-3.5
  108. gpt_35_turbo = Model(
  109. name = 'gpt-3.5-turbo',
  110. base_provider = 'OpenAI',
  111. best_provider = IterListProvider([DarkAI, ChatGpt])
  112. )
  113. # gpt-4
  114. gpt_4 = Model(
  115. name = 'gpt-4',
  116. base_provider = 'OpenAI',
  117. best_provider = IterListProvider([DDG, Blackbox, Jmuz, ChatGptEs, ChatGptt, PollinationsAI, Yqcloud, Copilot, OpenaiChat, Liaobots, Mhystical])
  118. )
  119. # gpt-4o
  120. gpt_4o = VisionModel(
  121. name = 'gpt-4o',
  122. base_provider = 'OpenAI',
  123. best_provider = IterListProvider([Blackbox, ChatGptt, Jmuz, ChatGptEs, PollinationsAI, DarkAI, Copilot, ChatGpt, Liaobots, OpenaiChat])
  124. )
  125. gpt_4o_mini = Model(
  126. name = 'gpt-4o-mini',
  127. base_provider = 'OpenAI',
  128. best_provider = IterListProvider([DDG, ChatGptEs, ChatGptt, Jmuz, PollinationsAI, OIVSCode, ChatGpt, Liaobots, OpenaiChat])
  129. )
  130. # o1
  131. o1 = Model(
  132. name = 'o1',
  133. base_provider = 'OpenAI',
  134. best_provider = OpenaiAccount
  135. )
  136. o1_preview = Model(
  137. name = 'o1-preview',
  138. base_provider = 'OpenAI',
  139. best_provider = Liaobots
  140. )
  141. o1_mini = Model(
  142. name = 'o1-mini',
  143. base_provider = 'OpenAI',
  144. best_provider = Liaobots
  145. )
  146. ### GigaChat ###
  147. gigachat = Model(
  148. name = 'GigaChat:latest',
  149. base_provider = 'gigachat',
  150. best_provider = GigaChat
  151. )
  152. ### Meta ###
  153. meta = Model(
  154. name = "meta-ai",
  155. base_provider = "Meta",
  156. best_provider = MetaAI
  157. )
  158. # llama 2
  159. llama_2_7b = Model(
  160. name = "llama-2-7b",
  161. base_provider = "Meta Llama",
  162. best_provider = Cloudflare
  163. )
  164. # llama 3
  165. llama_3_8b = Model(
  166. name = "llama-3-8b",
  167. base_provider = "Meta Llama",
  168. best_provider = IterListProvider([Jmuz, Cloudflare])
  169. )
  170. llama_3_70b = Model(
  171. name = "llama-3-70b",
  172. base_provider = "Meta Llama",
  173. best_provider = Jmuz
  174. )
  175. # llama 3.1
  176. llama_3_1_8b = Model(
  177. name = "llama-3.1-8b",
  178. base_provider = "Meta Llama",
  179. best_provider = IterListProvider([Blackbox, DeepInfraChat, Jmuz, PollinationsAI, Cloudflare, PerplexityLabs])
  180. )
  181. llama_3_1_70b = Model(
  182. name = "llama-3.1-70b",
  183. base_provider = "Meta Llama",
  184. best_provider = IterListProvider([DDG, Jmuz, Blackbox, TeachAnything, DarkAI, PerplexityLabs])
  185. )
  186. llama_3_1_405b = Model(
  187. name = "llama-3.1-405b",
  188. base_provider = "Meta Llama",
  189. best_provider = IterListProvider([Blackbox, Jmuz])
  190. )
  191. # llama 3.2
  192. llama_3_2_1b = Model(
  193. name = "llama-3.2-1b",
  194. base_provider = "Meta Llama",
  195. best_provider = Cloudflare
  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_70b = Model(
  203. name = "llama-3.2-70b",
  204. base_provider = "Meta Llama",
  205. best_provider = AutonomousAI
  206. )
  207. llama_3_2_90b = Model(
  208. name = "llama-3.2-90b",
  209. base_provider = "Meta Llama",
  210. best_provider = IterListProvider([Jmuz, AutonomousAI])
  211. )
  212. # llama 3.3
  213. llama_3_3_70b = Model(
  214. name = "llama-3.3-70b",
  215. base_provider = "Meta Llama",
  216. best_provider = IterListProvider([Blackbox, DeepInfraChat, PollinationsAI, AutonomousAI, Jmuz, HuggingChat, HuggingFace, PerplexityLabs])
  217. )
  218. ### Mistral ###
  219. mixtral_7b = Model(
  220. name = "mixtral-7b",
  221. base_provider = "Mistral",
  222. best_provider = Blackbox
  223. )
  224. mixtral_8x7b = Model(
  225. name = "mixtral-8x7b",
  226. base_provider = "Mistral",
  227. best_provider = IterListProvider([DDG, Jmuz])
  228. )
  229. mistral_nemo = Model(
  230. name = "mistral-nemo",
  231. base_provider = "Mistral",
  232. best_provider = IterListProvider([PollinationsAI, HuggingChat, HuggingFace])
  233. )
  234. ### NousResearch ###
  235. hermes_2_dpo = Model(
  236. name = "hermes-2-dpo",
  237. base_provider = "NousResearch",
  238. best_provider = Blackbox
  239. )
  240. hermes_3 = Model(
  241. name = "hermes-3",
  242. base_provider = "NousResearch",
  243. best_provider = IterListProvider([AutonomousAI, AIUncensored])
  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. # wizardlm
  253. wizardlm_2_7b = Model(
  254. name = 'wizardlm-2-7b',
  255. base_provider = 'Microsoft',
  256. best_provider = DeepInfraChat
  257. )
  258. wizardlm_2_8x22b = Model(
  259. name = 'wizardlm-2-8x22b',
  260. base_provider = 'Microsoft',
  261. best_provider = IterListProvider([DeepInfraChat, Jmuz])
  262. )
  263. ### Google DeepMind ###
  264. # gemini
  265. gemini = Model(
  266. name = 'gemini',
  267. base_provider = 'Google',
  268. best_provider = Gemini
  269. )
  270. # gemini-exp
  271. gemini_exp = Model(
  272. name = 'gemini-exp',
  273. base_provider = 'Google',
  274. best_provider = Jmuz
  275. )
  276. # gemini-1.5
  277. gemini_1_5_flash = Model(
  278. name = 'gemini-1.5-flash',
  279. base_provider = 'Google DeepMind',
  280. best_provider = IterListProvider([Blackbox, Jmuz, Gemini, GeminiPro, Liaobots])
  281. )
  282. gemini_1_5_pro = Model(
  283. name = 'gemini-1.5-pro',
  284. base_provider = 'Google DeepMind',
  285. best_provider = IterListProvider([Blackbox, Jmuz, GPROChat, AIChatFree, Gemini, GeminiPro, Liaobots])
  286. )
  287. # gemini-2.0
  288. gemini_2_0_flash = Model(
  289. name = 'gemini-2.0-flash',
  290. base_provider = 'Google DeepMind',
  291. best_provider = IterListProvider([GeminiPro, Liaobots])
  292. )
  293. gemini_2_0_flash_thinking = Model(
  294. name = 'gemini-2.0-flash-thinking',
  295. base_provider = 'Google DeepMind',
  296. best_provider = Liaobots
  297. )
  298. gemma_2_27b = Model(
  299. name = 'gemma-2-27b',
  300. base_provider = 'Google DeepMind',
  301. best_provider = HuggingFace
  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([Blackbox, 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 = 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 = IterListProvider([DeepInfraChat, PollinationsAI, Jmuz])
  379. )
  380. qwen_2_5_coder_32b = Model(
  381. name = 'qwen-2.5-coder-32b',
  382. base_provider = 'Qwen',
  383. best_provider = IterListProvider([DeepInfraChat, PollinationsAI, AutonomousAI, Jmuz, HuggingChat])
  384. )
  385. # qwq/qvq
  386. qwq_32b = Model(
  387. name = 'qwq-32b',
  388. base_provider = 'Qwen',
  389. best_provider = IterListProvider([Blackbox, DeepInfraChat, Jmuz, HuggingChat])
  390. )
  391. qvq_72b = VisionModel(
  392. name = 'qvq-72b',
  393. base_provider = 'Qwen',
  394. best_provider = HuggingSpace
  395. )
  396. ### Inflection ###
  397. pi = Model(
  398. name = 'pi',
  399. base_provider = 'Inflection',
  400. best_provider = Pi
  401. )
  402. ### DeepSeek ###
  403. deepseek_chat = Model(
  404. name = 'deepseek-chat',
  405. base_provider = 'DeepSeek',
  406. best_provider = IterListProvider([Blackbox, DeepInfraChat, Jmuz, PollinationsAI])
  407. )
  408. deepseek_r1 = Model(
  409. name = 'deepseek-r1',
  410. base_provider = 'DeepSeek',
  411. best_provider = IterListProvider([Blackbox, Jmuz, PollinationsAI, HuggingChat, HuggingFace])
  412. )
  413. ### x.ai ###
  414. grok_2 = Model(
  415. name = 'grok-2',
  416. base_provider = 'x.ai',
  417. best_provider = Liaobots
  418. )
  419. ### Perplexity AI ###
  420. sonar_online = Model(
  421. name = 'sonar-online',
  422. base_provider = 'Perplexity AI',
  423. best_provider = PerplexityLabs
  424. )
  425. sonar_chat = Model(
  426. name = 'sonar-chat',
  427. base_provider = 'Perplexity AI',
  428. best_provider = PerplexityLabs
  429. )
  430. ### Nvidia ###
  431. nemotron_70b = Model(
  432. name = 'nemotron-70b',
  433. base_provider = 'Nvidia',
  434. best_provider = IterListProvider([DeepInfraChat, HuggingChat, HuggingFace])
  435. )
  436. ### Liquid ###
  437. lfm_40b = Model(
  438. name = 'lfm-40b',
  439. base_provider = 'Liquid',
  440. best_provider = PerplexityLabs
  441. )
  442. ### Databricks ###
  443. dbrx_instruct = Model(
  444. name = 'dbrx-instruct',
  445. base_provider = 'Databricks',
  446. best_provider = Blackbox
  447. )
  448. ### PollinationsAI ###
  449. p1 = Model(
  450. name = 'p1',
  451. base_provider = 'PollinationsAI',
  452. best_provider = PollinationsAI
  453. )
  454. ### CablyAI ###
  455. cably_80b = Model(
  456. name = 'cably-80b',
  457. base_provider = 'CablyAI',
  458. best_provider = CablyAI
  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. ### Uncensored AI ###
  473. evil = Model(
  474. name = 'evil',
  475. base_provider = 'Evil Mode - Experimental',
  476. best_provider = PollinationsAI
  477. )
  478. #############
  479. ### Image ###
  480. #############
  481. ### Stability AI ###
  482. sdxl_turbo = ImageModel(
  483. name = 'sdxl-turbo',
  484. base_provider = 'Stability AI',
  485. best_provider = IterListProvider([PollinationsAI, ImageLabs])
  486. )
  487. sd_3_5 = ImageModel(
  488. name = 'sd-3.5',
  489. base_provider = 'Stability AI',
  490. best_provider = HuggingSpace
  491. )
  492. ### Black Forest Labs ###
  493. flux = ImageModel(
  494. name = 'flux',
  495. base_provider = 'Black Forest Labs',
  496. best_provider = IterListProvider([Blackbox, PollinationsAI, HuggingSpace])
  497. )
  498. flux_pro = ImageModel(
  499. name = 'flux-pro',
  500. base_provider = 'Black Forest Labs',
  501. best_provider = PollinationsAI
  502. )
  503. flux_dev = ImageModel(
  504. name = 'flux-dev',
  505. base_provider = 'Black Forest Labs',
  506. best_provider = IterListProvider([HuggingSpace, HuggingChat, HuggingFace])
  507. )
  508. flux_schnell = ImageModel(
  509. name = 'flux-schnell',
  510. base_provider = 'Black Forest Labs',
  511. best_provider = IterListProvider([HuggingSpace, HuggingChat, HuggingFace])
  512. )
  513. ### OpenAI ###
  514. dall_e_3 = ImageModel(
  515. name = 'dall-e-3',
  516. base_provider = 'OpenAI',
  517. best_provider = IterListProvider([PollinationsAI, CopilotAccount, OpenaiAccount, MicrosoftDesigner, BingCreateImages])
  518. )
  519. ### Midjourney ###
  520. midjourney = ImageModel(
  521. name = 'midjourney',
  522. base_provider = 'Midjourney',
  523. best_provider = PollinationsAI
  524. )
  525. class ModelUtils:
  526. """
  527. Utility class for mapping string identifiers to Model instances.
  528. Attributes:
  529. convert (dict[str, Model]): Dictionary mapping model string identifiers to Model instances.
  530. """
  531. convert: dict[str, Model] = {
  532. ############
  533. ### Text ###
  534. ############
  535. ### OpenAI ###
  536. # gpt-3
  537. 'gpt-3': gpt_35_turbo,
  538. # gpt-3.5
  539. gpt_35_turbo.name: gpt_35_turbo,
  540. # gpt-4
  541. gpt_4.name: gpt_4,
  542. # gpt-4o
  543. gpt_4o.name: gpt_4o,
  544. gpt_4o_mini.name: gpt_4o_mini,
  545. # o1
  546. o1.name: o1,
  547. o1_preview.name: o1_preview,
  548. o1_mini.name: o1_mini,
  549. ### Meta ###
  550. meta.name: meta,
  551. # llama-2
  552. llama_2_7b.name: llama_2_7b,
  553. # llama-3
  554. llama_3_8b.name: llama_3_8b,
  555. llama_3_70b.name: llama_3_70b,
  556. # llama-3.1
  557. llama_3_1_8b.name: llama_3_1_8b,
  558. llama_3_1_70b.name: llama_3_1_70b,
  559. llama_3_1_405b.name: llama_3_1_405b,
  560. # llama-3.2
  561. llama_3_2_1b.name: llama_3_2_1b,
  562. llama_3_2_11b.name: llama_3_2_11b,
  563. llama_3_2_70b.name: llama_3_2_70b,
  564. llama_3_2_90b.name: llama_3_2_90b,
  565. # llama-3.3
  566. llama_3_3_70b.name: llama_3_3_70b,
  567. ### Mistral ###
  568. mixtral_7b.name: mixtral_7b,
  569. mixtral_8x7b.name: mixtral_8x7b,
  570. mistral_nemo.name: mistral_nemo,
  571. ### NousResearch ###
  572. hermes_2_dpo.name: hermes_2_dpo,
  573. hermes_3.name: hermes_3,
  574. ### Microsoft ###
  575. # phi
  576. phi_3_5_mini.name: phi_3_5_mini,
  577. # wizardlm
  578. wizardlm_2_7b.name: wizardlm_2_7b,
  579. wizardlm_2_8x22b.name: wizardlm_2_8x22b,
  580. ### Google ###
  581. ### Gemini
  582. gemini.name: gemini,
  583. gemini_exp.name: gemini_exp,
  584. gemini_1_5_pro.name: gemini_1_5_pro,
  585. gemini_1_5_flash.name: gemini_1_5_flash,
  586. gemini_2_0_flash.name: gemini_2_0_flash,
  587. gemini_2_0_flash_thinking.name: gemini_2_0_flash_thinking,
  588. ### Gemma
  589. gemma_2_27b.name: gemma_2_27b,
  590. ### Anthropic ###
  591. # claude 3
  592. claude_3_opus.name: claude_3_opus,
  593. claude_3_sonnet.name: claude_3_sonnet,
  594. claude_3_haiku.name: claude_3_haiku,
  595. # claude 3.5
  596. claude_3_5_sonnet.name: claude_3_5_sonnet,
  597. ### Reka AI ###
  598. reka_core.name: reka_core,
  599. ### Blackbox AI ###
  600. blackboxai.name: blackboxai,
  601. blackboxai_pro.name: blackboxai_pro,
  602. ### CohereForAI ###
  603. command_r.name: command_r,
  604. command_r_plus.name: command_r_plus,
  605. command_r7b.name: command_r7b,
  606. ### GigaChat ###
  607. gigachat.name: gigachat,
  608. ### Qwen ###
  609. qwen_1_5_7b.name: qwen_1_5_7b,
  610. qwen_2_72b.name: qwen_2_72b,
  611. qwen_2_vl_7b.name: qwen_2_vl_7b,
  612. qwen_2_5_72b.name: qwen_2_5_72b,
  613. qwen_2_5_coder_32b.name: qwen_2_5_coder_32b,
  614. # qwq/qvq
  615. qwq_32b.name: qwq_32b,
  616. qvq_72b.name: qvq_72b,
  617. ### Inflection ###
  618. pi.name: pi,
  619. ### x.ai ###
  620. grok_2.name: grok_2,
  621. ### Perplexity AI ###
  622. sonar_online.name: sonar_online,
  623. sonar_chat.name: sonar_chat,
  624. ### DeepSeek ###
  625. deepseek_chat.name: deepseek_chat,
  626. deepseek_r1.name: deepseek_r1,
  627. nemotron_70b.name: nemotron_70b, ### Nvidia ###
  628. lfm_40b.name: lfm_40b, ### Liquid ###
  629. dbrx_instruct.name: dbrx_instruct, ### Databricks ###
  630. p1.name: p1, ### PollinationsAI ###
  631. cably_80b.name: cably_80b, ### CablyAI ###
  632. glm_4.name: glm_4, ### THUDM ###
  633. mini_max.name: mini_max, ## MiniMax
  634. evil.name: evil, ### Uncensored AI ###
  635. #############
  636. ### Image ###
  637. #############
  638. ### Stability AI ###
  639. sdxl_turbo.name: sdxl_turbo,
  640. sd_3_5.name: sd_3_5,
  641. ### Flux AI ###
  642. flux.name: flux,
  643. flux_pro.name: flux_pro,
  644. flux_dev.name: flux_dev,
  645. flux_schnell.name: flux_schnell,
  646. ### OpenAI ###
  647. dall_e_3.name: dall_e_3,
  648. ### Midjourney ###
  649. midjourney.name: midjourney,
  650. }
  651. demo_models = {
  652. gpt_4o.name: [gpt_4o, [PollinationsAI, Blackbox]],
  653. "default": [llama_3_2_11b, [HuggingFaceAPI]],
  654. qwen_2_vl_7b.name: [qwen_2_vl_7b, [HuggingFaceAPI]],
  655. qvq_72b.name: [qvq_72b, [HuggingSpace, HuggingFaceAPI]],
  656. deepseek_r1.name: [deepseek_r1, [HuggingFace, HuggingFaceAPI]],
  657. claude_3_haiku.name: [claude_3_haiku, [DDG, Jmuz]],
  658. command_r.name: [command_r, [HuggingSpace]],
  659. command_r_plus.name: [command_r_plus, [HuggingSpace]],
  660. command_r7b.name: [command_r7b, [HuggingSpace]],
  661. gemma_2_27b.name: [gemma_2_27b, [HuggingFaceAPI]],
  662. qwen_2_72b.name: [qwen_2_72b, [HuggingSpace]],
  663. qwen_2_5_coder_32b.name: [qwen_2_5_coder_32b, [HuggingFace]],
  664. qwq_32b.name: [qwq_32b, [HuggingFace]],
  665. llama_3_3_70b.name: [llama_3_3_70b, [HuggingFace]],
  666. sd_3_5.name: [sd_3_5, [HuggingSpace, HuggingFace]],
  667. flux_dev.name: [flux_dev, [HuggingSpace, HuggingFace]],
  668. flux_schnell.name: [flux_schnell, [HuggingFace]],
  669. }
  670. # Create a list of all models and his providers
  671. __models__ = {
  672. model.name: (model, providers)
  673. for model, providers in [
  674. (model, [provider for provider in model.best_provider.providers if provider.working]
  675. if isinstance(model.best_provider, IterListProvider)
  676. else [model.best_provider]
  677. if model.best_provider is not None and model.best_provider.working
  678. else [])
  679. for model in ModelUtils.convert.values()]
  680. if providers
  681. }
  682. _all_models = list(__models__.keys())