models.py 19 KB

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