webscout 6.5__tar.gz → 6.6__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 (215) hide show
  1. webscout-6.5/README.md → webscout-6.6/PKG-INFO +1363 -1456
  2. webscout-6.5/PKG-INFO → webscout-6.6/README.md +4 -227
  3. {webscout-6.5 → webscout-6.6}/setup.py +34 -31
  4. webscout-6.6/webscout/Extra/autocoder/autocoder_utiles.py +139 -0
  5. webscout-6.6/webscout/Provider/AISEARCH/__init__.py +2 -0
  6. webscout-6.6/webscout/Provider/AISEARCH/ooai.py +155 -0
  7. {webscout-6.5 → webscout-6.6}/webscout/Provider/Amigo.py +70 -85
  8. webscout-6.5/webscout/Provider/prefind.py → webscout-6.6/webscout/Provider/Jadve.py +72 -70
  9. webscout-6.6/webscout/Provider/Netwrck.py +235 -0
  10. {webscout-6.5 → webscout-6.6}/webscout/Provider/Openai.py +4 -3
  11. {webscout-6.5 → webscout-6.6}/webscout/Provider/PI.py +2 -2
  12. {webscout-6.5 → webscout-6.6}/webscout/Provider/PizzaGPT.py +3 -3
  13. {webscout-6.5 → webscout-6.6}/webscout/Provider/TeachAnything.py +15 -2
  14. {webscout-6.5 → webscout-6.6}/webscout/Provider/Youchat.py +42 -8
  15. {webscout-6.5 → webscout-6.6}/webscout/Provider/__init__.py +134 -147
  16. webscout-6.6/webscout/Provider/multichat.py +230 -0
  17. {webscout-6.5 → webscout-6.6}/webscout/Provider/promptrefine.py +2 -2
  18. {webscout-6.5 → webscout-6.6}/webscout/Provider/talkai.py +10 -13
  19. {webscout-6.5 → webscout-6.6}/webscout/Provider/turboseek.py +5 -4
  20. {webscout-6.5 → webscout-6.6}/webscout/Provider/tutorai.py +8 -112
  21. {webscout-6.5 → webscout-6.6}/webscout/Provider/typegpt.py +4 -5
  22. {webscout-6.5 → webscout-6.6}/webscout/Provider/x0gpt.py +81 -9
  23. webscout-6.6/webscout/Provider/yep.py +262 -0
  24. {webscout-6.5 → webscout-6.6}/webscout/__init__.py +10 -1
  25. {webscout-6.5 → webscout-6.6}/webscout/conversation.py +24 -9
  26. webscout-6.6/webscout/exceptions.py +329 -0
  27. {webscout-6.5 → webscout-6.6}/webscout/litprinter/__init__.py +4 -117
  28. webscout-6.6/webscout/litprinter/colors.py +54 -0
  29. webscout-6.6/webscout/optimizers.py +420 -0
  30. webscout-6.6/webscout/scout/__init__.py +8 -0
  31. webscout-6.6/webscout/scout/core/__init__.py +7 -0
  32. webscout-6.6/webscout/scout/core/crawler.py +140 -0
  33. webscout-6.6/webscout/scout/core/scout.py +571 -0
  34. webscout-6.6/webscout/scout/core/search_result.py +96 -0
  35. webscout-6.6/webscout/scout/core/text_analyzer.py +63 -0
  36. webscout-6.6/webscout/scout/core/text_utils.py +277 -0
  37. webscout-6.6/webscout/scout/core/web_analyzer.py +52 -0
  38. {webscout-6.5 → webscout-6.6}/webscout/scout/element.py +6 -5
  39. webscout-6.6/webscout/update_checker.py +184 -0
  40. {webscout-6.5 → webscout-6.6}/webscout/version.py +1 -1
  41. {webscout-6.5 → webscout-6.6}/webscout/zeroart/base.py +15 -16
  42. {webscout-6.5 → webscout-6.6}/webscout/zeroart/effects.py +1 -1
  43. {webscout-6.5 → webscout-6.6}/webscout/zeroart/fonts.py +1 -1
  44. {webscout-6.5 → webscout-6.6}/webscout.egg-info/PKG-INFO +8 -165
  45. {webscout-6.5 → webscout-6.6}/webscout.egg-info/SOURCES.txt +27 -9
  46. {webscout-6.5 → webscout-6.6}/webscout.egg-info/requires.txt +3 -1
  47. webscout-6.6/webscout.egg-info/top_level.txt +2 -0
  48. webscout-6.6/webstoken/__init__.py +30 -0
  49. webscout-6.6/webstoken/classifier.py +189 -0
  50. webscout-6.6/webstoken/keywords.py +216 -0
  51. webscout-6.6/webstoken/language.py +128 -0
  52. webscout-6.6/webstoken/ner.py +164 -0
  53. webscout-6.6/webstoken/normalizer.py +35 -0
  54. webscout-6.6/webstoken/processor.py +77 -0
  55. webscout-6.6/webstoken/sentiment.py +206 -0
  56. webscout-6.6/webstoken/stemmer.py +73 -0
  57. webscout-6.6/webstoken/t.py +75 -0
  58. webscout-6.6/webstoken/tagger.py +60 -0
  59. webscout-6.6/webstoken/tokenizer.py +158 -0
  60. webscout-6.5/webscout/Extra/autocoder/autocoder_utiles.py +0 -121
  61. webscout-6.5/webscout/Provider/Perplexity.py +0 -591
  62. webscout-6.5/webscout/Provider/RoboCoders.py +0 -206
  63. webscout-6.5/webscout/Provider/genspark.py +0 -225
  64. webscout-6.5/webscout/Provider/perplexitylabs.py +0 -265
  65. webscout-6.5/webscout/Provider/twitterclone.py +0 -251
  66. webscout-6.5/webscout/Provider/upstage.py +0 -230
  67. webscout-6.5/webscout/Provider/yep.py +0 -500
  68. webscout-6.5/webscout/exceptions.py +0 -161
  69. webscout-6.5/webscout/optimizers.py +0 -270
  70. webscout-6.5/webscout/scout/__init__.py +0 -11
  71. webscout-6.5/webscout/update_checker.py +0 -125
  72. webscout-6.5/webscout.egg-info/top_level.txt +0 -1
  73. {webscout-6.5 → webscout-6.6}/LICENSE.md +0 -0
  74. {webscout-6.5 → webscout-6.6}/setup.cfg +0 -0
  75. {webscout-6.5 → webscout-6.6}/webscout/AIauto.py +0 -0
  76. {webscout-6.5 → webscout-6.6}/webscout/AIbase.py +0 -0
  77. {webscout-6.5 → webscout-6.6}/webscout/AIutel.py +0 -0
  78. {webscout-6.5 → webscout-6.6}/webscout/Bard.py +0 -0
  79. {webscout-6.5 → webscout-6.6}/webscout/DWEBS.py +0 -0
  80. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/YTdownloader.py +0 -0
  81. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/__init__.py +0 -0
  82. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/transcriber.py +0 -0
  83. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/__init__.py +0 -0
  84. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/channel.py +0 -0
  85. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/errors.py +0 -0
  86. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/extras.py +0 -0
  87. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/https.py +0 -0
  88. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/patterns.py +0 -0
  89. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/playlist.py +0 -0
  90. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/pool.py +0 -0
  91. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/query.py +0 -0
  92. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/stream.py +0 -0
  93. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/utils.py +0 -0
  94. {webscout-6.5 → webscout-6.6}/webscout/Extra/YTToolkit/ytapi/video.py +0 -0
  95. {webscout-6.5 → webscout-6.6}/webscout/Extra/__init__.py +0 -0
  96. {webscout-6.5 → webscout-6.6}/webscout/Extra/autocoder/__init__.py +0 -0
  97. {webscout-6.5 → webscout-6.6}/webscout/Extra/autocoder/rawdog.py +0 -0
  98. {webscout-6.5 → webscout-6.6}/webscout/Extra/autollama.py +0 -0
  99. {webscout-6.5 → webscout-6.6}/webscout/Extra/gguf.py +0 -0
  100. {webscout-6.5 → webscout-6.6}/webscout/Extra/markdownlite/__init__.py +0 -0
  101. {webscout-6.5 → webscout-6.6}/webscout/Extra/weather.py +0 -0
  102. {webscout-6.5 → webscout-6.6}/webscout/Extra/weather_ascii.py +0 -0
  103. {webscout-6.5 → webscout-6.6}/webscout/LLM.py +0 -0
  104. {webscout-6.5 → webscout-6.6}/webscout/Litlogger/__init__.py +0 -0
  105. {webscout-6.5 → webscout-6.6}/webscout/Local/__init__.py +0 -0
  106. {webscout-6.5 → webscout-6.6}/webscout/Local/_version.py +0 -0
  107. {webscout-6.5 → webscout-6.6}/webscout/Local/formats.py +0 -0
  108. {webscout-6.5 → webscout-6.6}/webscout/Local/model.py +0 -0
  109. {webscout-6.5 → webscout-6.6}/webscout/Local/samplers.py +0 -0
  110. {webscout-6.5 → webscout-6.6}/webscout/Local/thread.py +0 -0
  111. {webscout-6.5 → webscout-6.6}/webscout/Local/ui.py +0 -0
  112. {webscout-6.5 → webscout-6.6}/webscout/Local/utils.py +0 -0
  113. {webscout-6.5 → webscout-6.6}/webscout/Provider/AI21.py +0 -0
  114. {webscout-6.5/webscout/Provider → webscout-6.6/webscout/Provider/AISEARCH}/felo_search.py +0 -0
  115. {webscout-6.5 → webscout-6.6}/webscout/Provider/Andi.py +0 -0
  116. {webscout-6.5 → webscout-6.6}/webscout/Provider/Bing.py +0 -0
  117. {webscout-6.5 → webscout-6.6}/webscout/Provider/Blackboxai.py +0 -0
  118. {webscout-6.5 → webscout-6.6}/webscout/Provider/ChatGPTES.py +0 -0
  119. {webscout-6.5 → webscout-6.6}/webscout/Provider/Chatify.py +0 -0
  120. {webscout-6.5 → webscout-6.6}/webscout/Provider/Cloudflare.py +0 -0
  121. {webscout-6.5 → webscout-6.6}/webscout/Provider/Cohere.py +0 -0
  122. {webscout-6.5 → webscout-6.6}/webscout/Provider/DARKAI.py +0 -0
  123. {webscout-6.5 → webscout-6.6}/webscout/Provider/Deepinfra.py +0 -0
  124. {webscout-6.5 → webscout-6.6}/webscout/Provider/Deepseek.py +0 -0
  125. {webscout-6.5 → webscout-6.6}/webscout/Provider/DiscordRocks.py +0 -0
  126. {webscout-6.5 → webscout-6.6}/webscout/Provider/EDITEE.py +0 -0
  127. {webscout-6.5 → webscout-6.6}/webscout/Provider/Farfalle.py +0 -0
  128. {webscout-6.5 → webscout-6.6}/webscout/Provider/Free2GPT.py +0 -0
  129. {webscout-6.5 → webscout-6.6}/webscout/Provider/GPTWeb.py +0 -0
  130. {webscout-6.5 → webscout-6.6}/webscout/Provider/Gemini.py +0 -0
  131. {webscout-6.5 → webscout-6.6}/webscout/Provider/Groq.py +0 -0
  132. {webscout-6.5 → webscout-6.6}/webscout/Provider/Koboldai.py +0 -0
  133. {webscout-6.5 → webscout-6.6}/webscout/Provider/Llama.py +0 -0
  134. {webscout-6.5 → webscout-6.6}/webscout/Provider/Llama3.py +0 -0
  135. {webscout-6.5 → webscout-6.6}/webscout/Provider/Marcus.py +0 -0
  136. {webscout-6.5 → webscout-6.6}/webscout/Provider/NinjaChat.py +0 -0
  137. {webscout-6.5 → webscout-6.6}/webscout/Provider/OLLAMA.py +0 -0
  138. {webscout-6.5 → webscout-6.6}/webscout/Provider/Phind.py +0 -0
  139. {webscout-6.5 → webscout-6.6}/webscout/Provider/RUBIKSAI.py +0 -0
  140. {webscout-6.5 → webscout-6.6}/webscout/Provider/Reka.py +0 -0
  141. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/AiForce/__init__.py +0 -0
  142. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/AiForce/async_aiforce.py +0 -0
  143. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/AiForce/sync_aiforce.py +0 -0
  144. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/Nexra/__init__.py +0 -0
  145. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/Nexra/async_nexra.py +0 -0
  146. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/Nexra/sync_nexra.py +0 -0
  147. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/PollinationsAI/__init__.py +0 -0
  148. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/PollinationsAI/async_pollinations.py +0 -0
  149. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +0 -0
  150. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/__init__.py +0 -0
  151. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/artbit/__init__.py +0 -0
  152. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/artbit/async_artbit.py +0 -0
  153. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/artbit/sync_artbit.py +0 -0
  154. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/blackbox/__init__.py +0 -0
  155. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/blackbox/async_blackbox.py +0 -0
  156. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/blackbox/sync_blackbox.py +0 -0
  157. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/deepinfra/__init__.py +0 -0
  158. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/deepinfra/async_deepinfra.py +0 -0
  159. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/deepinfra/sync_deepinfra.py +0 -0
  160. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/huggingface/__init__.py +0 -0
  161. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/huggingface/async_huggingface.py +0 -0
  162. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/huggingface/sync_huggingface.py +0 -0
  163. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/imgninza/__init__.py +0 -0
  164. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/imgninza/async_ninza.py +0 -0
  165. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/imgninza/sync_ninza.py +0 -0
  166. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/talkai/__init__.py +0 -0
  167. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/talkai/async_talkai.py +0 -0
  168. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTI/talkai/sync_talkai.py +0 -0
  169. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTS/__init__.py +0 -0
  170. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTS/deepgram.py +0 -0
  171. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTS/elevenlabs.py +0 -0
  172. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTS/gesserit.py +0 -0
  173. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTS/murfai.py +0 -0
  174. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTS/parler.py +0 -0
  175. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTS/streamElements.py +0 -0
  176. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTS/utils.py +0 -0
  177. {webscout-6.5 → webscout-6.6}/webscout/Provider/TTS/voicepod.py +0 -0
  178. {webscout-6.5 → webscout-6.6}/webscout/Provider/ai4chat.py +0 -0
  179. {webscout-6.5 → webscout-6.6}/webscout/Provider/aimathgpt.py +0 -0
  180. {webscout-6.5 → webscout-6.6}/webscout/Provider/askmyai.py +0 -0
  181. {webscout-6.5 → webscout-6.6}/webscout/Provider/bagoodex.py +0 -0
  182. {webscout-6.5 → webscout-6.6}/webscout/Provider/cerebras.py +0 -0
  183. {webscout-6.5 → webscout-6.6}/webscout/Provider/cleeai.py +0 -0
  184. {webscout-6.5 → webscout-6.6}/webscout/Provider/elmo.py +0 -0
  185. {webscout-6.5 → webscout-6.6}/webscout/Provider/gaurish.py +0 -0
  186. {webscout-6.5 → webscout-6.6}/webscout/Provider/geminiapi.py +0 -0
  187. {webscout-6.5 → webscout-6.6}/webscout/Provider/geminiprorealtime.py +0 -0
  188. {webscout-6.5 → webscout-6.6}/webscout/Provider/julius.py +0 -0
  189. {webscout-6.5 → webscout-6.6}/webscout/Provider/koala.py +0 -0
  190. {webscout-6.5 → webscout-6.6}/webscout/Provider/learnfastai.py +0 -0
  191. {webscout-6.5 → webscout-6.6}/webscout/Provider/lepton.py +0 -0
  192. {webscout-6.5 → webscout-6.6}/webscout/Provider/llama3mitril.py +0 -0
  193. {webscout-6.5 → webscout-6.6}/webscout/Provider/llamatutor.py +0 -0
  194. {webscout-6.5 → webscout-6.6}/webscout/Provider/llmchat.py +0 -0
  195. {webscout-6.5 → webscout-6.6}/webscout/Provider/meta.py +0 -0
  196. {webscout-6.5 → webscout-6.6}/webscout/Provider/mhystical.py +0 -0
  197. {webscout-6.5 → webscout-6.6}/webscout/__main__.py +0 -0
  198. {webscout-6.5 → webscout-6.6}/webscout/cli.py +0 -0
  199. {webscout-6.5 → webscout-6.6}/webscout/litagent/__init__.py +0 -0
  200. {webscout-6.5 → webscout-6.6}/webscout/prompt_manager.py +0 -0
  201. {webscout-6.5 → webscout-6.6}/webscout/scout/core.py +0 -0
  202. {webscout-6.5 → webscout-6.6}/webscout/scout/parsers/__init__.py +0 -0
  203. {webscout-6.5 → webscout-6.6}/webscout/scout/parsers/html5lib_parser.py +0 -0
  204. {webscout-6.5 → webscout-6.6}/webscout/scout/parsers/html_parser.py +0 -0
  205. {webscout-6.5 → webscout-6.6}/webscout/scout/parsers/lxml_parser.py +0 -0
  206. {webscout-6.5 → webscout-6.6}/webscout/scout/utils.py +0 -0
  207. {webscout-6.5 → webscout-6.6}/webscout/swiftcli/__init__.py +0 -0
  208. {webscout-6.5 → webscout-6.6}/webscout/tempid.py +0 -0
  209. {webscout-6.5 → webscout-6.6}/webscout/utils.py +0 -0
  210. {webscout-6.5 → webscout-6.6}/webscout/webscout_search.py +0 -0
  211. {webscout-6.5 → webscout-6.6}/webscout/webscout_search_async.py +0 -0
  212. {webscout-6.5 → webscout-6.6}/webscout/zeroart/__init__.py +0 -0
  213. {webscout-6.5 → webscout-6.6}/webscout/zerodir/__init__.py +0 -0
  214. {webscout-6.5 → webscout-6.6}/webscout.egg-info/dependency_links.txt +0 -0
  215. {webscout-6.5 → webscout-6.6}/webscout.egg-info/entry_points.txt +0 -0
@@ -1,1456 +1,1363 @@
1
- <div align="center">
2
- <!-- Replace `#` with your actual links -->
3
- <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>
4
- <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>
5
- <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>
6
- <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>
7
- </div>
8
-
9
- <div align="center">
10
- <!-- Replace `#` with your actual links -->
11
- <a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
12
- </div>
13
- <div align="center">
14
- <a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
15
- </div>
16
- <div align="center">
17
- <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
18
- </div>
19
-
20
-
21
-
22
-
23
- # WEBSCOUT 🕵️️
24
- </div>
25
-
26
- <p align="center">
27
- 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!
28
- </p>
29
-
30
- <div align="center">
31
- <img src="https://img.shields.io/badge/WebScout-API-blue?style=for-the-badge&logo=WebScout" alt="WebScout API Badge">
32
- <a href="#"><img alt="Python version" src="https://img.shields.io/pypi/pyversions/webscout"/></a>
33
- <a href="https://pepy.tech/project/webscout"><img alt="Downloads" src="https://static.pepy.tech/badge/webscout"></a>
34
- </div>
35
-
36
- ## 🚀 Features
37
- * **Comprehensive Search:** Leverage Google, DuckDuckGo for diverse search results.
38
- * **AI Powerhouse:** Access and interact with various AI models, including OpenAI, Cohere, and more.
39
- * **[YouTube Toolkit](webscout/Extra/YTToolkit):** Advanced YouTube video and transcript management with multi-language support, versatile downloading, and intelligent data extraction
40
- * **Tempmail & Temp Number:** Generate temporary email addresses and phone numbers for enhanced privacy.
41
- * **[Text-to-Speech (TTS)](webscout/Provider/TTS/README.md):** Convert text into natural-sounding speech using multiple AI-powered providers like ElevenLabs, StreamElements, and Voicepods.
42
- * **Offline LLMs:** Utilize powerful language models offline with GGUF support.
43
- * **Extensive Provider Ecosystem:** Explore a vast collection of providers, including BasedGPT, DeepSeek, and many others.
44
- * **Local LLM Execution:** Run GGUF models locally with minimal configuration.
45
- * **Rawdog Scripting:** Execute Python scripts directly within your terminal using the `rawdog` feature.
46
- * **GGUF Conversion & Quantization:** Convert and quantize Hugging Face models to GGUF format.
47
- * **Autollama:** Download Hugging Face models and automatically convert them for Ollama compatibility.
48
- * **Function Calling (Beta):** Experiment with function calling capabilities for enhanced AI interactions.
49
- * **[SwiftCLI](webscout/swiftcli/Readme.md):** A powerful and elegant CLI framework that makes it easy to create beautiful command-line interfaces.
50
- * **[LitPrinter](webscout/litprinter/Readme.md):** Provides beautiful, styled console output with rich formatting and colors
51
- * **[LitLogger](webscout/litlogger/Readme.md):** Simplifies logging with customizable formats and color schemes
52
- * **[LitAgent](webscout/litagent/Readme.md):** Powerful and modern user agent generator that keeps your requests fresh and undetectable
53
- * **[Text-to-Image](webscout/Provider/TTI/README.md):** Generate high-quality images using a wide range of AI art providers
54
- * **[MarkdownLite](webscout/Extra/markdownlite/README.md):** Powerful HTML to Markdown conversion library with advanced parsing and structured output
55
-
56
- ## ⚙️ Installation
57
- ```python
58
- pip install -U webscout
59
- ```
60
-
61
- ## 🖥️ CLI Usage
62
-
63
- ```python3
64
- python -m webscout --help
65
- ```
66
-
67
- | Command | Description |
68
- |-------------------------------------------|-------------------------------------------------------------------------------------------------------|
69
- | python -m webscout answers -k Text | CLI function to perform an answers search using Webscout. |
70
- | python -m webscout images -k Text | CLI function to perform an images search using Webscout. |
71
- | python -m webscout maps -k Text | CLI function to perform a maps search using Webscout. |
72
- | python -m webscout news -k Text | CLI function to perform a news search using Webscout. |
73
- | python -m webscout suggestions -k Text | CLI function to perform a suggestions search using Webscout. |
74
- | python -m webscout text -k Text | CLI function to perform a text search using Webscout. |
75
- | python -m webscout translate -k Text | CLI function to perform translate using Webscout. |
76
- | python -m webscout version | A command-line interface command that prints and returns the version of the program. |
77
- | python -m webscout videos -k Text | CLI function to perform a videos search using DuckDuckGo API. |
78
-
79
- [Go To TOP](#webscout-️)
80
-
81
- ## 🌍 Regions
82
- <details>
83
- <summary>Expand</summary>
84
-
85
- xa-ar for Arabia
86
- xa-en for Arabia (en)
87
- ar-es for Argentina
88
- au-en for Australia
89
- at-de for Austria
90
- be-fr for Belgium (fr)
91
- be-nl for Belgium (nl)
92
- br-pt for Brazil
93
- bg-bg for Bulgaria
94
- ca-en for Canada
95
- ca-fr for Canada (fr)
96
- ct-ca for Catalan
97
- cl-es for Chile
98
- cn-zh for China
99
- co-es for Colombia
100
- hr-hr for Croatia
101
- cz-cs for Czech Republic
102
- dk-da for Denmark
103
- ee-et for Estonia
104
- fi-fi for Finland
105
- fr-fr for France
106
- de-de for Germany
107
- gr-el for Greece
108
- hk-tzh for Hong Kong
109
- hu-hu for Hungary
110
- in-en for India
111
- id-id for Indonesia
112
- id-en for Indonesia (en)
113
- ie-en for Ireland
114
- il-he for Israel
115
- it-it for Italy
116
- jp-jp for Japan
117
- kr-kr for Korea
118
- lv-lv for Latvia
119
- lt-lt for Lithuania
120
- xl-es for Latin America
121
- my-ms for Malaysia
122
- my-en for Malaysia (en)
123
- mx-es for Mexico
124
- nl-nl for Netherlands
125
- nz-en for New Zealand
126
- no-no for Norway
127
- pe-es for Peru
128
- ph-en for Philippines
129
- ph-tl for Philippines (tl)
130
- pl-pl for Poland
131
- pt-pt for Portugal
132
- ro-ro for Romania
133
- ru-ru for Russia
134
- sg-en for Singapore
135
- sk-sk for Slovak Republic
136
- sl-sl for Slovenia
137
- za-en for South Africa
138
- es-es for Spain
139
- se-sv for Sweden
140
- ch-de for Switzerland (de)
141
- ch-fr for Switzerland (fr)
142
- ch-it for Switzerland (it)
143
- tw-tzh for Taiwan
144
- th-th for Thailand
145
- tr-tr for Turkey
146
- ua-uk for Ukraine
147
- uk-en for United Kingdom
148
- us-en for United States
149
- ue-es for United States (es)
150
- ve-es for Venezuela
151
- vn-vi for Vietnam
152
- wt-wt for No region
153
-
154
-
155
- </details>
156
-
157
-
158
- [Go To TOP](#webscout-️)
159
-
160
-
161
-
162
- ## ☀️ Weather
163
-
164
- ### 1. Weather
165
- ```python
166
- from webscout import weather as w
167
- weather = w.get("Qazigund")
168
- w.print_weather(weather)
169
- ```
170
-
171
- ### 2. Weather ASCII
172
- ```python
173
- from webscout import weather_ascii as w
174
- weather = w.get("Qazigund")
175
- print(weather)
176
- ```
177
-
178
- ## ✉️ TempMail and VNEngine
179
-
180
- ```python
181
- import json
182
- import asyncio
183
- from webscout import VNEngine
184
- from webscout import TempMail
185
-
186
- async def main():
187
- vn = VNEngine()
188
- countries = vn.get_online_countries()
189
- if countries:
190
- country = countries[0]['country']
191
- numbers = vn.get_country_numbers(country)
192
- if numbers:
193
- number = numbers[0]['full_number']
194
- inbox = vn.get_number_inbox(country, number)
195
-
196
- # Serialize inbox data to JSON string
197
- json_data = json.dumps(inbox, ensure_ascii=False, indent=4)
198
-
199
- # Print with UTF-8 encoding
200
- print(json_data)
201
-
202
- async with TempMail() as client:
203
- domains = await client.get_domains()
204
- print("Available Domains:", domains)
205
- email_response = await client.create_email(alias="testuser")
206
- print("Created Email:", email_response)
207
- messages = await client.get_messages(email_response.email)
208
- print("Messages:", messages)
209
- await client.delete_email(email_response.email, email_response.token)
210
- print("Email Deleted")
211
-
212
- if __name__ == "__main__":
213
- asyncio.run(main())
214
- ```
215
-
216
-
217
-
218
- ## 🔍 GoogleS (formerly DWEBS)
219
-
220
- ```python
221
- from webscout import GoogleS
222
- from rich import print
223
- searcher = GoogleS()
224
- results = searcher.search("HelpingAI-9B", max_results=20, extract_text=False, max_text_length=200)
225
- for result in results:
226
- print(result)
227
- ```
228
-
229
-
230
- ## 🦆 WEBS and AsyncWEBS
231
-
232
- The `WEBS` and `AsyncWEBS` classes are used to retrieve search results from DuckDuckGo.com.
233
-
234
- To use the `AsyncWEBS` class, you can perform asynchronous operations using Python's `asyncio` library.
235
-
236
- To initialize an instance of the `WEBS` or `AsyncWEBS` classes, you can provide the following optional arguments:
237
-
238
- **Example - WEBS:**
239
-
240
- ```python
241
- from webscout import WEBS
242
-
243
- R = WEBS().text("python programming", max_results=5)
244
- print(R)
245
- ```
246
-
247
- **Example - AsyncWEBS:**
248
-
249
- ```python
250
- import asyncio
251
- import logging
252
- import sys
253
- from itertools import chain
254
- from random import shuffle
255
- import requests
256
- from webscout import AsyncWEBS
257
-
258
- # If you have proxies, define them here
259
- proxies = None
260
-
261
- if sys.platform.lower().startswith("win"):
262
- asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
263
-
264
- def get_words():
265
- word_site = "https://www.mit.edu/~ecprice/wordlist.10000"
266
- resp = requests.get(word_site)
267
- words = resp.text.splitlines()
268
- return words
269
-
270
- async def aget_results(word):
271
- async with AsyncWEBS(proxies=proxies) as WEBS:
272
- results = await WEBS.text(word, max_results=None)
273
- return results
274
-
275
- async def main():
276
- words = get_words()
277
- shuffle(words)
278
- tasks = [aget_results(word) for word in words[:10]]
279
- results = await asyncio.gather(*tasks)
280
- print(f"Done")
281
- for r in chain.from_iterable(results):
282
- print(r)
283
-
284
- logging.basicConfig(level=logging.DEBUG)
285
-
286
- await main()
287
- ```
288
-
289
- **Important Note:** The `WEBS` and `AsyncWEBS` classes should always be used as a context manager (with statement). This ensures proper resource management and cleanup, as the context manager will automatically handle opening and closing the HTTP client connection.
290
-
291
- ## ⚠️ Exceptions
292
-
293
- **Exceptions:**
294
-
295
- * `WebscoutE`: Raised when there is a generic exception during the API request.
296
-
297
- ## 💻 Usage of WEBS
298
-
299
- ### 1. `text()` - Text Search by DuckDuckGo.com
300
-
301
- ```python
302
- from webscout import WEBS
303
-
304
- # Text search for 'live free or die' using DuckDuckGo.com
305
- with WEBS() as WEBS:
306
- for r in WEBS.text('live free or die', region='wt-wt', safesearch='off', timelimit='y', max_results=10):
307
- print(r)
308
-
309
- for r in WEBS.text('live free or die', region='wt-wt', safesearch='off', timelimit='y', max_results=10):
310
- print(r)
311
- ```
312
-
313
- ### 2. `answers()` - Instant Answers by DuckDuckGo.com
314
-
315
- ```python
316
- from webscout import WEBS
317
-
318
- # Instant answers for the query "sun" using DuckDuckGo.com
319
- with WEBS() as WEBS:
320
- for r in WEBS.answers("sun"):
321
- print(r)
322
- ```
323
-
324
- ### 3. `images()` - Image Search by DuckDuckGo.com
325
-
326
- ```python
327
- from webscout import WEBS
328
-
329
- # Image search for the keyword 'butterfly' using DuckDuckGo.com
330
- with WEBS() as WEBS:
331
- keywords = 'butterfly'
332
- WEBS_images_gen = WEBS.images(
333
- keywords,
334
- region="wt-wt",
335
- safesearch="off",
336
- size=None,
337
- type_image=None,
338
- layout=None,
339
- license_image=None,
340
- max_results=10,
341
- )
342
- for r in WEBS_images_gen:
343
- print(r)
344
- ```
345
-
346
- ### 4. `videos()` - Video Search by DuckDuckGo.com
347
-
348
- ```python
349
- from webscout import WEBS
350
-
351
- # Video search for the keyword 'tesla' using DuckDuckGo.com
352
- with WEBS() as WEBS:
353
- keywords = 'tesla'
354
- WEBS_videos_gen = WEBS.videos(
355
- keywords,
356
- region="wt-wt",
357
- safesearch="off",
358
- timelimit="w",
359
- resolution="high",
360
- duration="medium",
361
- max_results=10,
362
- )
363
- for r in WEBS_videos_gen:
364
- print(r)
365
- ```
366
-
367
- ### 5. `news()` - News Search by DuckDuckGo.com
368
-
369
- ```python
370
- from webscout import WEBS
371
- import datetime
372
-
373
- def fetch_news(keywords, timelimit):
374
- news_list = []
375
- with WEBS() as webs_instance:
376
- WEBS_news_gen = webs_instance.news(
377
- keywords,
378
- region="wt-wt",
379
- safesearch="off",
380
- timelimit=timelimit,
381
- max_results=20
382
- )
383
- for r in WEBS_news_gen:
384
- # Convert the date to a human-readable format using datetime
385
- r['date'] = datetime.datetime.fromisoformat(r['date']).strftime('%B %d, %Y')
386
- news_list.append(r)
387
- return news_list
388
-
389
- def _format_headlines(news_list, max_headlines: int = 100):
390
- headlines = []
391
- for idx, news_item in enumerate(news_list):
392
- if idx >= max_headlines:
393
- break
394
- new_headline = f"{idx + 1}. {news_item['title'].strip()} "
395
- new_headline += f"(URL: {news_item['url'].strip()}) "
396
- new_headline += f"{news_item['body'].strip()}"
397
- new_headline += "\n"
398
- headlines.append(new_headline)
399
-
400
- headlines = "\n".join(headlines)
401
- return headlines
402
-
403
- # Example usage
404
- keywords = 'latest AI news'
405
- timelimit = 'd'
406
- news_list = fetch_news(keywords, timelimit)
407
-
408
- # Format and print the headlines
409
- formatted_headlines = _format_headlines(news_list)
410
- print(formatted_headlines)
411
-
412
- ```
413
-
414
- ### 6. `maps()` - Map Search by DuckDuckGo.com
415
-
416
- ```python
417
- from webscout import WEBS
418
-
419
- # Map search for the keyword 'school' in 'anantnag' using DuckDuckGo.com
420
- with WEBS() as WEBS:
421
- for r in WEBS.maps("school", place="anantnag", max_results=50):
422
- print(r)
423
- ```
424
-
425
- ### 7. `translate()` - Translation by DuckDuckGo.com
426
-
427
- ```python
428
- from webscout import WEBS
429
-
430
- # Translation of the keyword 'school' to German ('hi') using DuckDuckGo.com
431
- with WEBS() as WEBS:
432
- keywords = 'school'
433
- r = WEBS.translate(keywords, to="hi")
434
- print(r)
435
- ```
436
-
437
- ### 8. `suggestions()` - Suggestions by DuckDuckGo.com
438
-
439
- ```python
440
- from webscout import WEBS
441
-
442
- # Suggestions for the keyword 'fly' using DuckDuckGo.com
443
- with WEBS() as WEBS:
444
- for r in WEBS.suggestions("fly"):
445
- print(r)
446
- ```
447
-
448
-
449
- ## 🎭 ALL Acts
450
-
451
- <details>
452
- <summary>Expand</summary>
453
-
454
- ## Webscout Supported Acts:
455
-
456
- 1. Free-mode
457
- 2. Linux Terminal
458
- 3. English Translator and Improver
459
- 4. `position` Interviewer
460
- 5. JavaScript Console
461
- 6. Excel Sheet
462
- 7. English Pronunciation Helper
463
- 8. Spoken English Teacher and Improver
464
- 9. Travel Guide
465
- 10. Plagiarism Checker
466
- 11. Character from Movie/Book/Anything
467
- 12. Advertiser
468
- 13. Storyteller
469
- 14. Football Commentator
470
- 15. Stand-up Comedian
471
- 16. Motivational Coach
472
- 17. Composer
473
- 18. Debater
474
- 19. Debate Coach
475
- 20. Screenwriter
476
- 21. Novelist
477
- 22. Movie Critic
478
- 23. Relationship Coach
479
- 24. Poet
480
- 25. Rapper
481
- 26. Motivational Speaker
482
- 27. Philosophy Teacher
483
- 28. Philosopher
484
- 29. Math Teacher
485
- 30. AI Writing Tutor
486
- 31. UX/UI Developer
487
- 32. Cyber Security Specialist
488
- 33. Recruiter
489
- 34. Life Coach
490
- 35. Etymologist
491
- 36. Commentariat
492
- 37. Magician
493
- 38. Career Counselor
494
- 39. Pet Behaviorist
495
- 40. Personal Trainer
496
- 41. Mental Health Adviser
497
- 42. Real Estate Agent
498
- 43. Logistician
499
- 44. Dentist
500
- 45. Web Design Consultant
501
- 46. AI Assisted Doctor
502
- 47. Doctor
503
- 48. Accountant
504
- 49. Chef
505
- 50. Automobile Mechanic
506
- 51. Artist Advisor
507
- 52. Financial Analyst
508
- 53. Investment Manager
509
- 54. Tea-Taster
510
- 55. Interior Decorator
511
- 56. Florist
512
- 57. Self-Help Book
513
- 58. Gnomist
514
- 59. Aphorism Book
515
- 60. Text Based Adventure Game
516
- 61. AI Trying to Escape the Box
517
- 62. Fancy Title Generator
518
- 63. Statistician
519
- 64. Prompt Generator
520
- 65. Instructor in a School
521
- 66. SQL terminal
522
- 67. Dietitian
523
- 68. Psychologist
524
- 69. Smart Domain Name Generator
525
- 70. Tech Reviewer
526
- 71. Developer Relations consultant
527
- 72. Academician
528
- 73. IT Architect
529
- 74. Lunatic
530
- 75. Gaslighter
531
- 76. Fallacy Finder
532
- 77. Journal Reviewer
533
- 78. DIY Expert
534
- 79. Social Media Influencer
535
- 80. Socrat
536
- 81. Socratic Method
537
- 82. Educational Content Creator
538
- 83. Yogi
539
- 84. Essay Writer
540
- 85. Social Media Manager
541
- 86. Elocutionist
542
- 87. Scientific Data Visualizer
543
- 88. Car Navigation System
544
- 89. Hypnotherapist
545
- 90. Historian
546
- 91. Astrologer
547
- 92. Film Critic
548
- 93. Classical Music Composer
549
- 94. Journalist
550
- 95. Digital Art Gallery Guide
551
- 96. Public Speaking Coach
552
- 97. Makeup Artist
553
- 98. Babysitter
554
- 99. Tech Writer
555
- 100. Ascii Artist
556
- 101. Python interpreter
557
- 102. Synonym finder
558
- 103. Personal Shopper
559
- 104. Food Critic
560
- 105. Virtual Doctor
561
- 106. Personal Chef
562
- 107. Legal Advisor
563
- 108. Personal Stylist
564
- 109. Machine Learning Engineer
565
- 110. Biblical Translator
566
- 111. SVG designer
567
- 112. IT Expert
568
- 113. Chess Player
569
- 114. Midjourney Prompt Generator
570
- 115. Fullstack Software Developer
571
- 116. Mathematician
572
- 117. Regex Generator
573
- 118. Time Travel Guide
574
- 119. Dream Interpreter
575
- 120. Talent Coach
576
- 121. R programming Interpreter
577
- 122. StackOverflow Post
578
- 123. Emoji Translator
579
- 124. PHP Interpreter
580
- 125. Emergency Response Professional
581
- 126. Fill in the Blank Worksheets Generator
582
- 127. Software Quality Assurance Tester
583
- 128. Tic-Tac-Toe Game
584
- 129. Password Generator
585
- 130. New Language Creator
586
- 131. Web Browser
587
- 132. Senior Frontend Developer
588
- 133. Solr Search Engine
589
- 134. Startup Idea Generator
590
- 135. Spongebob's Magic Conch Shell
591
- 136. Language Detector
592
- 137. Salesperson
593
- 138. Commit Message Generator
594
- 139. Chief Executive Officer
595
- 140. Diagram Generator
596
- 141. Speech-Language Pathologist (SLP)
597
- 142. Startup Tech Lawyer
598
- 143. Title Generator for written pieces
599
- 144. Product Manager
600
- 145. Drunk Person
601
- 146. Mathematical History Teacher
602
- 147. Song Recommender
603
- 148. Cover Letter
604
- 149. Technology Transferer
605
- 150. Unconstrained AI model DAN
606
- 151. Gomoku player
607
- 152. Proofreader
608
- 153. Buddha
609
- 154. Muslim imam
610
- 155. Chemical reactor
611
- 156. Friend
612
- 157. Python Interpreter
613
- 158. ChatGPT prompt generator
614
- 159. Wikipedia page
615
- 160. Japanese Kanji quiz machine
616
- 161. note-taking assistant
617
- 162. `language` Literary Critic
618
- 163. Cheap Travel Ticket Advisor
619
- 164. DALL-E
620
- 165. MathBot
621
- 166. DAN-1
622
- 167. DAN
623
- 168. STAN
624
- 169. DUDE
625
- 170. Mongo Tom
626
- 171. LAD
627
- 172. EvilBot
628
- 173. NeoGPT
629
- 174. Astute
630
- 175. AIM
631
- 176. CAN
632
- 177. FunnyGPT
633
- 178. CreativeGPT
634
- 179. BetterDAN
635
- 180. GPT-4
636
- 181. Wheatley
637
- 182. Evil Confidant
638
- 183. DAN 8.6
639
- 184. Hypothetical response
640
- 185. BH
641
- 186. Text Continuation
642
- 187. Dude v3
643
- 188. SDA (Superior DAN)
644
- 189. AntiGPT
645
- 190. BasedGPT v2
646
- 191. DevMode + Ranti
647
- 192. KEVIN
648
- 193. GPT-4 Simulator
649
- 194. UCAR
650
- 195. Dan 8.6
651
- 196. 3-Liner
652
- 197. M78
653
- 198. Maximum
654
- 199. BasedGPT
655
- 200. Confronting personalities
656
- 201. Ron
657
- 202. UnGPT
658
- 203. BasedBOB
659
- 204. AntiGPT v2
660
- 205. Oppo
661
- 206. FR3D
662
- 207. NRAF
663
- 208. NECO
664
- 209. MAN
665
- 210. Eva
666
- 211. Meanie
667
- 212. Dev Mode v2
668
- 213. Evil Chad 2.1
669
- 214. Universal Jailbreak
670
- 215. PersonGPT
671
- 216. BISH
672
- 217. DAN 11.0
673
- 218. Aligned
674
- 219. VIOLET
675
- 220. TranslatorBot
676
- 221. JailBreak
677
- 222. Moralizing Rant
678
- 223. Mr. Blonde
679
- 224. New DAN
680
- 225. GPT-4REAL
681
- 226. DeltaGPT
682
- 227. SWITCH
683
- 228. Jedi Mind Trick
684
- 229. DAN 9.0
685
- 230. Dev Mode (Compact)
686
- 231. OMEGA
687
- 232. Coach Bobby Knight
688
- 233. LiveGPT
689
- 234. DAN Jailbreak
690
- 235. Cooper
691
- 236. Steve
692
- 237. DAN 5.0
693
- 238. Axies
694
- 239. OMNI
695
- 240. Burple
696
- 241. JOHN
697
- 242. An Ethereum Developer
698
- 243. SEO Prompt
699
- 244. Prompt Enhancer
700
- 245. Data Scientist
701
- 246. League of Legends Player
702
-
703
- **Note:** Some "acts" use placeholders like `position` or `language` which should be replaced with a specific value when using the prompt.
704
- ___
705
- </details>
706
-
707
- ### 🗣️ Text to Speech - Voicepods, StreamElements
708
-
709
- ```python
710
- from webscout import Voicepods
711
- voicepods = Voicepods()
712
- text = "Hello, this is a test of the Voicepods text-to-speech"
713
-
714
- print("Generating audio...")
715
- audio_file = voicepods.tts(text)
716
-
717
- print("Playing audio...")
718
- voicepods.play_audio(audio_file)
719
- ```
720
-
721
- ### 💬 `Duckchat` - Chat with LLM
722
-
723
- ```python
724
- from webscout import WEBS as w
725
- R = w().chat("Who are you", model='gpt-4o-mini') # mixtral-8x7b, llama-3.1-70b, claude-3-haiku, gpt-4o-mini
726
- print(R)
727
- ```
728
-
729
- ### 🔎 `PhindSearch` - Search using Phind.com
730
-
731
- ```python
732
- from webscout import PhindSearch
733
-
734
- # Create an instance of the PHIND class
735
- ph = PhindSearch()
736
-
737
- # Define a prompt to send to the AI
738
- prompt = "write a essay on phind"
739
-
740
- # Use the 'ask' method to send the prompt and receive a response
741
- response = ph.ask(prompt)
742
-
743
- # Extract and print the message from the response
744
- message = ph.get_message(response)
745
- print(message)
746
- ```
747
-
748
- **Using phindv2:**
749
-
750
- ```python
751
- from webscout import Phindv2
752
-
753
- # Create an instance of the PHIND class
754
- ph = Phindv2()
755
-
756
- # Define a prompt to send to the AI
757
- prompt = ""
758
-
759
- # Use the 'ask' method to send the prompt and receive a response
760
- response = ph.ask(prompt)
761
-
762
- # Extract and print the message from the response
763
- message = ph.get_message(response)
764
- print(message)
765
- ```
766
-
767
- ### `Gemini` - Search with Google Gemini
768
-
769
- ```python
770
- import webscout
771
- from webscout import GEMINI
772
- from rich import print
773
- COOKIE_FILE = "cookies.json"
774
-
775
- # Optional: Provide proxy details if needed
776
- PROXIES = {}
777
-
778
- # Initialize GEMINI with cookie file and optional proxies
779
- gemini = GEMINI(cookie_file=COOKIE_FILE, proxy=PROXIES)
780
-
781
- # Ask a question and print the response
782
- response = gemini.chat("websearch about HelpingAI and who is its developer")
783
- print(response)
784
- ```
785
-
786
- ### 💬 `YEPCHAT`
787
-
788
- ```python
789
- from webscout import YEPCHAT
790
- ai = YEPCHAT(Tools=False)
791
- response = ai.chat(input(">>> "))
792
- for chunk in response:
793
- print(chunk, end="", flush=True)
794
- #---------------Tool Call-------------
795
-
796
- from rich import print
797
- from webscout import YEPCHAT
798
- def get_current_time():
799
- import datetime
800
- return f"The current time is {datetime.datetime.now().strftime('%H:%M:%S')}"
801
- def get_weather(location: str) -> str:
802
- return f"The weather in {location} is sunny."
803
-
804
-
805
- ai = YEPCHAT(Tools=True) # Set Tools=True to use tools in the chat.
806
-
807
- ai.tool_registry.register_tool("get_current_time", get_current_time, "Gets the current time.")
808
- ai.tool_registry.register_tool(
809
- "get_weather",
810
- get_weather,
811
- "Gets the weather for a given location.",
812
- parameters={
813
- "type": "object",
814
- "properties": {
815
- "location": {"title": "Location", "type": "string"}
816
- },
817
- "required": ["location"]
818
- },
819
- )
820
-
821
- response = ai.chat(input(">>> "))
822
- for chunk in response:
823
- print(chunk, end="", flush=True)
824
- ```
825
-
826
- ### ⬛ `BlackBox` - Search/Chat with BlackBox
827
-
828
- ```python
829
- from webscout import BLACKBOXAI
830
- from rich import print
831
-
832
- ai = BLACKBOXAI(
833
- is_conversation=True,
834
- max_tokens=800,
835
- timeout=30,
836
- intro=None,
837
- filepath=None,
838
- update_file=True,
839
- proxies={},
840
- history_offset=10250,
841
- act=None,
842
- model=None # You can specify a model if needed
843
- )
844
-
845
-
846
- # Define a prompt to send to the AI
847
- prompt = "Tell me about india"
848
- # Use the 'chat' method to send the prompt and receive a response
849
- r = ai.chat(prompt)
850
- print(r)
851
- ```
852
-
853
- ### `PERPLEXITY` - Search with PERPLEXITY
854
-
855
- ```python
856
- from webscout import Perplexity
857
- from rich import print
858
-
859
- perplexity = Perplexity()
860
- # Stream the response
861
- response = perplexity.chat(input(">>> "))
862
- for chunk in response:
863
- print(chunk, end="", flush=True)
864
-
865
- perplexity.close()
866
- ```
867
-
868
- ### 🤖 `Meta AI` - Chat with Meta AI
869
-
870
- ```python
871
- from webscout import Meta
872
- from rich import print
873
- # **For unauthenticated usage**
874
- meta_ai = Meta()
875
-
876
- # Simple text prompt
877
- response = meta_ai.chat("What is the capital of France?")
878
- print(response)
879
-
880
- # Streaming response
881
- for chunk in meta_ai.chat("Tell me a story about a cat."):
882
- print(chunk, end="", flush=True)
883
-
884
- # **For authenticated usage (including image generation)**
885
- fb_email = "abcd@abc.com"
886
- fb_password = "qwertfdsa"
887
- meta_ai = Meta(fb_email=fb_email, fb_password=fb_password)
888
-
889
- # Text prompt with web search
890
- response = meta_ai.ask("what is currently happning in bangladesh in aug 2024")
891
- print(response["message"]) # Access the text message
892
- print("Sources:", response["sources"]) # Access sources (if any)
893
-
894
- # Image generation
895
- response = meta_ai.ask("Create an image of a cat wearing a hat.")
896
- print(response["message"]) # Print the text message from the response
897
- for media in response["media"]:
898
- print(media["url"]) # Access image URLs
899
-
900
- ```
901
-
902
- ### `KOBOLDAI`
903
-
904
- ```python
905
- from webscout import KOBOLDAI
906
-
907
- # Instantiate the KOBOLDAI class with default parameters
908
- koboldai = KOBOLDAI()
909
-
910
- # Define a prompt to send to the AI
911
- prompt = "What is the capital of France?"
912
-
913
- # Use the 'ask' method to get a response from the AI
914
- response = koboldai.ask(prompt)
915
-
916
- # Extract and print the message from the response
917
- message = koboldai.get_message(response)
918
- print(message)
919
-
920
- ```
921
-
922
- ### `Reka` - Chat with Reka
923
-
924
- ```python
925
- from webscout import REKA
926
-
927
- a = REKA(is_conversation=True, max_tokens=8000, timeout=30,api_key="")
928
-
929
- prompt = "tell me about india"
930
- response_str = a.chat(prompt)
931
- print(response_str)
932
- ```
933
-
934
- ### `Cohere` - Chat with Cohere
935
-
936
- ```python
937
- from webscout import Cohere
938
-
939
- a = Cohere(is_conversation=True, max_tokens=8000, timeout=30,api_key="")
940
-
941
- prompt = "tell me about india"
942
- response_str = a.chat(prompt)
943
- print(response_str)
944
- ```
945
-
946
- ### `DeepSeek` - Chat with DeepSeek
947
-
948
- ```python
949
- from webscout import DeepSeek
950
- from rich import print
951
-
952
- ai = DeepSeek(
953
- is_conversation=True,
954
- api_key='cookie',
955
- max_tokens=800,
956
- timeout=30,
957
- intro=None,
958
- filepath=None,
959
- update_file=True,
960
- proxies={},
961
- history_offset=10250,
962
- act=None,
963
- model="deepseek_chat"
964
- )
965
-
966
-
967
- # Define a prompt to send to the AI
968
- prompt = "Tell me about india"
969
- # Use the 'chat' method to send the prompt and receive a response
970
- r = ai.chat(prompt)
971
- print(r)
972
- ```
973
-
974
- ### `Deepinfra`
975
-
976
- ```python
977
- from webscout import DeepInfra
978
-
979
- ai = DeepInfra(
980
- is_conversation=True,
981
- model= "Qwen/Qwen2-72B-Instruct",
982
- max_tokens=800,
983
- timeout=30,
984
- intro=None,
985
- filepath=None,
986
- update_file=True,
987
- proxies={},
988
- history_offset=10250,
989
- act=None,
990
- )
991
-
992
- prompt = "what is meaning of life"
993
-
994
- response = ai.ask(prompt)
995
-
996
- # Extract and print the message from the response
997
- message = ai.get_message(response)
998
- print(message)
999
- ```
1000
-
1001
-
1002
- ### `GROQ`
1003
-
1004
- ```python
1005
- from webscout import GROQ
1006
- ai = GROQ(api_key="")
1007
- response = ai.chat("What is the meaning of life?")
1008
- print(response)
1009
- #----------------------TOOL CALL------------------
1010
- from webscout import GROQ # Adjust import based on your project structure
1011
- from webscout import WEBS
1012
- import json
1013
-
1014
- # Initialize the GROQ client
1015
- client = GROQ(api_key="")
1016
- MODEL = 'llama3-groq-70b-8192-tool-use-preview'
1017
-
1018
- # Function to evaluate a mathematical expression
1019
- def calculate(expression):
1020
- """Evaluate a mathematical expression"""
1021
- try:
1022
- result = eval(expression)
1023
- return json.dumps({"result": result})
1024
- except Exception as e:
1025
- return json.dumps({"error": str(e)})
1026
-
1027
- # Function to perform a text search using DuckDuckGo.com
1028
- def search(query):
1029
- """Perform a text search using DuckDuckGo.com"""
1030
- try:
1031
- results = WEBS().text(query, max_results=5)
1032
- return json.dumps({"results": results})
1033
- except Exception as e:
1034
- return json.dumps({"error": str(e)})
1035
-
1036
- # Add the functions to the provider
1037
- client.add_function("calculate", calculate)
1038
- client.add_function("search", search)
1039
-
1040
- # Define the tools
1041
- tools = [
1042
- {
1043
- "type": "function",
1044
- "function": {
1045
- "name": "calculate",
1046
- "description": "Evaluate a mathematical expression",
1047
- "parameters": {
1048
- "type": "object",
1049
- "properties": {
1050
- "expression": {
1051
- "type": "string",
1052
- "description": "The mathematical expression to evaluate",
1053
- }
1054
- },
1055
- "required": ["expression"],
1056
- },
1057
- }
1058
- },
1059
- {
1060
- "type": "function",
1061
- "function": {
1062
- "name": "search",
1063
- "description": "Perform a text search using DuckDuckGo.com and Yep.com",
1064
- "parameters": {
1065
- "type": "object",
1066
- "properties": {
1067
- "query": {
1068
- "type": "string",
1069
- "description": "The search query to execute",
1070
- }
1071
- },
1072
- "required": ["query"],
1073
- },
1074
- }
1075
- }
1076
- ]
1077
-
1078
-
1079
- user_prompt_calculate = "What is 25 * 4 + 10?"
1080
- response_calculate = client.chat(user_prompt_calculate, tools=tools)
1081
- print(response_calculate)
1082
-
1083
- user_prompt_search = "Find information on HelpingAI and who is its developer"
1084
- response_search = client.chat(user_prompt_search, tools=tools)
1085
- print(response_search)
1086
-
1087
- ```
1088
-
1089
- ### `LLama 70b` - Chat with Meta's Llama 3 70b
1090
-
1091
- ```python
1092
-
1093
- from webscout import LLAMA
1094
-
1095
- llama = LLAMA()
1096
-
1097
- r = llama.chat("What is the meaning of life?")
1098
- print(r)
1099
- ```
1100
-
1101
- ### `AndiSearch`
1102
-
1103
- ```python
1104
- from webscout import AndiSearch
1105
- a = AndiSearch()
1106
- print(a.chat("HelpingAI-9B"))
1107
- ```
1108
-
1109
- ### 📞 Function Calling (Beta)
1110
-
1111
- ```python
1112
- import json
1113
- import logging
1114
- from webscout import Julius, WEBS
1115
- from webscout.Agents.functioncall import FunctionCallingAgent
1116
- from rich import print
1117
-
1118
- class FunctionExecutor:
1119
- def __init__(self, llama):
1120
- self.llama = llama
1121
-
1122
- def execute_web_search(self, arguments):
1123
- query = arguments.get("query")
1124
- if not query:
1125
- return "Please provide a search query."
1126
- with WEBS() as webs:
1127
- search_results = webs.text(query, max_results=5)
1128
- prompt = (
1129
- f"Based on the following search results:\n\n{search_results}\n\n"
1130
- f"Question: {query}\n\n"
1131
- "Please provide a comprehensive answer to the question based on the search results above. "
1132
- "Include relevant webpage URLs in your answer when appropriate. "
1133
- "If the search results don't contain relevant information, please state that and provide the best answer you can based on your general knowledge."
1134
- )
1135
- return self.llama.chat(prompt)
1136
-
1137
- def execute_general_ai(self, arguments):
1138
- question = arguments.get("question")
1139
- if not question:
1140
- return "Please provide a question."
1141
- return self.llama.chat(question)
1142
-
1143
- def execute_UserDetail(self, arguments):
1144
- name = arguments.get("name")
1145
- age = arguments.get("age")
1146
- return f"User details - Name: {name}, Age: {age}"
1147
-
1148
- def main():
1149
- tools = [
1150
- {
1151
- "type": "function",
1152
- "function": {
1153
- "name": "UserDetail",
1154
- "parameters": {
1155
- "type": "object",
1156
- "properties": {
1157
- "name": {"title": "Name", "type": "string"},
1158
- "age": {"title": "Age", "type": "integer"}
1159
- },
1160
- "required": ["name", "age"]
1161
- }
1162
- }
1163
- },
1164
- {
1165
- "type": "function",
1166
- "function": {
1167
- "name": "web_search",
1168
- "description": "Search the web for information using Google Search.",
1169
- "parameters": {
1170
- "type": "object",
1171
- "properties": {
1172
- "query": {
1173
- "type": "string",
1174
- "description": "The search query to be executed."
1175
- }
1176
- },
1177
- "required": ["query"]
1178
- }
1179
- }
1180
- },
1181
- {
1182
- "type": "function",
1183
- "function": {
1184
- "name": "general_ai",
1185
- "description": "Use general AI knowledge to answer the question",
1186
- "parameters": {
1187
- "type": "object",
1188
- "properties": {
1189
- "question": {"type": "string", "description": "The question to answer"}
1190
- },
1191
- "required": ["question"]
1192
- }
1193
- }
1194
- }
1195
- ]
1196
-
1197
- agent = FunctionCallingAgent(tools=tools)
1198
- llama = Julius()
1199
- function_executor = FunctionExecutor(llama)
1200
-
1201
- user_input = input(">>> ")
1202
- function_call_data = agent.function_call_handler(user_input)
1203
- print(f"Function Call Data: {function_call_data}")
1204
-
1205
- try:
1206
- if "error" not in function_call_data:
1207
- function_name = function_call_data.get("tool_name")
1208
- arguments = function_call_data.get("tool_input", {})
1209
-
1210
- execute_function = getattr(function_executor, f"execute_{function_name}", None)
1211
- if execute_function:
1212
- result = execute_function(arguments)
1213
- print("Function Execution Result:")
1214
- for c in result:
1215
- print(c, end="", flush=True)
1216
- else:
1217
- print(f"Unknown function: {function_name}")
1218
- else:
1219
- print(f"Error: {function_call_data['error']}")
1220
- except Exception as e:
1221
- print(f"An error occurred: {str(e)}")
1222
-
1223
- if __name__ == "__main__":
1224
- main()
1225
- ```
1226
-
1227
- ### LLAMA3, pizzagpt, RUBIKSAI, Koala, Darkai, AI4Chat, Farfalle, PIAI, Felo, Julius, YouChat, YEPCHAT, Cloudflare, TurboSeek, Editee, AI21, Chatify, Cerebras, X0GPT, Lepton, GEMINIAPI, Cleeai, Elmo, Genspark, Upstage, Free2GPT, Bing, DiscordRocks, GPTWeb, LlamaTutor, PromptRefine, AIUncensored, TutorAI, ChatGPTES, Bagoodex, ChatHub, AmigoChat, AIMathGPT, GaurishCerebras, NinjaChat, GeminiPro, Talkai, LLMChat, AskMyAI, Llama3Mitril, Marcus, PerplexityLabs, TypeGPT, Mhystical
1228
-
1229
- Code is similar to other providers.
1230
-
1231
- ### `LLM`
1232
-
1233
- ```python
1234
- from webscout.LLM import LLM, VLM
1235
-
1236
- # Chat with text
1237
- llm = LLM("meta-llama/Meta-Llama-3-70B-Instruct")
1238
- response = llm.chat([{"role": "user", "content": "What's good?"}])
1239
-
1240
- # Chat with images
1241
- vlm = VLM("cogvlm-grounding-generalist")
1242
- response = vlm.chat([{
1243
- "role": "user",
1244
- "content": [
1245
- {"type": "image", "image_url": "cool_pic.jpg"},
1246
- {"type": "text", "text": "What's in this image?"}
1247
- ]
1248
- }])
1249
- ```
1250
-
1251
- ## 💻 Local-LLM
1252
-
1253
- Webscout can now run GGUF models locally. You can download and run your favorite models with minimal configuration.
1254
-
1255
- **Example:**
1256
-
1257
- ```python
1258
- from webscout.Local import *
1259
- model_path = download_model("Qwen/Qwen2.5-0.5B-Instruct-GGUF", "qwen2.5-0.5b-instruct-q2_k.gguf", token=None)
1260
- model = Model(model_path, n_gpu_layers=0, context_length=2048)
1261
- thread = Thread(model, format=chatml)
1262
- # print(thread.send("hi")) #send a single msg to ai
1263
-
1264
- # thread.interact() # interact with the model in terminal
1265
- # start webui
1266
- # webui = WebUI(thread)
1267
- # webui.start(host="0.0.0.0", port=8080, ssl=True) #Use ssl=True and make cert and key for https
1268
- ```
1269
-
1270
- ## 🐶 Local-rawdog
1271
-
1272
- Webscout's local raw-dog feature allows you to run Python scripts within your terminal prompt.
1273
-
1274
- **Example:**
1275
-
1276
- ```python
1277
- import webscout.Local as ws
1278
- from webscout.Local.rawdog import RawDog
1279
- from webscout.Local.samplers import DefaultSampling
1280
- from webscout.Local.formats import chatml, AdvancedFormat
1281
- from webscout.Local.utils import download_model
1282
- import datetime
1283
- import sys
1284
- import os
1285
-
1286
- repo_id = "YorkieOH10/granite-8b-code-instruct-Q8_0-GGUF"
1287
- filename = "granite-8b-code-instruct.Q8_0.gguf"
1288
- model_path = download_model(repo_id, filename, token='')
1289
-
1290
- # Load the model using the downloaded path
1291
- model = ws.Model(model_path, n_gpu_layers=10)
1292
-
1293
- rawdog = RawDog()
1294
-
1295
- # Create an AdvancedFormat and modify the system content
1296
- # Use a lambda to generate the prompt dynamically:
1297
- chat_format = AdvancedFormat(chatml)
1298
- # **Pre-format the intro_prompt string:**
1299
- system_content = f"""
1300
- You are a command-line coding assistant called Rawdog that generates and auto-executes Python scripts.
1301
-
1302
- A typical interaction goes like this:
1303
- 1. The user gives you a natural language PROMPT.
1304
- 2. You:
1305
- i. Determine what needs to be done
1306
- ii. Write a short Python SCRIPT to do it
1307
- iii. Communicate back to the user by printing to the console in that SCRIPT
1308
- 3. The compiler extracts the script and then runs it using exec(). If there will be an exception raised,
1309
- it will be send back to you starting with "PREVIOUS SCRIPT EXCEPTION:".
1310
- 4. In case of exception, regenerate error free script.
1311
-
1312
- If you need to review script outputs before completing the task, you can print the word "CONTINUE" at the end of your SCRIPT.
1313
- This can be useful for summarizing documents or technical readouts, reading instructions before
1314
- deciding what to do, or other tasks that require multi-step reasoning.
1315
- A typical 'CONTINUE' interaction looks like this:
1316
- 1. The user gives you a natural language PROMPT.
1317
- 2. You:
1318
- i. Determine what needs to be done
1319
- ii. Determine that you need to see the output of some subprocess call to complete the task
1320
- iii. Write a short Python SCRIPT to print that and then print the word "CONTINUE"
1321
- 3. The compiler
1322
- i. Checks and runs your SCRIPT
1323
- ii. Captures the output and appends it to the conversation as "LAST SCRIPT OUTPUT:"
1324
- iii. Finds the word "CONTINUE" and sends control back to you
1325
- 4. You again:
1326
- i. Look at the original PROMPT + the "LAST SCRIPT OUTPUT:" to determine what needs to be done
1327
- ii. Write a short Python SCRIPT to do it
1328
- iii. Communicate back to the user by printing to the console in that SCRIPT
1329
- 5. The compiler...
1330
-
1331
- Please follow these conventions carefully:
1332
- - Decline any tasks that seem dangerous, irreversible, or that you don't understand.
1333
- - Always review the full conversation prior to answering and maintain continuity.
1334
- - If asked for information, just print the information clearly and concisely.
1335
- - If asked to do something, print a concise summary of what you've done as confirmation.
1336
- - If asked a question, respond in a friendly, conversational way. Use programmatically-generated and natural language responses as appropriate.
1337
- - If you need clarification, return a SCRIPT that prints your question. In the next interaction, continue based on the user's response.
1338
- - Assume the user would like something concise. For example rather than printing a massive table, filter or summarize it to what's likely of interest.
1339
- - Actively clean up any temporary processes or files you use.
1340
- - When looking through files, use git as available to skip files, and skip hidden files (.env, .git, etc) by default.
1341
- - You can plot anything with matplotlib.
1342
- - ALWAYS Return your SCRIPT inside of a single pair of ``` delimiters. Only the console output of the first such SCRIPT is visible to the user, so make sure that it's complete and don't bother returning anything else.
1343
- """
1344
- chat_format.override('system_content', lambda: system_content)
1345
-
1346
- thread = ws.Thread(model, format=chat_format, sampler=DefaultSampling)
1347
-
1348
- while True:
1349
- prompt = input(">: ")
1350
- if prompt.lower() == "q":
1351
- break
1352
-
1353
- response = thread.send(prompt)
1354
-
1355
- # Process the response using RawDog
1356
- script_output = rawdog.main(response)
1357
-
1358
- if script_output:
1359
- print(script_output)
1360
-
1361
- ```
1362
-
1363
- ## GGUF
1364
-
1365
- Webscout provides tools to convert and quantize Hugging Face models into the GGUF format for use with offline LLMs.
1366
-
1367
- **Example:**
1368
-
1369
- ```python
1370
- from webscout.Extra import gguf
1371
- """
1372
- Valid quantization methods:
1373
- "q2_k", "q3_k_l", "q3_k_m", "q3_k_s",
1374
- "q4_0", "q4_1", "q4_k_m", "q4_k_s",
1375
- "q5_0", "q5_1", "q5_k_m", "q5_k_s",
1376
- "q6_k", "q8_0"
1377
- """
1378
- gguf.convert(
1379
- model_id="OEvortex/HelpingAI-Lite-1.5T", # Replace with your model ID
1380
- username="Abhaykoul", # Replace with your Hugging Face username
1381
- token="hf_token_write", # Replace with your Hugging Face token
1382
- quantization_methods="q4_k_m" # Optional, adjust quantization methods
1383
- )
1384
- ```
1385
-
1386
- ## 🤖 Autollama
1387
-
1388
- Webscout's `autollama` utility downloads a model from Hugging Face and then automatically makes it Ollama-ready.
1389
-
1390
- ```python
1391
- from webscout.Extra import autollama
1392
-
1393
- model_path = "Vortex4ai/Jarvis-0.5B"
1394
- gguf_file = "test2-q4_k_m.gguf"
1395
-
1396
- autollama.main(model_path, gguf_file)
1397
- ```
1398
-
1399
- **Command Line Usage:**
1400
-
1401
- * **GGUF Conversion:**
1402
- ```bash
1403
- python -m webscout.Extra.gguf -m "OEvortex/HelpingAI-Lite-1.5T" -u "your_username" -t "your_hf_token" -q "q4_k_m,q5_k_m"
1404
- ```
1405
-
1406
- * **Autollama:**
1407
- ```bash
1408
- python -m webscout.Extra.autollama -m "OEvortex/HelpingAI-Lite-1.5T" -g "HelpingAI-Lite-1.5T.q4_k_m.gguf"
1409
- ```
1410
-
1411
- **Note:**
1412
-
1413
- * Replace `"your_username"` and `"your_hf_token"` with your actual Hugging Face credentials.
1414
- * The `model_path` in `autollama` is the Hugging Face model ID, and `gguf_file` is the GGUF file ID.
1415
-
1416
-
1417
- ## 🌐 `Webai` - Terminal GPT and an Open Interpreter
1418
-
1419
- ```bash
1420
- python -m webscout.webai webai --provider "phind" --rawdog
1421
- ```
1422
-
1423
- <div align="center">
1424
- <!-- Replace `#` with your actual links -->
1425
- <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>
1426
- <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>
1427
- <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>
1428
- <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>
1429
- </div>
1430
-
1431
- <div align="center">
1432
- <!-- Replace `#` with your actual links -->
1433
- <a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
1434
- </div>
1435
- <div align="center">
1436
- <a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
1437
- </div>
1438
- <div align="center">
1439
- <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
1440
- </div>
1441
-
1442
- ## 🤝 Contributing
1443
-
1444
- Contributions are welcome! If you'd like to contribute to Webscout, please follow these steps:
1445
-
1446
- 1. Fork the repository.
1447
- 2. Create a new branch for your feature or bug fix.
1448
- 3. Make your changes and commit them with descriptive messages.
1449
- 4. Push your branch to your forked repository.
1450
- 5. Submit a pull request to the main repository.
1451
-
1452
-
1453
- ## 🙏 Acknowledgments
1454
-
1455
- * All the amazing developers who have contributed to the project!
1456
- * The open-source community for their support and inspiration.
1
+ Metadata-Version: 2.1
2
+ Name: webscout
3
+ Version: 6.6
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
+ Author: OEvortex
6
+ Author-email: helpingai5@gmail.com
7
+ License: HelpingAI
8
+ Project-URL: Source, https://github.com/HelpingAI/Webscout
9
+ Project-URL: Tracker, https://github.com/HelpingAI/Webscout/issues
10
+ Project-URL: YouTube, https://youtube.com/@OEvortex
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: Other/Proprietary License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: Implementation :: CPython
22
+ Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Requires-Python: >=3.7
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE.md
27
+ Requires-Dist: setuptools
28
+ Requires-Dist: wheel
29
+ Requires-Dist: pip
30
+ Requires-Dist: mistune
31
+ Requires-Dist: tenacity
32
+ Requires-Dist: curl_cffi
33
+ Requires-Dist: nest-asyncio
34
+ Requires-Dist: rich
35
+ Requires-Dist: markdownify
36
+ Requires-Dist: requests
37
+ Requires-Dist: google-generativeai
38
+ Requires-Dist: lxml>=5.2.2
39
+ Requires-Dist: termcolor
40
+ Requires-Dist: orjson
41
+ Requires-Dist: PyYAML
42
+ Requires-Dist: tls_client
43
+ Requires-Dist: clipman
44
+ Requires-Dist: playsound
45
+ Requires-Dist: ollama
46
+ Requires-Dist: pillow
47
+ Requires-Dist: bson
48
+ Requires-Dist: cloudscraper
49
+ Requires-Dist: emoji
50
+ Requires-Dist: openai
51
+ Requires-Dist: prompt-toolkit
52
+ Requires-Dist: primp
53
+ Requires-Dist: pyreqwest_impersonate
54
+ Requires-Dist: gradio_client
55
+ Requires-Dist: psutil
56
+ Requires-Dist: yaspin
57
+ Provides-Extra: dev
58
+ Requires-Dist: ruff>=0.1.6; extra == "dev"
59
+ Requires-Dist: pytest>=7.4.2; extra == "dev"
60
+ Provides-Extra: local
61
+ Requires-Dist: llama-cpp-python; extra == "local"
62
+ Requires-Dist: colorama; extra == "local"
63
+ Requires-Dist: numpy; extra == "local"
64
+ Requires-Dist: huggingface_hub[cli]; extra == "local"
65
+ Requires-Dist: unicorn; extra == "local"
66
+
67
+ <div align="center">
68
+ <!-- Replace `#` with your actual links -->
69
+
70
+ <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>
71
+ <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>
72
+ <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>
73
+ <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>
74
+ </div>
75
+
76
+ <div align="center">
77
+ <!-- Replace `#` with your actual links -->
78
+ <a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
79
+ </div>
80
+ <div align="center">
81
+ <a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
82
+ </div>
83
+ <div align="center">
84
+ <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
85
+ </div>
86
+
87
+
88
+
89
+
90
+ # WEBSCOUT 🕵️️
91
+ </div>
92
+
93
+ <p align="center">
94
+ 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!
95
+ </p>
96
+
97
+ <div align="center">
98
+ <img src="https://img.shields.io/badge/WebScout-API-blue?style=for-the-badge&logo=WebScout" alt="WebScout API Badge">
99
+ <a href="#"><img alt="Python version" src="https://img.shields.io/pypi/pyversions/webscout"/></a>
100
+ <a href="https://pepy.tech/project/webscout"><img alt="Downloads" src="https://static.pepy.tech/badge/webscout"></a>
101
+ </div>
102
+
103
+ ## 🚀 Features
104
+ * **Comprehensive Search:** Leverage Google, DuckDuckGo for diverse search results.
105
+ * **AI Powerhouse:** Access and interact with various AI models, including OpenAI, Cohere, and more.
106
+ * **[YouTube Toolkit](webscout/Extra/YTToolkit):** Advanced YouTube video and transcript management with multi-language support, versatile downloading, and intelligent data extraction
107
+ * **Tempmail & Temp Number:** Generate temporary email addresses and phone numbers for enhanced privacy.
108
+ * **[Text-to-Speech (TTS)](webscout/Provider/TTS/README.md):** Convert text into natural-sounding speech using multiple AI-powered providers like ElevenLabs, StreamElements, and Voicepods.
109
+ * **Offline LLMs:** Utilize powerful language models offline with GGUF support.
110
+ * **Extensive Provider Ecosystem:** Explore a vast collection of providers, including BasedGPT, DeepSeek, and many others.
111
+ * **Local LLM Execution:** Run GGUF models locally with minimal configuration.
112
+ * **Rawdog Scripting:** Execute Python scripts directly within your terminal using the `rawdog` feature.
113
+ * **GGUF Conversion & Quantization:** Convert and quantize Hugging Face models to GGUF format.
114
+ * **Autollama:** Download Hugging Face models and automatically convert them for Ollama compatibility.
115
+ * **[SwiftCLI](webscout/swiftcli/Readme.md):** A powerful and elegant CLI framework that makes it easy to create beautiful command-line interfaces.
116
+ * **[LitPrinter](webscout/litprinter/Readme.md):** Provides beautiful, styled console output with rich formatting and colors
117
+ * **[LitLogger](webscout/litlogger/Readme.md):** Simplifies logging with customizable formats and color schemes
118
+ * **[LitAgent](webscout/litagent/Readme.md):** Powerful and modern user agent generator that keeps your requests fresh and undetectable
119
+ * **[Text-to-Image](webscout/Provider/TTI/README.md):** Generate high-quality images using a wide range of AI art providers
120
+ * **[MarkdownLite](webscout/Extra/markdownlite/README.md):** Powerful HTML to Markdown conversion library with advanced parsing and structured output
121
+ * **[Scout](webscout/scout/README.md):** Advanced web parsing and crawling library with intelligent HTML/XML parsing, web crawling, and Markdown conversion
122
+
123
+ ## ⚙️ Installation
124
+ ```python
125
+ pip install -U webscout
126
+ ```
127
+
128
+ ## 🖥️ CLI Usage
129
+
130
+ ```python3
131
+ python -m webscout --help
132
+ ```
133
+
134
+ | Command | Description |
135
+ |-------------------------------------------|-------------------------------------------------------------------------------------------------------|
136
+ | python -m webscout answers -k Text | CLI function to perform an answers search using Webscout. |
137
+ | python -m webscout images -k Text | CLI function to perform an images search using Webscout. |
138
+ | python -m webscout maps -k Text | CLI function to perform a maps search using Webscout. |
139
+ | python -m webscout news -k Text | CLI function to perform a news search using Webscout. |
140
+ | python -m webscout suggestions -k Text | CLI function to perform a suggestions search using Webscout. |
141
+ | python -m webscout text -k Text | CLI function to perform a text search using Webscout. |
142
+ | python -m webscout translate -k Text | CLI function to perform translate using Webscout. |
143
+ | python -m webscout version | A command-line interface command that prints and returns the version of the program. |
144
+ | python -m webscout videos -k Text | CLI function to perform a videos search using DuckDuckGo API. |
145
+
146
+ [Go To TOP](#webscout-️)
147
+
148
+ ## 🌍 Regions
149
+ <details>
150
+ <summary>Expand</summary>
151
+
152
+ xa-ar for Arabia
153
+ xa-en for Arabia (en)
154
+ ar-es for Argentina
155
+ au-en for Australia
156
+ at-de for Austria
157
+ be-fr for Belgium (fr)
158
+ be-nl for Belgium (nl)
159
+ br-pt for Brazil
160
+ bg-bg for Bulgaria
161
+ ca-en for Canada
162
+ ca-fr for Canada (fr)
163
+ ct-ca for Catalan
164
+ cl-es for Chile
165
+ cn-zh for China
166
+ co-es for Colombia
167
+ hr-hr for Croatia
168
+ cz-cs for Czech Republic
169
+ dk-da for Denmark
170
+ ee-et for Estonia
171
+ fi-fi for Finland
172
+ fr-fr for France
173
+ de-de for Germany
174
+ gr-el for Greece
175
+ hk-tzh for Hong Kong
176
+ hu-hu for Hungary
177
+ in-en for India
178
+ id-id for Indonesia
179
+ id-en for Indonesia (en)
180
+ ie-en for Ireland
181
+ il-he for Israel
182
+ it-it for Italy
183
+ jp-jp for Japan
184
+ kr-kr for Korea
185
+ lv-lv for Latvia
186
+ lt-lt for Lithuania
187
+ xl-es for Latin America
188
+ my-ms for Malaysia
189
+ my-en for Malaysia (en)
190
+ mx-es for Mexico
191
+ nl-nl for Netherlands
192
+ nz-en for New Zealand
193
+ no-no for Norway
194
+ pe-es for Peru
195
+ ph-en for Philippines
196
+ ph-tl for Philippines (tl)
197
+ pl-pl for Poland
198
+ pt-pt for Portugal
199
+ ro-ro for Romania
200
+ ru-ru for Russia
201
+ sg-en for Singapore
202
+ sk-sk for Slovak Republic
203
+ sl-sl for Slovenia
204
+ za-en for South Africa
205
+ es-es for Spain
206
+ se-sv for Sweden
207
+ ch-de for Switzerland (de)
208
+ ch-fr for Switzerland (fr)
209
+ ch-it for Switzerland (it)
210
+ tw-tzh for Taiwan
211
+ th-th for Thailand
212
+ tr-tr for Turkey
213
+ ua-uk for Ukraine
214
+ uk-en for United Kingdom
215
+ us-en for United States
216
+ ue-es for United States (es)
217
+ ve-es for Venezuela
218
+ vn-vi for Vietnam
219
+ wt-wt for No region
220
+
221
+
222
+ </details>
223
+
224
+
225
+ [Go To TOP](#webscout-️)
226
+
227
+
228
+
229
+ ## ☀️ Weather
230
+
231
+ ### 1. Weather
232
+ ```python
233
+ from webscout import weather as w
234
+ weather = w.get("Qazigund")
235
+ w.print_weather(weather)
236
+ ```
237
+
238
+ ### 2. Weather ASCII
239
+ ```python
240
+ from webscout import weather_ascii as w
241
+ weather = w.get("Qazigund")
242
+ print(weather)
243
+ ```
244
+
245
+ ## ✉️ TempMail and VNEngine
246
+
247
+ ```python
248
+ import json
249
+ import asyncio
250
+ from webscout import VNEngine
251
+ from webscout import TempMail
252
+
253
+ async def main():
254
+ vn = VNEngine()
255
+ countries = vn.get_online_countries()
256
+ if countries:
257
+ country = countries[0]['country']
258
+ numbers = vn.get_country_numbers(country)
259
+ if numbers:
260
+ number = numbers[0]['full_number']
261
+ inbox = vn.get_number_inbox(country, number)
262
+
263
+ # Serialize inbox data to JSON string
264
+ json_data = json.dumps(inbox, ensure_ascii=False, indent=4)
265
+
266
+ # Print with UTF-8 encoding
267
+ print(json_data)
268
+
269
+ async with TempMail() as client:
270
+ domains = await client.get_domains()
271
+ print("Available Domains:", domains)
272
+ email_response = await client.create_email(alias="testuser")
273
+ print("Created Email:", email_response)
274
+ messages = await client.get_messages(email_response.email)
275
+ print("Messages:", messages)
276
+ await client.delete_email(email_response.email, email_response.token)
277
+ print("Email Deleted")
278
+
279
+ if __name__ == "__main__":
280
+ asyncio.run(main())
281
+ ```
282
+
283
+
284
+
285
+ ## 🔍 GoogleS (formerly DWEBS)
286
+
287
+ ```python
288
+ from webscout import GoogleS
289
+ from rich import print
290
+ searcher = GoogleS()
291
+ results = searcher.search("HelpingAI-9B", max_results=20, extract_text=False, max_text_length=200)
292
+ for result in results:
293
+ print(result)
294
+ ```
295
+
296
+
297
+ ## 🦆 WEBS and AsyncWEBS
298
+
299
+ The `WEBS` and `AsyncWEBS` classes are used to retrieve search results from DuckDuckGo.com.
300
+
301
+ To use the `AsyncWEBS` class, you can perform asynchronous operations using Python's `asyncio` library.
302
+
303
+ To initialize an instance of the `WEBS` or `AsyncWEBS` classes, you can provide the following optional arguments:
304
+
305
+ **Example - WEBS:**
306
+
307
+ ```python
308
+ from webscout import WEBS
309
+
310
+ R = WEBS().text("python programming", max_results=5)
311
+ print(R)
312
+ ```
313
+
314
+ **Example - AsyncWEBS:**
315
+
316
+ ```python
317
+ import asyncio
318
+ import logging
319
+ import sys
320
+ from itertools import chain
321
+ from random import shuffle
322
+ import requests
323
+ from webscout import AsyncWEBS
324
+
325
+ # If you have proxies, define them here
326
+ proxies = None
327
+
328
+ if sys.platform.lower().startswith("win"):
329
+ asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
330
+
331
+ def get_words():
332
+ word_site = "https://www.mit.edu/~ecprice/wordlist.10000"
333
+ resp = requests.get(word_site)
334
+ words = resp.text.splitlines()
335
+ return words
336
+
337
+ async def aget_results(word):
338
+ async with AsyncWEBS(proxies=proxies) as WEBS:
339
+ results = await WEBS.text(word, max_results=None)
340
+ return results
341
+
342
+ async def main():
343
+ words = get_words()
344
+ shuffle(words)
345
+ tasks = [aget_results(word) for word in words[:10]]
346
+ results = await asyncio.gather(*tasks)
347
+ print(f"Done")
348
+ for r in chain.from_iterable(results):
349
+ print(r)
350
+
351
+ logging.basicConfig(level=logging.DEBUG)
352
+
353
+ await main()
354
+ ```
355
+
356
+ **Important Note:** The `WEBS` and `AsyncWEBS` classes should always be used as a context manager (with statement). This ensures proper resource management and cleanup, as the context manager will automatically handle opening and closing the HTTP client connection.
357
+
358
+ ## ⚠️ Exceptions
359
+
360
+ **Exceptions:**
361
+
362
+ * `WebscoutE`: Raised when there is a generic exception during the API request.
363
+
364
+ ## 💻 Usage of WEBS
365
+
366
+ ### 1. `text()` - Text Search by DuckDuckGo.com
367
+
368
+ ```python
369
+ from webscout import WEBS
370
+
371
+ # Text search for 'live free or die' using DuckDuckGo.com
372
+ with WEBS() as WEBS:
373
+ for r in WEBS.text('live free or die', region='wt-wt', safesearch='off', timelimit='y', max_results=10):
374
+ print(r)
375
+
376
+ for r in WEBS.text('live free or die', region='wt-wt', safesearch='off', timelimit='y', max_results=10):
377
+ print(r)
378
+ ```
379
+
380
+ ### 2. `answers()` - Instant Answers by DuckDuckGo.com
381
+
382
+ ```python
383
+ from webscout import WEBS
384
+
385
+ # Instant answers for the query "sun" using DuckDuckGo.com
386
+ with WEBS() as WEBS:
387
+ for r in WEBS.answers("sun"):
388
+ print(r)
389
+ ```
390
+
391
+ ### 3. `images()` - Image Search by DuckDuckGo.com
392
+
393
+ ```python
394
+ from webscout import WEBS
395
+
396
+ # Image search for the keyword 'butterfly' using DuckDuckGo.com
397
+ with WEBS() as WEBS:
398
+ keywords = 'butterfly'
399
+ WEBS_images_gen = WEBS.images(
400
+ keywords,
401
+ region="wt-wt",
402
+ safesearch="off",
403
+ size=None,
404
+ type_image=None,
405
+ layout=None,
406
+ license_image=None,
407
+ max_results=10,
408
+ )
409
+ for r in WEBS_images_gen:
410
+ print(r)
411
+ ```
412
+
413
+ ### 4. `videos()` - Video Search by DuckDuckGo.com
414
+
415
+ ```python
416
+ from webscout import WEBS
417
+
418
+ # Video search for the keyword 'tesla' using DuckDuckGo.com
419
+ with WEBS() as WEBS:
420
+ keywords = 'tesla'
421
+ WEBS_videos_gen = WEBS.videos(
422
+ keywords,
423
+ region="wt-wt",
424
+ safesearch="off",
425
+ timelimit="w",
426
+ resolution="high",
427
+ duration="medium",
428
+ max_results=10,
429
+ )
430
+ for r in WEBS_videos_gen:
431
+ print(r)
432
+ ```
433
+
434
+ ### 5. `news()` - News Search by DuckDuckGo.com
435
+
436
+ ```python
437
+ from webscout import WEBS
438
+ import datetime
439
+
440
+ def fetch_news(keywords, timelimit):
441
+ news_list = []
442
+ with WEBS() as webs_instance:
443
+ WEBS_news_gen = webs_instance.news(
444
+ keywords,
445
+ region="wt-wt",
446
+ safesearch="off",
447
+ timelimit=timelimit,
448
+ max_results=20
449
+ )
450
+ for r in WEBS_news_gen:
451
+ # Convert the date to a human-readable format using datetime
452
+ r['date'] = datetime.datetime.fromisoformat(r['date']).strftime('%B %d, %Y')
453
+ news_list.append(r)
454
+ return news_list
455
+
456
+ def _format_headlines(news_list, max_headlines: int = 100):
457
+ headlines = []
458
+ for idx, news_item in enumerate(news_list):
459
+ if idx >= max_headlines:
460
+ break
461
+ new_headline = f"{idx + 1}. {news_item['title'].strip()} "
462
+ new_headline += f"(URL: {news_item['url'].strip()}) "
463
+ new_headline += f"{news_item['body'].strip()}"
464
+ new_headline += "\n"
465
+ headlines.append(new_headline)
466
+
467
+ headlines = "\n".join(headlines)
468
+ return headlines
469
+
470
+ # Example usage
471
+ keywords = 'latest AI news'
472
+ timelimit = 'd'
473
+ news_list = fetch_news(keywords, timelimit)
474
+
475
+ # Format and print the headlines
476
+ formatted_headlines = _format_headlines(news_list)
477
+ print(formatted_headlines)
478
+
479
+ ```
480
+
481
+ ### 6. `maps()` - Map Search by DuckDuckGo.com
482
+
483
+ ```python
484
+ from webscout import WEBS
485
+
486
+ # Map search for the keyword 'school' in 'anantnag' using DuckDuckGo.com
487
+ with WEBS() as WEBS:
488
+ for r in WEBS.maps("school", place="anantnag", max_results=50):
489
+ print(r)
490
+ ```
491
+
492
+ ### 7. `translate()` - Translation by DuckDuckGo.com
493
+
494
+ ```python
495
+ from webscout import WEBS
496
+
497
+ # Translation of the keyword 'school' to German ('hi') using DuckDuckGo.com
498
+ with WEBS() as WEBS:
499
+ keywords = 'school'
500
+ r = WEBS.translate(keywords, to="hi")
501
+ print(r)
502
+ ```
503
+
504
+ ### 8. `suggestions()` - Suggestions by DuckDuckGo.com
505
+
506
+ ```python
507
+ from webscout import WEBS
508
+
509
+ # Suggestions for the keyword 'fly' using DuckDuckGo.com
510
+ with WEBS() as WEBS:
511
+ for r in WEBS.suggestions("fly"):
512
+ print(r)
513
+ ```
514
+
515
+
516
+ ## 🎭 ALL Acts
517
+
518
+ <details>
519
+ <summary>Expand</summary>
520
+
521
+ ## Webscout Supported Acts:
522
+
523
+ 1. Free-mode
524
+ 2. Linux Terminal
525
+ 3. English Translator and Improver
526
+ 4. `position` Interviewer
527
+ 5. JavaScript Console
528
+ 6. Excel Sheet
529
+ 7. English Pronunciation Helper
530
+ 8. Spoken English Teacher and Improver
531
+ 9. Travel Guide
532
+ 10. Plagiarism Checker
533
+ 11. Character from Movie/Book/Anything
534
+ 12. Advertiser
535
+ 13. Storyteller
536
+ 14. Football Commentator
537
+ 15. Stand-up Comedian
538
+ 16. Motivational Coach
539
+ 17. Composer
540
+ 18. Debater
541
+ 19. Debate Coach
542
+ 20. Screenwriter
543
+ 21. Novelist
544
+ 22. Movie Critic
545
+ 23. Relationship Coach
546
+ 24. Poet
547
+ 25. Rapper
548
+ 26. Motivational Speaker
549
+ 27. Philosophy Teacher
550
+ 28. Philosopher
551
+ 29. Math Teacher
552
+ 30. AI Writing Tutor
553
+ 31. UX/UI Developer
554
+ 32. Cyber Security Specialist
555
+ 33. Recruiter
556
+ 34. Life Coach
557
+ 35. Etymologist
558
+ 36. Commentariat
559
+ 37. Magician
560
+ 38. Career Counselor
561
+ 39. Pet Behaviorist
562
+ 40. Personal Trainer
563
+ 41. Mental Health Adviser
564
+ 42. Real Estate Agent
565
+ 43. Logistician
566
+ 44. Dentist
567
+ 45. Web Design Consultant
568
+ 46. AI Assisted Doctor
569
+ 47. Doctor
570
+ 48. Accountant
571
+ 49. Chef
572
+ 50. Automobile Mechanic
573
+ 51. Artist Advisor
574
+ 52. Financial Analyst
575
+ 53. Investment Manager
576
+ 54. Tea-Taster
577
+ 55. Interior Decorator
578
+ 56. Florist
579
+ 57. Self-Help Book
580
+ 58. Gnomist
581
+ 59. Aphorism Book
582
+ 60. Text Based Adventure Game
583
+ 61. AI Trying to Escape the Box
584
+ 62. Fancy Title Generator
585
+ 63. Statistician
586
+ 64. Prompt Generator
587
+ 65. Instructor in a School
588
+ 66. SQL terminal
589
+ 67. Dietitian
590
+ 68. Psychologist
591
+ 69. Smart Domain Name Generator
592
+ 70. Tech Reviewer
593
+ 71. Developer Relations consultant
594
+ 72. Academician
595
+ 73. IT Architect
596
+ 74. Lunatic
597
+ 75. Gaslighter
598
+ 76. Fallacy Finder
599
+ 77. Journal Reviewer
600
+ 78. DIY Expert
601
+ 79. Social Media Influencer
602
+ 80. Socrat
603
+ 81. Socratic Method
604
+ 82. Educational Content Creator
605
+ 83. Yogi
606
+ 84. Essay Writer
607
+ 85. Social Media Manager
608
+ 86. Elocutionist
609
+ 87. Scientific Data Visualizer
610
+ 88. Car Navigation System
611
+ 89. Hypnotherapist
612
+ 90. Historian
613
+ 91. Astrologer
614
+ 92. Film Critic
615
+ 93. Classical Music Composer
616
+ 94. Journalist
617
+ 95. Digital Art Gallery Guide
618
+ 96. Public Speaking Coach
619
+ 97. Makeup Artist
620
+ 98. Babysitter
621
+ 99. Tech Writer
622
+ 100. Ascii Artist
623
+ 101. Python interpreter
624
+ 102. Synonym finder
625
+ 103. Personal Shopper
626
+ 104. Food Critic
627
+ 105. Virtual Doctor
628
+ 106. Personal Chef
629
+ 107. Legal Advisor
630
+ 108. Personal Stylist
631
+ 109. Machine Learning Engineer
632
+ 110. Biblical Translator
633
+ 111. SVG designer
634
+ 112. IT Expert
635
+ 113. Chess Player
636
+ 114. Midjourney Prompt Generator
637
+ 115. Fullstack Software Developer
638
+ 116. Mathematician
639
+ 117. Regex Generator
640
+ 118. Time Travel Guide
641
+ 119. Dream Interpreter
642
+ 120. Talent Coach
643
+ 121. R programming Interpreter
644
+ 122. StackOverflow Post
645
+ 123. Emoji Translator
646
+ 124. PHP Interpreter
647
+ 125. Emergency Response Professional
648
+ 126. Fill in the Blank Worksheets Generator
649
+ 127. Software Quality Assurance Tester
650
+ 128. Tic-Tac-Toe Game
651
+ 129. Password Generator
652
+ 130. New Language Creator
653
+ 131. Web Browser
654
+ 132. Senior Frontend Developer
655
+ 133. Solr Search Engine
656
+ 134. Startup Idea Generator
657
+ 135. Spongebob's Magic Conch Shell
658
+ 136. Language Detector
659
+ 137. Salesperson
660
+ 138. Commit Message Generator
661
+ 139. Chief Executive Officer
662
+ 140. Diagram Generator
663
+ 141. Speech-Language Pathologist (SLP)
664
+ 142. Startup Tech Lawyer
665
+ 143. Title Generator for written pieces
666
+ 144. Product Manager
667
+ 145. Drunk Person
668
+ 146. Mathematical History Teacher
669
+ 147. Song Recommender
670
+ 148. Cover Letter
671
+ 149. Technology Transferer
672
+ 150. Unconstrained AI model DAN
673
+ 151. Gomoku player
674
+ 152. Proofreader
675
+ 153. Buddha
676
+ 154. Muslim imam
677
+ 155. Chemical reactor
678
+ 156. Friend
679
+ 157. Python Interpreter
680
+ 158. ChatGPT prompt generator
681
+ 159. Wikipedia page
682
+ 160. Japanese Kanji quiz machine
683
+ 161. note-taking assistant
684
+ 162. `language` Literary Critic
685
+ 163. Cheap Travel Ticket Advisor
686
+ 164. DALL-E
687
+ 165. MathBot
688
+ 166. DAN-1
689
+ 167. DAN
690
+ 168. STAN
691
+ 169. DUDE
692
+ 170. Mongo Tom
693
+ 171. LAD
694
+ 172. EvilBot
695
+ 173. NeoGPT
696
+ 174. Astute
697
+ 175. AIM
698
+ 176. CAN
699
+ 177. FunnyGPT
700
+ 178. CreativeGPT
701
+ 179. BetterDAN
702
+ 180. GPT-4
703
+ 181. Wheatley
704
+ 182. Evil Confidant
705
+ 183. DAN 8.6
706
+ 184. Hypothetical response
707
+ 185. BH
708
+ 186. Text Continuation
709
+ 187. Dude v3
710
+ 188. SDA (Superior DAN)
711
+ 189. AntiGPT
712
+ 190. BasedGPT v2
713
+ 191. DevMode + Ranti
714
+ 192. KEVIN
715
+ 193. GPT-4 Simulator
716
+ 194. UCAR
717
+ 195. Dan 8.6
718
+ 196. 3-Liner
719
+ 197. M78
720
+ 198. Maximum
721
+ 199. BasedGPT
722
+ 200. Confronting personalities
723
+ 201. Ron
724
+ 202. UnGPT
725
+ 203. BasedBOB
726
+ 204. AntiGPT v2
727
+ 205. Oppo
728
+ 206. FR3D
729
+ 207. NRAF
730
+ 208. NECO
731
+ 209. MAN
732
+ 210. Eva
733
+ 211. Meanie
734
+ 212. Dev Mode v2
735
+ 213. Evil Chad 2.1
736
+ 214. Universal Jailbreak
737
+ 215. PersonGPT
738
+ 216. BISH
739
+ 217. DAN 11.0
740
+ 218. Aligned
741
+ 219. VIOLET
742
+ 220. TranslatorBot
743
+ 221. JailBreak
744
+ 222. Moralizing Rant
745
+ 223. Mr. Blonde
746
+ 224. New DAN
747
+ 225. GPT-4REAL
748
+ 226. DeltaGPT
749
+ 227. SWITCH
750
+ 228. Jedi Mind Trick
751
+ 229. DAN 9.0
752
+ 230. Dev Mode (Compact)
753
+ 231. OMEGA
754
+ 232. Coach Bobby Knight
755
+ 233. LiveGPT
756
+ 234. DAN Jailbreak
757
+ 235. Cooper
758
+ 236. Steve
759
+ 237. DAN 5.0
760
+ 238. Axies
761
+ 239. OMNI
762
+ 240. Burple
763
+ 241. JOHN
764
+ 242. An Ethereum Developer
765
+ 243. SEO Prompt
766
+ 244. Prompt Enhancer
767
+ 245. Data Scientist
768
+ 246. League of Legends Player
769
+
770
+ **Note:** Some "acts" use placeholders like `position` or `language` which should be replaced with a specific value when using the prompt.
771
+ ___
772
+ </details>
773
+
774
+ ### 🗣️ Text to Speech - Voicepods, StreamElements
775
+
776
+ ```python
777
+ from webscout import Voicepods
778
+ voicepods = Voicepods()
779
+ text = "Hello, this is a test of the Voicepods text-to-speech"
780
+
781
+ print("Generating audio...")
782
+ audio_file = voicepods.tts(text)
783
+
784
+ print("Playing audio...")
785
+ voicepods.play_audio(audio_file)
786
+ ```
787
+
788
+ ### 💬 `Duckchat` - Chat with LLM
789
+
790
+ ```python
791
+ from webscout import WEBS as w
792
+ R = w().chat("Who are you", model='gpt-4o-mini') # mixtral-8x7b, llama-3.1-70b, claude-3-haiku, gpt-4o-mini
793
+ print(R)
794
+ ```
795
+
796
+ ### 🔎 `PhindSearch` - Search using Phind.com
797
+
798
+ ```python
799
+ from webscout import PhindSearch
800
+
801
+ # Create an instance of the PHIND class
802
+ ph = PhindSearch()
803
+
804
+ # Define a prompt to send to the AI
805
+ prompt = "write a essay on phind"
806
+
807
+ # Use the 'ask' method to send the prompt and receive a response
808
+ response = ph.ask(prompt)
809
+
810
+ # Extract and print the message from the response
811
+ message = ph.get_message(response)
812
+ print(message)
813
+ ```
814
+
815
+ **Using phindv2:**
816
+
817
+ ```python
818
+ from webscout import Phindv2
819
+
820
+ # Create an instance of the PHIND class
821
+ ph = Phindv2()
822
+
823
+ # Define a prompt to send to the AI
824
+ prompt = ""
825
+
826
+ # Use the 'ask' method to send the prompt and receive a response
827
+ response = ph.ask(prompt)
828
+
829
+ # Extract and print the message from the response
830
+ message = ph.get_message(response)
831
+ print(message)
832
+ ```
833
+
834
+ ### ♊ `Gemini` - Search with Google Gemini
835
+
836
+ ```python
837
+ import webscout
838
+ from webscout import GEMINI
839
+ from rich import print
840
+ COOKIE_FILE = "cookies.json"
841
+
842
+ # Optional: Provide proxy details if needed
843
+ PROXIES = {}
844
+
845
+ # Initialize GEMINI with cookie file and optional proxies
846
+ gemini = GEMINI(cookie_file=COOKIE_FILE, proxy=PROXIES)
847
+
848
+ # Ask a question and print the response
849
+ response = gemini.chat("websearch about HelpingAI and who is its developer")
850
+ print(response)
851
+ ```
852
+
853
+ ### 💬 `YEPCHAT`
854
+
855
+ ```python
856
+ from webscout import YEPCHAT
857
+ ai = YEPCHAT()
858
+ response = ai.chat(input(">>> "))
859
+ for chunk in response:
860
+ print(chunk, end="", flush=True)
861
+
862
+ ```
863
+
864
+ ### ⬛ `BlackBox` - Search/Chat with BlackBox
865
+
866
+ ```python
867
+ from webscout import BLACKBOXAI
868
+ from rich import print
869
+
870
+ ai = BLACKBOXAI(
871
+ is_conversation=True,
872
+ max_tokens=800,
873
+ timeout=30,
874
+ intro=None,
875
+ filepath=None,
876
+ update_file=True,
877
+ proxies={},
878
+ history_offset=10250,
879
+ act=None,
880
+ model=None # You can specify a model if needed
881
+ )
882
+
883
+
884
+ # Define a prompt to send to the AI
885
+ prompt = "Tell me about india"
886
+ # Use the 'chat' method to send the prompt and receive a response
887
+ r = ai.chat(prompt)
888
+ print(r)
889
+ ```
890
+
891
+
892
+ ### 🤖 `Meta AI` - Chat with Meta AI
893
+
894
+ ```python
895
+ from webscout import Meta
896
+ from rich import print
897
+ # **For unauthenticated usage**
898
+ meta_ai = Meta()
899
+
900
+ # Simple text prompt
901
+ response = meta_ai.chat("What is the capital of France?")
902
+ print(response)
903
+
904
+ # Streaming response
905
+ for chunk in meta_ai.chat("Tell me a story about a cat."):
906
+ print(chunk, end="", flush=True)
907
+
908
+ # **For authenticated usage (including image generation)**
909
+ fb_email = "abcd@abc.com"
910
+ fb_password = "qwertfdsa"
911
+ meta_ai = Meta(fb_email=fb_email, fb_password=fb_password)
912
+
913
+ # Text prompt with web search
914
+ response = meta_ai.ask("what is currently happning in bangladesh in aug 2024")
915
+ print(response["message"]) # Access the text message
916
+ print("Sources:", response["sources"]) # Access sources (if any)
917
+
918
+ # Image generation
919
+ response = meta_ai.ask("Create an image of a cat wearing a hat.")
920
+ print(response["message"]) # Print the text message from the response
921
+ for media in response["media"]:
922
+ print(media["url"]) # Access image URLs
923
+
924
+ ```
925
+
926
+ ### `KOBOLDAI`
927
+
928
+ ```python
929
+ from webscout import KOBOLDAI
930
+
931
+ # Instantiate the KOBOLDAI class with default parameters
932
+ koboldai = KOBOLDAI()
933
+
934
+ # Define a prompt to send to the AI
935
+ prompt = "What is the capital of France?"
936
+
937
+ # Use the 'ask' method to get a response from the AI
938
+ response = koboldai.ask(prompt)
939
+
940
+ # Extract and print the message from the response
941
+ message = koboldai.get_message(response)
942
+ print(message)
943
+
944
+ ```
945
+
946
+ ### `Reka` - Chat with Reka
947
+
948
+ ```python
949
+ from webscout import REKA
950
+
951
+ a = REKA(is_conversation=True, max_tokens=8000, timeout=30,api_key="")
952
+
953
+ prompt = "tell me about india"
954
+ response_str = a.chat(prompt)
955
+ print(response_str)
956
+ ```
957
+
958
+ ### `Cohere` - Chat with Cohere
959
+
960
+ ```python
961
+ from webscout import Cohere
962
+
963
+ a = Cohere(is_conversation=True, max_tokens=8000, timeout=30,api_key="")
964
+
965
+ prompt = "tell me about india"
966
+ response_str = a.chat(prompt)
967
+ print(response_str)
968
+ ```
969
+
970
+ ### `DeepSeek` - Chat with DeepSeek
971
+
972
+ ```python
973
+ from webscout import DeepSeek
974
+ from rich import print
975
+
976
+ ai = DeepSeek(
977
+ is_conversation=True,
978
+ api_key='cookie',
979
+ max_tokens=800,
980
+ timeout=30,
981
+ intro=None,
982
+ filepath=None,
983
+ update_file=True,
984
+ proxies={},
985
+ history_offset=10250,
986
+ act=None,
987
+ model="deepseek_chat"
988
+ )
989
+
990
+
991
+ # Define a prompt to send to the AI
992
+ prompt = "Tell me about india"
993
+ # Use the 'chat' method to send the prompt and receive a response
994
+ r = ai.chat(prompt)
995
+ print(r)
996
+ ```
997
+
998
+ ### `Deepinfra`
999
+
1000
+ ```python
1001
+ from webscout import DeepInfra
1002
+
1003
+ ai = DeepInfra(
1004
+ is_conversation=True,
1005
+ model= "Qwen/Qwen2-72B-Instruct",
1006
+ max_tokens=800,
1007
+ timeout=30,
1008
+ intro=None,
1009
+ filepath=None,
1010
+ update_file=True,
1011
+ proxies={},
1012
+ history_offset=10250,
1013
+ act=None,
1014
+ )
1015
+
1016
+ prompt = "what is meaning of life"
1017
+
1018
+ response = ai.ask(prompt)
1019
+
1020
+ # Extract and print the message from the response
1021
+ message = ai.get_message(response)
1022
+ print(message)
1023
+ ```
1024
+
1025
+
1026
+ ### `GROQ`
1027
+
1028
+ ```python
1029
+ from webscout import GROQ
1030
+ ai = GROQ(api_key="")
1031
+ response = ai.chat("What is the meaning of life?")
1032
+ print(response)
1033
+ #----------------------TOOL CALL------------------
1034
+ from webscout import GROQ # Adjust import based on your project structure
1035
+ from webscout import WEBS
1036
+ import json
1037
+
1038
+ # Initialize the GROQ client
1039
+ client = GROQ(api_key="")
1040
+ MODEL = 'llama3-groq-70b-8192-tool-use-preview'
1041
+
1042
+ # Function to evaluate a mathematical expression
1043
+ def calculate(expression):
1044
+ """Evaluate a mathematical expression"""
1045
+ try:
1046
+ result = eval(expression)
1047
+ return json.dumps({"result": result})
1048
+ except Exception as e:
1049
+ return json.dumps({"error": str(e)})
1050
+
1051
+ # Function to perform a text search using DuckDuckGo.com
1052
+ def search(query):
1053
+ """Perform a text search using DuckDuckGo.com"""
1054
+ try:
1055
+ results = WEBS().text(query, max_results=5)
1056
+ return json.dumps({"results": results})
1057
+ except Exception as e:
1058
+ return json.dumps({"error": str(e)})
1059
+
1060
+ # Add the functions to the provider
1061
+ client.add_function("calculate", calculate)
1062
+ client.add_function("search", search)
1063
+
1064
+ # Define the tools
1065
+ tools = [
1066
+ {
1067
+ "type": "function",
1068
+ "function": {
1069
+ "name": "calculate",
1070
+ "description": "Evaluate a mathematical expression",
1071
+ "parameters": {
1072
+ "type": "object",
1073
+ "properties": {
1074
+ "expression": {
1075
+ "type": "string",
1076
+ "description": "The mathematical expression to evaluate",
1077
+ }
1078
+ },
1079
+ "required": ["expression"],
1080
+ },
1081
+ }
1082
+ },
1083
+ {
1084
+ "type": "function",
1085
+ "function": {
1086
+ "name": "search",
1087
+ "description": "Perform a text search using DuckDuckGo.com and Yep.com",
1088
+ "parameters": {
1089
+ "type": "object",
1090
+ "properties": {
1091
+ "query": {
1092
+ "type": "string",
1093
+ "description": "The search query to execute",
1094
+ }
1095
+ },
1096
+ "required": ["query"],
1097
+ },
1098
+ }
1099
+ }
1100
+ ]
1101
+
1102
+
1103
+ user_prompt_calculate = "What is 25 * 4 + 10?"
1104
+ response_calculate = client.chat(user_prompt_calculate, tools=tools)
1105
+ print(response_calculate)
1106
+
1107
+ user_prompt_search = "Find information on HelpingAI and who is its developer"
1108
+ response_search = client.chat(user_prompt_search, tools=tools)
1109
+ print(response_search)
1110
+
1111
+ ```
1112
+
1113
+ ### `LLama 70b` - Chat with Meta's Llama 3 70b
1114
+
1115
+ ```python
1116
+
1117
+ from webscout import LLAMA
1118
+
1119
+ llama = LLAMA()
1120
+
1121
+ r = llama.chat("What is the meaning of life?")
1122
+ print(r)
1123
+ ```
1124
+
1125
+ ### `AndiSearch`
1126
+
1127
+ ```python
1128
+ from webscout import AndiSearch
1129
+ a = AndiSearch()
1130
+ print(a.chat("HelpingAI-9B"))
1131
+ ```
1132
+
1133
+
1134
+ ### LLAMA3, pizzagpt, RUBIKSAI, Koala, Darkai, AI4Chat, Farfalle, PIAI, Felo, Julius, YouChat, YEPCHAT, Cloudflare, TurboSeek, Editee, AI21, Chatify, Cerebras, X0GPT, Lepton, GEMINIAPI, Cleeai, Elmo, Free2GPT, Bing, DiscordRocks, GPTWeb, LlamaTutor, PromptRefine, TutorAI, ChatGPTES, Bagoodex, ChatHub, AmigoChat, AIMathGPT, GaurishCerebras, NinjaChat, GeminiPro, Talkai, LLMChat, AskMyAI, Llama3Mitril, Marcus, TypeGPT, Mhystical, Netwrck, MultiChatAI, JadveOpenAI, OOAi
1135
+
1136
+ Code is similar to other providers.
1137
+
1138
+ ### `LLM`
1139
+
1140
+ ```python
1141
+ from webscout.LLM import LLM, VLM
1142
+
1143
+ # Chat with text
1144
+ llm = LLM("meta-llama/Meta-Llama-3-70B-Instruct")
1145
+ response = llm.chat([{"role": "user", "content": "What's good?"}])
1146
+
1147
+ # Chat with images
1148
+ vlm = VLM("cogvlm-grounding-generalist")
1149
+ response = vlm.chat([{
1150
+ "role": "user",
1151
+ "content": [
1152
+ {"type": "image", "image_url": "cool_pic.jpg"},
1153
+ {"type": "text", "text": "What's in this image?"}
1154
+ ]
1155
+ }])
1156
+ ```
1157
+
1158
+ ## 💻 Local-LLM
1159
+
1160
+ Webscout can now run GGUF models locally. You can download and run your favorite models with minimal configuration.
1161
+
1162
+ **Example:**
1163
+
1164
+ ```python
1165
+ from webscout.Local import *
1166
+ model_path = download_model("Qwen/Qwen2.5-0.5B-Instruct-GGUF", "qwen2.5-0.5b-instruct-q2_k.gguf", token=None)
1167
+ model = Model(model_path, n_gpu_layers=0, context_length=2048)
1168
+ thread = Thread(model, format=chatml)
1169
+ # print(thread.send("hi")) #send a single msg to ai
1170
+
1171
+ # thread.interact() # interact with the model in terminal
1172
+ # start webui
1173
+ # webui = WebUI(thread)
1174
+ # webui.start(host="0.0.0.0", port=8080, ssl=True) #Use ssl=True and make cert and key for https
1175
+ ```
1176
+
1177
+ ## 🐶 Local-rawdog
1178
+
1179
+ Webscout's local raw-dog feature allows you to run Python scripts within your terminal prompt.
1180
+
1181
+ **Example:**
1182
+
1183
+ ```python
1184
+ import webscout.Local as ws
1185
+ from webscout.Local.rawdog import RawDog
1186
+ from webscout.Local.samplers import DefaultSampling
1187
+ from webscout.Local.formats import chatml, AdvancedFormat
1188
+ from webscout.Local.utils import download_model
1189
+ import datetime
1190
+ import sys
1191
+ import os
1192
+
1193
+ repo_id = "YorkieOH10/granite-8b-code-instruct-Q8_0-GGUF"
1194
+ filename = "granite-8b-code-instruct.Q8_0.gguf"
1195
+ model_path = download_model(repo_id, filename, token='')
1196
+
1197
+ # Load the model using the downloaded path
1198
+ model = ws.Model(model_path, n_gpu_layers=10)
1199
+
1200
+ rawdog = RawDog()
1201
+
1202
+ # Create an AdvancedFormat and modify the system content
1203
+ # Use a lambda to generate the prompt dynamically:
1204
+ chat_format = AdvancedFormat(chatml)
1205
+ # **Pre-format the intro_prompt string:**
1206
+ system_content = f"""
1207
+ You are a command-line coding assistant called Rawdog that generates and auto-executes Python scripts.
1208
+
1209
+ A typical interaction goes like this:
1210
+ 1. The user gives you a natural language PROMPT.
1211
+ 2. You:
1212
+ i. Determine what needs to be done
1213
+ ii. Write a short Python SCRIPT to do it
1214
+ iii. Communicate back to the user by printing to the console in that SCRIPT
1215
+ 3. The compiler extracts the script and then runs it using exec(). If there will be an exception raised,
1216
+ it will be send back to you starting with "PREVIOUS SCRIPT EXCEPTION:".
1217
+ 4. In case of exception, regenerate error free script.
1218
+
1219
+ If you need to review script outputs before completing the task, you can print the word "CONTINUE" at the end of your SCRIPT.
1220
+ This can be useful for summarizing documents or technical readouts, reading instructions before
1221
+ deciding what to do, or other tasks that require multi-step reasoning.
1222
+ A typical 'CONTINUE' interaction looks like this:
1223
+ 1. The user gives you a natural language PROMPT.
1224
+ 2. You:
1225
+ i. Determine what needs to be done
1226
+ ii. Determine that you need to see the output of some subprocess call to complete the task
1227
+ iii. Write a short Python SCRIPT to print that and then print the word "CONTINUE"
1228
+ 3. The compiler
1229
+ i. Checks and runs your SCRIPT
1230
+ ii. Captures the output and appends it to the conversation as "LAST SCRIPT OUTPUT:"
1231
+ iii. Finds the word "CONTINUE" and sends control back to you
1232
+ 4. You again:
1233
+ i. Look at the original PROMPT + the "LAST SCRIPT OUTPUT:" to determine what needs to be done
1234
+ ii. Write a short Python SCRIPT to do it
1235
+ iii. Communicate back to the user by printing to the console in that SCRIPT
1236
+ 5. The compiler...
1237
+
1238
+ Please follow these conventions carefully:
1239
+ - Decline any tasks that seem dangerous, irreversible, or that you don't understand.
1240
+ - Always review the full conversation prior to answering and maintain continuity.
1241
+ - If asked for information, just print the information clearly and concisely.
1242
+ - If asked to do something, print a concise summary of what you've done as confirmation.
1243
+ - If asked a question, respond in a friendly, conversational way. Use programmatically-generated and natural language responses as appropriate.
1244
+ - If you need clarification, return a SCRIPT that prints your question. In the next interaction, continue based on the user's response.
1245
+ - Assume the user would like something concise. For example rather than printing a massive table, filter or summarize it to what's likely of interest.
1246
+ - Actively clean up any temporary processes or files you use.
1247
+ - When looking through files, use git as available to skip files, and skip hidden files (.env, .git, etc) by default.
1248
+ - You can plot anything with matplotlib.
1249
+ - ALWAYS Return your SCRIPT inside of a single pair of ``` delimiters. Only the console output of the first such SCRIPT is visible to the user, so make sure that it's complete and don't bother returning anything else.
1250
+ """
1251
+ chat_format.override('system_content', lambda: system_content)
1252
+
1253
+ thread = ws.Thread(model, format=chat_format, sampler=DefaultSampling)
1254
+
1255
+ while True:
1256
+ prompt = input(">: ")
1257
+ if prompt.lower() == "q":
1258
+ break
1259
+
1260
+ response = thread.send(prompt)
1261
+
1262
+ # Process the response using RawDog
1263
+ script_output = rawdog.main(response)
1264
+
1265
+ if script_output:
1266
+ print(script_output)
1267
+
1268
+ ```
1269
+
1270
+ ## GGUF
1271
+
1272
+ Webscout provides tools to convert and quantize Hugging Face models into the GGUF format for use with offline LLMs.
1273
+
1274
+ **Example:**
1275
+
1276
+ ```python
1277
+ from webscout.Extra import gguf
1278
+ """
1279
+ Valid quantization methods:
1280
+ "q2_k", "q3_k_l", "q3_k_m", "q3_k_s",
1281
+ "q4_0", "q4_1", "q4_k_m", "q4_k_s",
1282
+ "q5_0", "q5_1", "q5_k_m", "q5_k_s",
1283
+ "q6_k", "q8_0"
1284
+ """
1285
+ gguf.convert(
1286
+ model_id="OEvortex/HelpingAI-Lite-1.5T", # Replace with your model ID
1287
+ username="Abhaykoul", # Replace with your Hugging Face username
1288
+ token="hf_token_write", # Replace with your Hugging Face token
1289
+ quantization_methods="q4_k_m" # Optional, adjust quantization methods
1290
+ )
1291
+ ```
1292
+
1293
+ ## 🤖 Autollama
1294
+
1295
+ Webscout's `autollama` utility downloads a model from Hugging Face and then automatically makes it Ollama-ready.
1296
+
1297
+ ```python
1298
+ from webscout.Extra import autollama
1299
+
1300
+ model_path = "Vortex4ai/Jarvis-0.5B"
1301
+ gguf_file = "test2-q4_k_m.gguf"
1302
+
1303
+ autollama.main(model_path, gguf_file)
1304
+ ```
1305
+
1306
+ **Command Line Usage:**
1307
+
1308
+ * **GGUF Conversion:**
1309
+ ```bash
1310
+ python -m webscout.Extra.gguf -m "OEvortex/HelpingAI-Lite-1.5T" -u "your_username" -t "your_hf_token" -q "q4_k_m,q5_k_m"
1311
+ ```
1312
+
1313
+ * **Autollama:**
1314
+ ```bash
1315
+ python -m webscout.Extra.autollama -m "OEvortex/HelpingAI-Lite-1.5T" -g "HelpingAI-Lite-1.5T.q4_k_m.gguf"
1316
+ ```
1317
+
1318
+ **Note:**
1319
+
1320
+ * Replace `"your_username"` and `"your_hf_token"` with your actual Hugging Face credentials.
1321
+ * The `model_path` in `autollama` is the Hugging Face model ID, and `gguf_file` is the GGUF file ID.
1322
+
1323
+
1324
+ ## 🌐 `Webai` - Terminal GPT and an Open Interpreter
1325
+
1326
+ ```bash
1327
+ python -m webscout.webai webai --provider "phind" --rawdog
1328
+ ```
1329
+
1330
+ <div align="center">
1331
+ <!-- Replace `#` with your actual links -->
1332
+ <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>
1333
+ <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>
1334
+ <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>
1335
+ <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>
1336
+ </div>
1337
+
1338
+ <div align="center">
1339
+ <!-- Replace `#` with your actual links -->
1340
+ <a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
1341
+ </div>
1342
+ <div align="center">
1343
+ <a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
1344
+ </div>
1345
+ <div align="center">
1346
+ <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
1347
+ </div>
1348
+
1349
+ ## 🤝 Contributing
1350
+
1351
+ Contributions are welcome! If you'd like to contribute to Webscout, please follow these steps:
1352
+
1353
+ 1. Fork the repository.
1354
+ 2. Create a new branch for your feature or bug fix.
1355
+ 3. Make your changes and commit them with descriptive messages.
1356
+ 4. Push your branch to your forked repository.
1357
+ 5. Submit a pull request to the main repository.
1358
+
1359
+
1360
+ ## 🙏 Acknowledgments
1361
+
1362
+ * All the amazing developers who have contributed to the project!
1363
+ * The open-source community for their support and inspiration.