webscout 7.0__tar.gz → 7.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of webscout might be problematic. Click here for more details.

Files changed (210) hide show
  1. {webscout-7.0/webscout.egg-info → webscout-7.1}/PKG-INFO +18 -26
  2. {webscout-7.0 → webscout-7.1}/README.md +17 -24
  3. {webscout-7.0 → webscout-7.1}/setup.py +0 -1
  4. {webscout-7.0 → webscout-7.1}/webscout/LLM.py +1 -1
  5. webscout-7.1/webscout/Provider/Blackboxai.py +229 -0
  6. {webscout-7.0 → webscout-7.1}/webscout/Provider/Cloudflare.py +92 -78
  7. {webscout-7.0 → webscout-7.1}/webscout/Provider/Deepinfra.py +59 -35
  8. {webscout-7.0 → webscout-7.1}/webscout/Provider/Glider.py +74 -59
  9. {webscout-7.0 → webscout-7.1}/webscout/Provider/Groq.py +26 -18
  10. webscout-7.1/webscout/Provider/Jadve.py +265 -0
  11. webscout-7.1/webscout/Provider/Llama3.py +212 -0
  12. {webscout-7.0 → webscout-7.1}/webscout/Provider/Marcus.py +65 -10
  13. {webscout-7.0 → webscout-7.1}/webscout/Provider/Netwrck.py +61 -49
  14. {webscout-7.0 → webscout-7.1}/webscout/Provider/PI.py +77 -122
  15. webscout-7.1/webscout/Provider/PizzaGPT.py +240 -0
  16. {webscout-7.0 → webscout-7.1}/webscout/Provider/TextPollinationsAI.py +75 -47
  17. {webscout-7.0 → webscout-7.1}/webscout/Provider/__init__.py +1 -3
  18. {webscout-7.0 → webscout-7.1}/webscout/Provider/dgaf.py +68 -39
  19. webscout-7.1/webscout/Provider/gaurish.py +247 -0
  20. {webscout-7.0 → webscout-7.1}/webscout/Provider/llamatutor.py +72 -62
  21. {webscout-7.0 → webscout-7.1}/webscout/Provider/llmchat.py +61 -35
  22. {webscout-7.0 → webscout-7.1}/webscout/Provider/meta.py +6 -6
  23. webscout-7.1/webscout/Provider/multichat.py +331 -0
  24. {webscout-7.0 → webscout-7.1}/webscout/Provider/typegpt.py +26 -23
  25. {webscout-7.0 → webscout-7.1}/webscout/Provider/yep.py +3 -3
  26. {webscout-7.0 → webscout-7.1}/webscout/version.py +1 -1
  27. {webscout-7.0 → webscout-7.1}/webscout/webscout_search.py +1141 -1140
  28. {webscout-7.0 → webscout-7.1}/webscout/webscout_search_async.py +635 -635
  29. {webscout-7.0 → webscout-7.1/webscout.egg-info}/PKG-INFO +18 -26
  30. {webscout-7.0 → webscout-7.1}/webscout.egg-info/SOURCES.txt +0 -1
  31. {webscout-7.0 → webscout-7.1}/webscout.egg-info/requires.txt +0 -1
  32. webscout-7.0/webscout/Provider/Blackboxai.py +0 -230
  33. webscout-7.0/webscout/Provider/Jadve.py +0 -234
  34. webscout-7.0/webscout/Provider/Llama3.py +0 -189
  35. webscout-7.0/webscout/Provider/PizzaGPT.py +0 -193
  36. webscout-7.0/webscout/Provider/RUBIKSAI.py +0 -272
  37. webscout-7.0/webscout/Provider/gaurish.py +0 -207
  38. webscout-7.0/webscout/Provider/multichat.py +0 -230
  39. {webscout-7.0 → webscout-7.1}/LICENSE.md +0 -0
  40. {webscout-7.0 → webscout-7.1}/setup.cfg +0 -0
  41. {webscout-7.0 → webscout-7.1}/webscout/AIauto.py +0 -0
  42. {webscout-7.0 → webscout-7.1}/webscout/AIbase.py +0 -0
  43. {webscout-7.0 → webscout-7.1}/webscout/AIutel.py +0 -0
  44. {webscout-7.0 → webscout-7.1}/webscout/Bard.py +0 -0
  45. {webscout-7.0 → webscout-7.1}/webscout/DWEBS.py +0 -0
  46. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/YTdownloader.py +0 -0
  47. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/__init__.py +0 -0
  48. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/transcriber.py +0 -0
  49. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/__init__.py +0 -0
  50. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/channel.py +0 -0
  51. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/errors.py +0 -0
  52. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/extras.py +0 -0
  53. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/https.py +0 -0
  54. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/patterns.py +0 -0
  55. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/playlist.py +0 -0
  56. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/pool.py +0 -0
  57. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/query.py +0 -0
  58. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/stream.py +0 -0
  59. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/utils.py +0 -0
  60. {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/video.py +0 -0
  61. {webscout-7.0 → webscout-7.1}/webscout/Extra/__init__.py +0 -0
  62. {webscout-7.0 → webscout-7.1}/webscout/Extra/autocoder/__init__.py +0 -0
  63. {webscout-7.0 → webscout-7.1}/webscout/Extra/autocoder/autocoder_utiles.py +0 -0
  64. {webscout-7.0 → webscout-7.1}/webscout/Extra/autocoder/rawdog.py +0 -0
  65. {webscout-7.0 → webscout-7.1}/webscout/Extra/autollama.py +0 -0
  66. {webscout-7.0 → webscout-7.1}/webscout/Extra/gguf.py +0 -0
  67. {webscout-7.0 → webscout-7.1}/webscout/Extra/weather.py +0 -0
  68. {webscout-7.0 → webscout-7.1}/webscout/Extra/weather_ascii.py +0 -0
  69. {webscout-7.0 → webscout-7.1}/webscout/Litlogger/__init__.py +0 -0
  70. {webscout-7.0 → webscout-7.1}/webscout/Local/__init__.py +0 -0
  71. {webscout-7.0 → webscout-7.1}/webscout/Local/_version.py +0 -0
  72. {webscout-7.0 → webscout-7.1}/webscout/Local/formats.py +0 -0
  73. {webscout-7.0 → webscout-7.1}/webscout/Local/model.py +0 -0
  74. {webscout-7.0 → webscout-7.1}/webscout/Local/samplers.py +0 -0
  75. {webscout-7.0 → webscout-7.1}/webscout/Local/thread.py +0 -0
  76. {webscout-7.0 → webscout-7.1}/webscout/Local/ui.py +0 -0
  77. {webscout-7.0 → webscout-7.1}/webscout/Local/utils.py +0 -0
  78. {webscout-7.0 → webscout-7.1}/webscout/Provider/AI21.py +0 -0
  79. {webscout-7.0 → webscout-7.1}/webscout/Provider/AISEARCH/DeepFind.py +0 -0
  80. {webscout-7.0 → webscout-7.1}/webscout/Provider/AISEARCH/__init__.py +0 -0
  81. {webscout-7.0 → webscout-7.1}/webscout/Provider/AISEARCH/felo_search.py +0 -0
  82. {webscout-7.0 → webscout-7.1}/webscout/Provider/Amigo.py +0 -0
  83. {webscout-7.0 → webscout-7.1}/webscout/Provider/Andi.py +0 -0
  84. {webscout-7.0 → webscout-7.1}/webscout/Provider/Bing.py +0 -0
  85. {webscout-7.0 → webscout-7.1}/webscout/Provider/ChatGPTES.py +0 -0
  86. {webscout-7.0 → webscout-7.1}/webscout/Provider/Chatify.py +0 -0
  87. {webscout-7.0 → webscout-7.1}/webscout/Provider/Cohere.py +0 -0
  88. {webscout-7.0 → webscout-7.1}/webscout/Provider/DARKAI.py +0 -0
  89. {webscout-7.0 → webscout-7.1}/webscout/Provider/DiscordRocks.py +0 -0
  90. {webscout-7.0 → webscout-7.1}/webscout/Provider/EDITEE.py +0 -0
  91. {webscout-7.0 → webscout-7.1}/webscout/Provider/Free2GPT.py +0 -0
  92. {webscout-7.0 → webscout-7.1}/webscout/Provider/GPTWeb.py +0 -0
  93. {webscout-7.0 → webscout-7.1}/webscout/Provider/Gemini.py +0 -0
  94. {webscout-7.0 → webscout-7.1}/webscout/Provider/HF_space/__init__.py +0 -0
  95. {webscout-7.0 → webscout-7.1}/webscout/Provider/HF_space/qwen_qwen2.py +0 -0
  96. {webscout-7.0 → webscout-7.1}/webscout/Provider/Koboldai.py +0 -0
  97. {webscout-7.0 → webscout-7.1}/webscout/Provider/Llama.py +0 -0
  98. {webscout-7.0 → webscout-7.1}/webscout/Provider/OLLAMA.py +0 -0
  99. {webscout-7.0 → webscout-7.1}/webscout/Provider/Openai.py +0 -0
  100. {webscout-7.0 → webscout-7.1}/webscout/Provider/Phind.py +0 -0
  101. {webscout-7.0 → webscout-7.1}/webscout/Provider/Reka.py +0 -0
  102. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/AiForce/__init__.py +0 -0
  103. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/AiForce/async_aiforce.py +0 -0
  104. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/AiForce/sync_aiforce.py +0 -0
  105. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/Nexra/__init__.py +0 -0
  106. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/Nexra/async_nexra.py +0 -0
  107. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/Nexra/sync_nexra.py +0 -0
  108. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/PollinationsAI/__init__.py +0 -0
  109. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/PollinationsAI/async_pollinations.py +0 -0
  110. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +0 -0
  111. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/__init__.py +0 -0
  112. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/artbit/__init__.py +0 -0
  113. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/artbit/async_artbit.py +0 -0
  114. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/artbit/sync_artbit.py +0 -0
  115. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/blackbox/__init__.py +0 -0
  116. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/blackbox/async_blackbox.py +0 -0
  117. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/blackbox/sync_blackbox.py +0 -0
  118. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/deepinfra/__init__.py +0 -0
  119. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/deepinfra/async_deepinfra.py +0 -0
  120. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/deepinfra/sync_deepinfra.py +0 -0
  121. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/huggingface/__init__.py +0 -0
  122. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/huggingface/async_huggingface.py +0 -0
  123. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/huggingface/sync_huggingface.py +0 -0
  124. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/imgninza/__init__.py +0 -0
  125. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/imgninza/async_ninza.py +0 -0
  126. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/imgninza/sync_ninza.py +0 -0
  127. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/talkai/__init__.py +0 -0
  128. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/talkai/async_talkai.py +0 -0
  129. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/talkai/sync_talkai.py +0 -0
  130. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/__init__.py +0 -0
  131. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/deepgram.py +0 -0
  132. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/elevenlabs.py +0 -0
  133. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/gesserit.py +0 -0
  134. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/murfai.py +0 -0
  135. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/parler.py +0 -0
  136. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/streamElements.py +0 -0
  137. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/utils.py +0 -0
  138. {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/voicepod.py +0 -0
  139. {webscout-7.0 → webscout-7.1}/webscout/Provider/TeachAnything.py +0 -0
  140. {webscout-7.0 → webscout-7.1}/webscout/Provider/Youchat.py +0 -0
  141. {webscout-7.0 → webscout-7.1}/webscout/Provider/ai4chat.py +0 -0
  142. {webscout-7.0 → webscout-7.1}/webscout/Provider/aimathgpt.py +0 -0
  143. {webscout-7.0 → webscout-7.1}/webscout/Provider/askmyai.py +0 -0
  144. {webscout-7.0 → webscout-7.1}/webscout/Provider/bagoodex.py +0 -0
  145. {webscout-7.0 → webscout-7.1}/webscout/Provider/cerebras.py +0 -0
  146. {webscout-7.0 → webscout-7.1}/webscout/Provider/chatglm.py +0 -0
  147. {webscout-7.0 → webscout-7.1}/webscout/Provider/cleeai.py +0 -0
  148. {webscout-7.0 → webscout-7.1}/webscout/Provider/elmo.py +0 -0
  149. {webscout-7.0 → webscout-7.1}/webscout/Provider/geminiapi.py +0 -0
  150. {webscout-7.0 → webscout-7.1}/webscout/Provider/geminiprorealtime.py +0 -0
  151. {webscout-7.0 → webscout-7.1}/webscout/Provider/hermes.py +0 -0
  152. {webscout-7.0 → webscout-7.1}/webscout/Provider/julius.py +0 -0
  153. {webscout-7.0 → webscout-7.1}/webscout/Provider/koala.py +0 -0
  154. {webscout-7.0 → webscout-7.1}/webscout/Provider/learnfastai.py +0 -0
  155. {webscout-7.0 → webscout-7.1}/webscout/Provider/lepton.py +0 -0
  156. {webscout-7.0 → webscout-7.1}/webscout/Provider/llama3mitril.py +0 -0
  157. {webscout-7.0 → webscout-7.1}/webscout/Provider/promptrefine.py +0 -0
  158. {webscout-7.0 → webscout-7.1}/webscout/Provider/talkai.py +0 -0
  159. {webscout-7.0 → webscout-7.1}/webscout/Provider/turboseek.py +0 -0
  160. {webscout-7.0 → webscout-7.1}/webscout/Provider/tutorai.py +0 -0
  161. {webscout-7.0 → webscout-7.1}/webscout/Provider/x0gpt.py +0 -0
  162. {webscout-7.0 → webscout-7.1}/webscout/__init__.py +0 -0
  163. {webscout-7.0 → webscout-7.1}/webscout/__main__.py +0 -0
  164. {webscout-7.0 → webscout-7.1}/webscout/cli.py +0 -0
  165. {webscout-7.0 → webscout-7.1}/webscout/conversation.py +0 -0
  166. {webscout-7.0 → webscout-7.1}/webscout/exceptions.py +0 -0
  167. {webscout-7.0 → webscout-7.1}/webscout/litagent/__init__.py +0 -0
  168. {webscout-7.0 → webscout-7.1}/webscout/litagent/agent.py +0 -0
  169. {webscout-7.0 → webscout-7.1}/webscout/litagent/constants.py +0 -0
  170. {webscout-7.0 → webscout-7.1}/webscout/litprinter/__init__.py +0 -0
  171. {webscout-7.0 → webscout-7.1}/webscout/litprinter/colors.py +0 -0
  172. {webscout-7.0 → webscout-7.1}/webscout/optimizers.py +0 -0
  173. {webscout-7.0 → webscout-7.1}/webscout/prompt_manager.py +0 -0
  174. {webscout-7.0 → webscout-7.1}/webscout/scout/__init__.py +0 -0
  175. {webscout-7.0 → webscout-7.1}/webscout/scout/core/__init__.py +0 -0
  176. {webscout-7.0 → webscout-7.1}/webscout/scout/core/crawler.py +0 -0
  177. {webscout-7.0 → webscout-7.1}/webscout/scout/core/scout.py +0 -0
  178. {webscout-7.0 → webscout-7.1}/webscout/scout/core/search_result.py +0 -0
  179. {webscout-7.0 → webscout-7.1}/webscout/scout/core/text_analyzer.py +0 -0
  180. {webscout-7.0 → webscout-7.1}/webscout/scout/core/text_utils.py +0 -0
  181. {webscout-7.0 → webscout-7.1}/webscout/scout/core/web_analyzer.py +0 -0
  182. {webscout-7.0 → webscout-7.1}/webscout/scout/core.py +0 -0
  183. {webscout-7.0 → webscout-7.1}/webscout/scout/element.py +0 -0
  184. {webscout-7.0 → webscout-7.1}/webscout/scout/parsers/__init__.py +0 -0
  185. {webscout-7.0 → webscout-7.1}/webscout/scout/parsers/html5lib_parser.py +0 -0
  186. {webscout-7.0 → webscout-7.1}/webscout/scout/parsers/html_parser.py +0 -0
  187. {webscout-7.0 → webscout-7.1}/webscout/scout/parsers/lxml_parser.py +0 -0
  188. {webscout-7.0 → webscout-7.1}/webscout/scout/utils.py +0 -0
  189. {webscout-7.0 → webscout-7.1}/webscout/swiftcli/__init__.py +0 -0
  190. {webscout-7.0 → webscout-7.1}/webscout/tempid.py +0 -0
  191. {webscout-7.0 → webscout-7.1}/webscout/update_checker.py +0 -0
  192. {webscout-7.0 → webscout-7.1}/webscout/utils.py +0 -0
  193. {webscout-7.0 → webscout-7.1}/webscout/zeroart/__init__.py +0 -0
  194. {webscout-7.0 → webscout-7.1}/webscout/zeroart/base.py +0 -0
  195. {webscout-7.0 → webscout-7.1}/webscout/zeroart/effects.py +0 -0
  196. {webscout-7.0 → webscout-7.1}/webscout/zeroart/fonts.py +0 -0
  197. {webscout-7.0 → webscout-7.1}/webscout.egg-info/dependency_links.txt +0 -0
  198. {webscout-7.0 → webscout-7.1}/webscout.egg-info/entry_points.txt +0 -0
  199. {webscout-7.0 → webscout-7.1}/webscout.egg-info/top_level.txt +0 -0
  200. {webscout-7.0 → webscout-7.1}/webstoken/__init__.py +0 -0
  201. {webscout-7.0 → webscout-7.1}/webstoken/classifier.py +0 -0
  202. {webscout-7.0 → webscout-7.1}/webstoken/keywords.py +0 -0
  203. {webscout-7.0 → webscout-7.1}/webstoken/language.py +0 -0
  204. {webscout-7.0 → webscout-7.1}/webstoken/ner.py +0 -0
  205. {webscout-7.0 → webscout-7.1}/webstoken/normalizer.py +0 -0
  206. {webscout-7.0 → webscout-7.1}/webstoken/processor.py +0 -0
  207. {webscout-7.0 → webscout-7.1}/webstoken/sentiment.py +0 -0
  208. {webscout-7.0 → webscout-7.1}/webstoken/stemmer.py +0 -0
  209. {webscout-7.0 → webscout-7.1}/webstoken/tagger.py +0 -0
  210. {webscout-7.0 → webscout-7.1}/webstoken/tokenizer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: webscout
3
- Version: 7.0
3
+ Version: 7.1
4
4
  Summary: Search for anything using Google, DuckDuckGo, phind.com, Contains AI models, can transcribe yt videos, temporary email and phone number generation, has TTS support, webai (terminal gpt and open interpreter) and offline LLMs and more
5
5
  Author: OEvortex
6
6
  Author-email: helpingai5@gmail.com
@@ -55,7 +55,6 @@ Requires-Dist: primp
55
55
  Requires-Dist: pyreqwest_impersonate
56
56
  Requires-Dist: gradio_client
57
57
  Requires-Dist: psutil
58
- Requires-Dist: yaspin
59
58
  Requires-Dist: pygetwindow
60
59
  Provides-Extra: dev
61
60
  Requires-Dist: ruff>=0.1.6; extra == "dev"
@@ -78,42 +77,35 @@ Dynamic: requires-dist
78
77
  Dynamic: requires-python
79
78
  Dynamic: summary
80
79
 
81
- <div align="center">
82
- <!-- Replace `#` with your actual links -->
83
-
84
- <a href="https://t.me/official_helpingai"><img alt="Telegram" src="https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
85
- <a href="https://www.instagram.com/oevortex/"><img alt="Instagram" src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white"></a>
86
- <a href="https://www.linkedin.com/in/oe-vortex-29a407265/"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white"></a>
87
- <a href="https://buymeacoffee.com/oevortex"><img alt="Buy Me A Coffee" src="https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=for-the-badge&logo=buymeacoffee&logoColor=black"></a>
88
- </div>
89
-
90
- <div align="center">
91
- <!-- Replace `#` with your actual links -->
92
- <a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
93
- </div>
94
- <div align="center">
95
- <a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
96
- </div>
97
- <div align="center">
98
- <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
99
- </div>
100
80
 
81
+ [![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/official_helpingai)
82
+ [![Instagram](https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://www.instagram.com/oevortex/)
83
+ [![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/oe-vortex-29a407265/)
84
+ [![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=for-the-badge&logo=buymeacoffee&logoColor=black)](https://buymeacoffee.com/oevortex)
101
85
 
102
86
 
103
-
104
- # WEBSCOUT 🕵️️
87
+ <div align="center">
88
+ <a href="https://youtube.com/@OEvortex">▶️ Vortex’s YouTube Channel</a> &bull;
89
+ <a href="https://youtube.com/@devsdocode">▶️ Devs Do Code’s YouTube Channel</a> &bull;
90
+ <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder’s Telegram</a>
105
91
  </div>
106
92
 
93
+ ---
94
+
107
95
  <p align="center">
108
- Search for anything using Google, DuckDuckGo, Phind.com, access AI models, transcribe YouTube videos, generate temporary emails and phone numbers, utilize text-to-speech, leverage WebAI (terminal GPT and open interpreter), and explore offline LLMs, and much more!
96
+ <strong>Webscout</strong> is the all-in-one search and AI toolkit you need.
97
+ <br>
98
+ Discover insights with Google, DuckDuckGo, and Phind; access cutting-edge AI models; transcribe YouTube videos; generate temporary emails and phone numbers; perform text-to-speech conversions; run offline language models; and much more!
109
99
  </p>
110
100
 
111
101
  <div align="center">
112
102
  <img src="https://img.shields.io/badge/WebScout-API-blue?style=for-the-badge&logo=WebScout" alt="WebScout API Badge">
113
- <a href="#"><img alt="Python version" src="https://img.shields.io/pypi/pyversions/webscout"/></a>
114
- <a href="https://pepy.tech/project/webscout"><img alt="Downloads" src="https://static.pepy.tech/badge/webscout"></a>
103
+ <a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout" alt="Python Version"></a>
104
+ <a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout" alt="Downloads"></a>
115
105
  </div>
116
106
 
107
+ ---
108
+
117
109
  ## 🚀 Features
118
110
  * **Comprehensive Search:** Leverage Google, DuckDuckGo for diverse search results.
119
111
  * **AI Powerhouse:** Access and interact with various AI models, including OpenAI, Cohere, and more.
@@ -1,39 +1,32 @@
1
- <div align="center">
2
- <!-- Replace `#` with your actual links -->
3
-
4
- <a href="https://t.me/official_helpingai"><img alt="Telegram" src="https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
5
- <a href="https://www.instagram.com/oevortex/"><img alt="Instagram" src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white"></a>
6
- <a href="https://www.linkedin.com/in/oe-vortex-29a407265/"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white"></a>
7
- <a href="https://buymeacoffee.com/oevortex"><img alt="Buy Me A Coffee" src="https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=for-the-badge&logo=buymeacoffee&logoColor=black"></a>
8
- </div>
9
-
10
- <div align="center">
11
- <!-- Replace `#` with your actual links -->
12
- <a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
13
- </div>
14
- <div align="center">
15
- <a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
16
- </div>
17
- <div align="center">
18
- <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
19
- </div>
20
1
 
2
+ [![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/official_helpingai)
3
+ [![Instagram](https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://www.instagram.com/oevortex/)
4
+ [![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/oe-vortex-29a407265/)
5
+ [![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=for-the-badge&logo=buymeacoffee&logoColor=black)](https://buymeacoffee.com/oevortex)
21
6
 
22
7
 
23
-
24
- # WEBSCOUT 🕵️️
8
+ <div align="center">
9
+ <a href="https://youtube.com/@OEvortex">▶️ Vortex’s YouTube Channel</a> &bull;
10
+ <a href="https://youtube.com/@devsdocode">▶️ Devs Do Code’s YouTube Channel</a> &bull;
11
+ <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder’s Telegram</a>
25
12
  </div>
26
13
 
14
+ ---
15
+
27
16
  <p align="center">
28
- Search for anything using Google, DuckDuckGo, Phind.com, access AI models, transcribe YouTube videos, generate temporary emails and phone numbers, utilize text-to-speech, leverage WebAI (terminal GPT and open interpreter), and explore offline LLMs, and much more!
17
+ <strong>Webscout</strong> is the all-in-one search and AI toolkit you need.
18
+ <br>
19
+ Discover insights with Google, DuckDuckGo, and Phind; access cutting-edge AI models; transcribe YouTube videos; generate temporary emails and phone numbers; perform text-to-speech conversions; run offline language models; and much more!
29
20
  </p>
30
21
 
31
22
  <div align="center">
32
23
  <img src="https://img.shields.io/badge/WebScout-API-blue?style=for-the-badge&logo=WebScout" alt="WebScout API Badge">
33
- <a href="#"><img alt="Python version" src="https://img.shields.io/pypi/pyversions/webscout"/></a>
34
- <a href="https://pepy.tech/project/webscout"><img alt="Downloads" src="https://static.pepy.tech/badge/webscout"></a>
24
+ <a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout" alt="Python Version"></a>
25
+ <a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout" alt="Downloads"></a>
35
26
  </div>
36
27
 
28
+ ---
29
+
37
30
  ## 🚀 Features
38
31
  * **Comprehensive Search:** Leverage Google, DuckDuckGo for diverse search results.
39
32
  * **AI Powerhouse:** Access and interact with various AI models, including OpenAI, Cohere, and more.
@@ -61,7 +61,6 @@ setup(
61
61
  "pyreqwest_impersonate",
62
62
  "gradio_client",
63
63
  "psutil",
64
- "yaspin",
65
64
  "pygetwindow",
66
65
  ],
67
66
 
@@ -418,7 +418,7 @@ if __name__ == "__main__":
418
418
  # Example usage
419
419
  try:
420
420
  # Initialize LLM with Llama 3 model
421
- llm = LLM(model="Qwen/Qwen2.5-Coder-32B-Instruct")
421
+ llm = LLM(model="mistralai/Mistral-Small-24B-Instruct-2501")
422
422
 
423
423
  # Example messages
424
424
  messages = [
@@ -0,0 +1,229 @@
1
+ import requests
2
+ import json
3
+ from typing import Any, Dict, Optional, Union, Generator, List
4
+ from webscout.AIutel import Optimizers, Conversation, AwesomePrompts
5
+ from webscout.AIbase import Provider
6
+ from webscout import exceptions
7
+ from webscout.Litlogger import LitLogger, LogFormat, ColorScheme
8
+
9
+ class BLACKBOXAI(Provider):
10
+ """
11
+ BlackboxAI provider for interacting with the Blackbox API.
12
+ Supports synchronous operations with multiple models.
13
+ """
14
+ url = "https://api.blackbox.ai"
15
+ api_endpoint = "https://api.blackbox.ai/api/chat"
16
+
17
+
18
+
19
+ AVAILABLE_MODELS = {
20
+ "deepseek-v3": "deepseek-ai/DeepSeek-V3",
21
+ "deepseek-r1": "deepseek-ai/DeepSeek-R1",
22
+ "deepseek-chat": "deepseek-ai/deepseek-llm-67b-chat",
23
+ "mixtral-small-28b": "mistralai/Mistral-Small-24B-Instruct-2501",
24
+ "dbrx-instruct": "databricks/dbrx-instruct",
25
+ "qwq-32b": "Qwen/QwQ-32B-Preview",
26
+ "hermes-2-dpo": "NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO",
27
+ "claude-3.5-sonnet": "claude-sonnet-3.5",
28
+ "gemini-1.5-flash": "gemini-1.5-flash",
29
+ "gemini-1.5-pro": "gemini-pro",
30
+ "gemini-2.0-flash": "Gemini-Flash-2.0",
31
+ }
32
+
33
+ def __init__(
34
+ self,
35
+ is_conversation: bool = True,
36
+ max_tokens: int = 8000,
37
+ timeout: int = 30,
38
+ intro: str = None,
39
+ filepath: str = None,
40
+ update_file: bool = True,
41
+ proxies: dict = {},
42
+ history_offset: int = 10250,
43
+ act: str = None,
44
+ model: str = "deepseek-ai/DeepSeek-V3",
45
+ logging: bool = False,
46
+ system_message: str = "You are a helpful AI assistant."
47
+ ):
48
+ """Initialize BlackboxAI with enhanced configuration options."""
49
+ self.logger = LitLogger(
50
+ name="BlackboxAI",
51
+ format=LogFormat.MODERN_EMOJI,
52
+ color_scheme=ColorScheme.CYBERPUNK
53
+ ) if logging else None
54
+
55
+ self.session = requests.Session()
56
+ self.max_tokens_to_sample = max_tokens
57
+ self.is_conversation = is_conversation
58
+ self.timeout = timeout
59
+ self.last_response = {}
60
+ self.model = self.get_model(model)
61
+ self.system_message = system_message
62
+
63
+ self.headers = {
64
+ "Content-Type": "application/json",
65
+ "Accept": "*/*",
66
+ }
67
+
68
+ if self.logger:
69
+ self.logger.info(f"Initializing BlackboxAI with model: {self.model}")
70
+
71
+ self.__available_optimizers = (
72
+ method for method in dir(Optimizers)
73
+ if callable(getattr(Optimizers, method)) and not method.startswith("__")
74
+ )
75
+
76
+ Conversation.intro = (
77
+ AwesomePrompts().get_act(
78
+ act, raise_not_found=True, default=None, case_insensitive=True
79
+ )
80
+ if act
81
+ else intro or Conversation.intro
82
+ )
83
+
84
+ self.conversation = Conversation(
85
+ is_conversation, self.max_tokens_to_sample, filepath, update_file
86
+ )
87
+ self.conversation.history_offset = history_offset
88
+ self.session.proxies = proxies
89
+
90
+ @classmethod
91
+ def get_model(self, model: str) -> str:
92
+ """Resolve model name from alias"""
93
+ if model in self.AVAILABLE_MODELS:
94
+ return self.AVAILABLE_MODELS[model]
95
+ raise ValueError(f"Unknown model: {model}. Available models: {', '.join(self.AVAILABLE_MODELS)}")
96
+
97
+ def _make_request(
98
+ self,
99
+ messages: List[Dict[str, str]],
100
+ stream: bool = False
101
+ ) -> Generator[str, None, None]:
102
+ """Make synchronous request to BlackboxAI API."""
103
+ if self.logger:
104
+ self.logger.debug(f"Making request with {len(messages)} messages")
105
+
106
+ data = {
107
+ "messages": messages,
108
+ "model": self.model,
109
+ "max_tokens": self.max_tokens_to_sample
110
+ }
111
+
112
+ try:
113
+ response = self.session.post(
114
+ self.api_endpoint,
115
+ json=data,
116
+ headers=self.headers,
117
+ stream=stream,
118
+ timeout=self.timeout
119
+ )
120
+
121
+ if not response.ok:
122
+ error_msg = f"API request failed: {response.status_code} - {response.text}"
123
+ if self.logger:
124
+ self.logger.error(error_msg)
125
+ raise exceptions.FailedToGenerateResponseError(error_msg)
126
+
127
+ if stream:
128
+ for line in response.iter_lines(decode_unicode=True):
129
+ if line:
130
+ yield line
131
+ else:
132
+ yield response.text
133
+
134
+ except requests.exceptions.RequestException as e:
135
+ if self.logger:
136
+ self.logger.error(f"Request failed: {str(e)}")
137
+ raise exceptions.ProviderConnectionError(f"Connection error: {str(e)}")
138
+
139
+ def ask(
140
+ self,
141
+ prompt: str,
142
+ stream: bool = False,
143
+ raw: bool = False,
144
+ optimizer: str = None,
145
+ conversationally: bool = False,
146
+ ) -> Union[Dict[str, str], Generator[Dict[str, str], None, None]]:
147
+ """Send a prompt to BlackboxAI API and return the response."""
148
+ if self.logger:
149
+ self.logger.debug(f"Processing request [stream={stream}]")
150
+
151
+ conversation_prompt = self.conversation.gen_complete_prompt(prompt)
152
+ if optimizer:
153
+ if optimizer in self.__available_optimizers:
154
+ conversation_prompt = getattr(Optimizers, optimizer)(
155
+ conversation_prompt if conversationally else prompt
156
+ )
157
+ if self.logger:
158
+ self.logger.debug(f"Applied optimizer: {optimizer}")
159
+ else:
160
+ if self.logger:
161
+ self.logger.error(f"Invalid optimizer: {optimizer}")
162
+ raise ValueError(f"Optimizer is not one of {self.__available_optimizers}")
163
+
164
+ messages = [
165
+ {"role": "system", "content": self.system_message},
166
+ {"role": "user", "content": conversation_prompt}
167
+ ]
168
+
169
+ def for_stream():
170
+ for text in self._make_request(messages, stream=True):
171
+ yield {"text": text}
172
+
173
+ def for_non_stream():
174
+ response_text = next(self._make_request(messages, stream=False))
175
+ self.last_response = {"text": response_text}
176
+ return self.last_response
177
+
178
+ return for_stream() if stream else for_non_stream()
179
+
180
+ def chat(
181
+ self,
182
+ prompt: str,
183
+ stream: bool = False,
184
+ optimizer: str = None,
185
+ conversationally: bool = False,
186
+ ) -> Union[str, Generator[str, None, None]]:
187
+ """Generate response as string."""
188
+ if self.logger:
189
+ self.logger.debug(f"Chat request initiated [stream={stream}]")
190
+
191
+ def for_stream():
192
+ for response in self.ask(
193
+ prompt,
194
+ stream=True,
195
+ optimizer=optimizer,
196
+ conversationally=conversationally
197
+ ):
198
+ yield self.get_message(response)
199
+
200
+ def for_non_stream():
201
+ return self.get_message(
202
+ self.ask(
203
+ prompt,
204
+ stream=False,
205
+ optimizer=optimizer,
206
+ conversationally=conversationally,
207
+ )
208
+ )
209
+
210
+ return for_stream() if stream else for_non_stream()
211
+
212
+ def get_message(self, response: Dict[str, Any]) -> str:
213
+ """Extract message from response dictionary."""
214
+ assert isinstance(response, dict), "Response should be of dict data-type only"
215
+ return response["text"].replace('\\n', '\n').replace('\\n\\n', '\n\n')
216
+
217
+ if __name__ == "__main__":
218
+ from rich import print
219
+
220
+ # Example usage
221
+ ai = BLACKBOXAI(model="deepseek-v3", logging=True)
222
+
223
+ try:
224
+ print("Non-streaming response:")
225
+ response = ai.chat("What is quantum computing?")
226
+ print(response)
227
+
228
+ except Exception as e:
229
+ print(f"Error: {str(e)}")