webscout 8.0__tar.gz → 8.2__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 (317) hide show
  1. webscout-8.2/PKG-INFO +693 -0
  2. webscout-8.2/README.md +653 -0
  3. webscout-8.2/inferno/__init__.py +6 -0
  4. webscout-8.2/inferno/__main__.py +9 -0
  5. webscout-8.2/inferno/cli.py +6 -0
  6. {webscout-8.0 → webscout-8.2}/setup.py +57 -34
  7. webscout-8.2/webscout/Local/__init__.py +6 -0
  8. webscout-8.2/webscout/Local/__main__.py +9 -0
  9. webscout-8.2/webscout/Local/api.py +576 -0
  10. webscout-8.2/webscout/Local/cli.py +338 -0
  11. webscout-8.2/webscout/Local/config.py +75 -0
  12. webscout-8.2/webscout/Local/llm.py +188 -0
  13. webscout-8.2/webscout/Local/model_manager.py +205 -0
  14. webscout-8.2/webscout/Local/server.py +187 -0
  15. webscout-8.2/webscout/Local/utils.py +93 -0
  16. {webscout-8.0 → webscout-8.2}/webscout/Provider/AISEARCH/DeepFind.py +1 -1
  17. {webscout-8.0 → webscout-8.2}/webscout/Provider/AISEARCH/ISou.py +1 -1
  18. webscout-8.2/webscout/Provider/AISEARCH/Perplexity.py +359 -0
  19. {webscout-8.0 → webscout-8.2}/webscout/Provider/AISEARCH/__init__.py +3 -1
  20. {webscout-8.0 → webscout-8.2}/webscout/Provider/AISEARCH/felo_search.py +1 -1
  21. {webscout-8.0 → webscout-8.2}/webscout/Provider/AISEARCH/genspark_search.py +1 -1
  22. {webscout-8.0 → webscout-8.2}/webscout/Provider/AISEARCH/hika_search.py +1 -1
  23. webscout-8.2/webscout/Provider/AISEARCH/iask_search.py +436 -0
  24. {webscout-8.0 → webscout-8.2}/webscout/Provider/AISEARCH/scira_search.py +9 -5
  25. {webscout-8.0 → webscout-8.2}/webscout/Provider/AISEARCH/webpilotai_search.py +1 -1
  26. {webscout-8.0 → webscout-8.2}/webscout/Provider/ExaAI.py +1 -1
  27. {webscout-8.0 → webscout-8.2}/webscout/Provider/ExaChat.py +18 -8
  28. {webscout-8.0 → webscout-8.2}/webscout/Provider/GithubChat.py +5 -1
  29. {webscout-8.0 → webscout-8.2}/webscout/Provider/Glider.py +4 -2
  30. {webscout-8.0 → webscout-8.2}/webscout/Provider/Jadve.py +2 -2
  31. webscout-8.2/webscout/Provider/OPENAI/__init__.py +24 -0
  32. webscout-8.2/webscout/Provider/OPENAI/base.py +46 -0
  33. webscout-8.2/webscout/Provider/OPENAI/c4ai.py +347 -0
  34. webscout-8.2/webscout/Provider/OPENAI/chatgpt.py +549 -0
  35. webscout-8.2/webscout/Provider/OPENAI/chatgptclone.py +460 -0
  36. webscout-8.2/webscout/Provider/OPENAI/deepinfra.py +284 -0
  37. webscout-8.2/webscout/Provider/OPENAI/exaai.py +419 -0
  38. webscout-8.2/webscout/Provider/OPENAI/exachat.py +433 -0
  39. webscout-8.2/webscout/Provider/OPENAI/freeaichat.py +355 -0
  40. webscout-8.2/webscout/Provider/OPENAI/glider.py +316 -0
  41. webscout-8.2/webscout/Provider/OPENAI/heckai.py +337 -0
  42. webscout-8.2/webscout/Provider/OPENAI/llmchatco.py +327 -0
  43. webscout-8.2/webscout/Provider/OPENAI/netwrck.py +348 -0
  44. webscout-8.2/webscout/Provider/OPENAI/opkfc.py +488 -0
  45. webscout-8.2/webscout/Provider/OPENAI/scirachat.py +463 -0
  46. webscout-8.2/webscout/Provider/OPENAI/sonus.py +294 -0
  47. webscout-8.2/webscout/Provider/OPENAI/standardinput.py +425 -0
  48. webscout-8.2/webscout/Provider/OPENAI/textpollinations.py +285 -0
  49. webscout-8.2/webscout/Provider/OPENAI/toolbaz.py +405 -0
  50. webscout-8.2/webscout/Provider/OPENAI/typegpt.py +361 -0
  51. webscout-8.2/webscout/Provider/OPENAI/uncovrAI.py +455 -0
  52. webscout-8.2/webscout/Provider/OPENAI/utils.py +211 -0
  53. webscout-8.2/webscout/Provider/OPENAI/venice.py +428 -0
  54. webscout-8.2/webscout/Provider/OPENAI/wisecat.py +381 -0
  55. webscout-8.2/webscout/Provider/OPENAI/writecream.py +158 -0
  56. webscout-8.2/webscout/Provider/OPENAI/x0gpt.py +389 -0
  57. webscout-8.2/webscout/Provider/OPENAI/yep.py +329 -0
  58. webscout-8.2/webscout/Provider/StandardInput.py +278 -0
  59. {webscout-8.0 → webscout-8.2}/webscout/Provider/TextPollinationsAI.py +27 -28
  60. {webscout-8.0 → webscout-8.2}/webscout/Provider/Venice.py +1 -1
  61. webscout-8.2/webscout/Provider/Writecream.py +211 -0
  62. webscout-8.2/webscout/Provider/WritingMate.py +197 -0
  63. {webscout-8.0 → webscout-8.2}/webscout/Provider/Youchat.py +30 -26
  64. {webscout-8.0 → webscout-8.2}/webscout/Provider/__init__.py +14 -6
  65. {webscout-8.0 → webscout-8.2}/webscout/Provider/koala.py +2 -2
  66. {webscout-8.0 → webscout-8.2}/webscout/Provider/llmchatco.py +5 -0
  67. {webscout-8.0 → webscout-8.2}/webscout/Provider/scira_chat.py +18 -12
  68. webscout-8.2/webscout/Provider/scnet.py +187 -0
  69. webscout-8.2/webscout/Provider/toolbaz.py +320 -0
  70. {webscout-8.0 → webscout-8.2}/webscout/Provider/typegpt.py +3 -184
  71. {webscout-8.0 → webscout-8.2}/webscout/Provider/uncovr.py +3 -3
  72. {webscout-8.0 → webscout-8.2}/webscout/conversation.py +32 -32
  73. {webscout-8.0 → webscout-8.2}/webscout/prompt_manager.py +2 -1
  74. {webscout-8.0 → webscout-8.2}/webscout/version.py +1 -1
  75. webscout-8.2/webscout.egg-info/PKG-INFO +693 -0
  76. {webscout-8.0 → webscout-8.2}/webscout.egg-info/SOURCES.txt +46 -1
  77. webscout-8.2/webscout.egg-info/entry_points.txt +5 -0
  78. {webscout-8.0 → webscout-8.2}/webscout.egg-info/requires.txt +10 -0
  79. {webscout-8.0 → webscout-8.2}/webscout.egg-info/top_level.txt +1 -0
  80. webscout-8.0/PKG-INFO +0 -962
  81. webscout-8.0/README.md +0 -934
  82. webscout-8.0/webscout/Provider/flowith.py +0 -207
  83. webscout-8.0/webscout.egg-info/PKG-INFO +0 -962
  84. webscout-8.0/webscout.egg-info/entry_points.txt +0 -3
  85. {webscout-8.0 → webscout-8.2}/LICENSE.md +0 -0
  86. {webscout-8.0 → webscout-8.2}/setup.cfg +0 -0
  87. {webscout-8.0 → webscout-8.2}/webscout/AIauto.py +0 -0
  88. {webscout-8.0 → webscout-8.2}/webscout/AIbase.py +0 -0
  89. {webscout-8.0 → webscout-8.2}/webscout/AIutel.py +0 -0
  90. {webscout-8.0 → webscout-8.2}/webscout/Bard.py +0 -0
  91. {webscout-8.0 → webscout-8.2}/webscout/DWEBS.py +0 -0
  92. {webscout-8.0 → webscout-8.2}/webscout/Extra/GitToolkit/__init__.py +0 -0
  93. {webscout-8.0 → webscout-8.2}/webscout/Extra/GitToolkit/gitapi/__init__.py +0 -0
  94. {webscout-8.0 → webscout-8.2}/webscout/Extra/GitToolkit/gitapi/repository.py +0 -0
  95. {webscout-8.0 → webscout-8.2}/webscout/Extra/GitToolkit/gitapi/user.py +0 -0
  96. {webscout-8.0 → webscout-8.2}/webscout/Extra/GitToolkit/gitapi/utils.py +0 -0
  97. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/YTdownloader.py +0 -0
  98. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/__init__.py +0 -0
  99. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/transcriber.py +0 -0
  100. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/__init__.py +0 -0
  101. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/channel.py +0 -0
  102. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/errors.py +0 -0
  103. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/extras.py +0 -0
  104. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/https.py +0 -0
  105. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/patterns.py +0 -0
  106. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/playlist.py +0 -0
  107. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/pool.py +0 -0
  108. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/query.py +0 -0
  109. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/stream.py +0 -0
  110. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/utils.py +0 -0
  111. {webscout-8.0 → webscout-8.2}/webscout/Extra/YTToolkit/ytapi/video.py +0 -0
  112. {webscout-8.0 → webscout-8.2}/webscout/Extra/__init__.py +0 -0
  113. {webscout-8.0 → webscout-8.2}/webscout/Extra/autocoder/__init__.py +0 -0
  114. {webscout-8.0 → webscout-8.2}/webscout/Extra/autocoder/autocoder.py +0 -0
  115. {webscout-8.0 → webscout-8.2}/webscout/Extra/autocoder/autocoder_utiles.py +0 -0
  116. {webscout-8.0 → webscout-8.2}/webscout/Extra/gguf.py +0 -0
  117. {webscout-8.0 → webscout-8.2}/webscout/Extra/tempmail/__init__.py +0 -0
  118. {webscout-8.0 → webscout-8.2}/webscout/Extra/tempmail/async_utils.py +0 -0
  119. {webscout-8.0 → webscout-8.2}/webscout/Extra/tempmail/base.py +0 -0
  120. {webscout-8.0 → webscout-8.2}/webscout/Extra/tempmail/cli.py +0 -0
  121. {webscout-8.0 → webscout-8.2}/webscout/Extra/tempmail/mail_tm.py +0 -0
  122. {webscout-8.0 → webscout-8.2}/webscout/Extra/tempmail/temp_mail_io.py +0 -0
  123. {webscout-8.0 → webscout-8.2}/webscout/Extra/weather.py +0 -0
  124. {webscout-8.0 → webscout-8.2}/webscout/Extra/weather_ascii.py +0 -0
  125. {webscout-8.0 → webscout-8.2}/webscout/LLM.py +0 -0
  126. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/__init__.py +0 -0
  127. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/core/__init__.py +0 -0
  128. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/core/level.py +0 -0
  129. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/core/logger.py +0 -0
  130. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/handlers/__init__.py +0 -0
  131. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/handlers/console.py +0 -0
  132. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/handlers/file.py +0 -0
  133. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/handlers/network.py +0 -0
  134. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/styles/__init__.py +0 -0
  135. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/styles/colors.py +0 -0
  136. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/styles/formats.py +0 -0
  137. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/styles/text.py +0 -0
  138. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/utils/__init__.py +0 -0
  139. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/utils/detectors.py +0 -0
  140. {webscout-8.0 → webscout-8.2}/webscout/Litlogger/utils/formatters.py +0 -0
  141. {webscout-8.0 → webscout-8.2}/webscout/Provider/AI21.py +0 -0
  142. {webscout-8.0 → webscout-8.2}/webscout/Provider/AISEARCH/monica_search.py +0 -0
  143. {webscout-8.0 → webscout-8.2}/webscout/Provider/Aitopia.py +0 -0
  144. {webscout-8.0 → webscout-8.2}/webscout/Provider/AllenAI.py +0 -0
  145. {webscout-8.0 → webscout-8.2}/webscout/Provider/Andi.py +0 -0
  146. {webscout-8.0 → webscout-8.2}/webscout/Provider/Blackboxai.py +0 -0
  147. {webscout-8.0 → webscout-8.2}/webscout/Provider/C4ai.py +0 -0
  148. {webscout-8.0 → webscout-8.2}/webscout/Provider/ChatGPTClone.py +0 -0
  149. {webscout-8.0 → webscout-8.2}/webscout/Provider/ChatGPTES.py +0 -0
  150. {webscout-8.0 → webscout-8.2}/webscout/Provider/ChatGPTGratis.py +0 -0
  151. {webscout-8.0 → webscout-8.2}/webscout/Provider/Chatify.py +0 -0
  152. {webscout-8.0 → webscout-8.2}/webscout/Provider/Cloudflare.py +0 -0
  153. {webscout-8.0 → webscout-8.2}/webscout/Provider/Cohere.py +0 -0
  154. {webscout-8.0 → webscout-8.2}/webscout/Provider/DeepSeek.py +0 -0
  155. {webscout-8.0 → webscout-8.2}/webscout/Provider/Deepinfra.py +0 -0
  156. {webscout-8.0 → webscout-8.2}/webscout/Provider/ElectronHub.py +0 -0
  157. {webscout-8.0 → webscout-8.2}/webscout/Provider/Free2GPT.py +0 -0
  158. {webscout-8.0 → webscout-8.2}/webscout/Provider/GPTWeb.py +0 -0
  159. {webscout-8.0 → webscout-8.2}/webscout/Provider/Gemini.py +0 -0
  160. {webscout-8.0 → webscout-8.2}/webscout/Provider/Groq.py +0 -0
  161. {webscout-8.0 → webscout-8.2}/webscout/Provider/HF_space/__init__.py +0 -0
  162. {webscout-8.0 → webscout-8.2}/webscout/Provider/HF_space/qwen_qwen2.py +0 -0
  163. {webscout-8.0 → webscout-8.2}/webscout/Provider/HeckAI.py +0 -0
  164. {webscout-8.0 → webscout-8.2}/webscout/Provider/HuggingFaceChat.py +0 -0
  165. {webscout-8.0 → webscout-8.2}/webscout/Provider/Hunyuan.py +0 -0
  166. {webscout-8.0 → webscout-8.2}/webscout/Provider/Koboldai.py +0 -0
  167. {webscout-8.0 → webscout-8.2}/webscout/Provider/LambdaChat.py +0 -0
  168. {webscout-8.0 → webscout-8.2}/webscout/Provider/Llama.py +0 -0
  169. {webscout-8.0 → webscout-8.2}/webscout/Provider/Llama3.py +0 -0
  170. {webscout-8.0 → webscout-8.2}/webscout/Provider/Marcus.py +0 -0
  171. {webscout-8.0 → webscout-8.2}/webscout/Provider/Netwrck.py +0 -0
  172. {webscout-8.0 → webscout-8.2}/webscout/Provider/OLLAMA.py +0 -0
  173. {webscout-8.0 → webscout-8.2}/webscout/Provider/OpenGPT.py +0 -0
  174. {webscout-8.0 → webscout-8.2}/webscout/Provider/Openai.py +0 -0
  175. {webscout-8.0 → webscout-8.2}/webscout/Provider/PI.py +0 -0
  176. {webscout-8.0 → webscout-8.2}/webscout/Provider/Perplexitylabs.py +0 -0
  177. {webscout-8.0 → webscout-8.2}/webscout/Provider/Phind.py +0 -0
  178. {webscout-8.0 → webscout-8.2}/webscout/Provider/PizzaGPT.py +0 -0
  179. {webscout-8.0 → webscout-8.2}/webscout/Provider/QwenLM.py +0 -0
  180. {webscout-8.0 → webscout-8.2}/webscout/Provider/Reka.py +0 -0
  181. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/AiForce/__init__.py +0 -0
  182. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/AiForce/async_aiforce.py +0 -0
  183. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/AiForce/sync_aiforce.py +0 -0
  184. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/FreeAIPlayground/__init__.py +0 -0
  185. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +0 -0
  186. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +0 -0
  187. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/ImgSys/__init__.py +0 -0
  188. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/ImgSys/async_imgsys.py +0 -0
  189. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/ImgSys/sync_imgsys.py +0 -0
  190. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/MagicStudio/__init__.py +0 -0
  191. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/MagicStudio/async_magicstudio.py +0 -0
  192. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +0 -0
  193. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/Nexra/__init__.py +0 -0
  194. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/Nexra/async_nexra.py +0 -0
  195. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/Nexra/sync_nexra.py +0 -0
  196. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/PollinationsAI/__init__.py +0 -0
  197. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/PollinationsAI/async_pollinations.py +0 -0
  198. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +0 -0
  199. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/__init__.py +0 -0
  200. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/aiarta/__init__.py +0 -0
  201. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/aiarta/async_aiarta.py +0 -0
  202. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/aiarta/sync_aiarta.py +0 -0
  203. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/artbit/__init__.py +0 -0
  204. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/artbit/async_artbit.py +0 -0
  205. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/artbit/sync_artbit.py +0 -0
  206. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/fastflux/__init__.py +0 -0
  207. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/fastflux/async_fastflux.py +0 -0
  208. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/fastflux/sync_fastflux.py +0 -0
  209. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/huggingface/__init__.py +0 -0
  210. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/huggingface/async_huggingface.py +0 -0
  211. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/huggingface/sync_huggingface.py +0 -0
  212. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/piclumen/__init__.py +0 -0
  213. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/piclumen/async_piclumen.py +0 -0
  214. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/piclumen/sync_piclumen.py +0 -0
  215. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/pixelmuse/__init__.py +0 -0
  216. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/pixelmuse/async_pixelmuse.py +0 -0
  217. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/pixelmuse/sync_pixelmuse.py +0 -0
  218. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/talkai/__init__.py +0 -0
  219. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/talkai/async_talkai.py +0 -0
  220. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTI/talkai/sync_talkai.py +0 -0
  221. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTS/__init__.py +0 -0
  222. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTS/deepgram.py +0 -0
  223. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTS/elevenlabs.py +0 -0
  224. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTS/gesserit.py +0 -0
  225. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTS/murfai.py +0 -0
  226. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTS/parler.py +0 -0
  227. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTS/speechma.py +0 -0
  228. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTS/streamElements.py +0 -0
  229. {webscout-8.0 → webscout-8.2}/webscout/Provider/TTS/utils.py +0 -0
  230. {webscout-8.0 → webscout-8.2}/webscout/Provider/TeachAnything.py +0 -0
  231. {webscout-8.0 → webscout-8.2}/webscout/Provider/TwoAI.py +0 -0
  232. {webscout-8.0 → webscout-8.2}/webscout/Provider/VercelAI.py +0 -0
  233. {webscout-8.0 → webscout-8.2}/webscout/Provider/WebSim.py +0 -0
  234. {webscout-8.0 → webscout-8.2}/webscout/Provider/WiseCat.py +0 -0
  235. {webscout-8.0 → webscout-8.2}/webscout/Provider/ai4chat.py +0 -0
  236. {webscout-8.0 → webscout-8.2}/webscout/Provider/aimathgpt.py +0 -0
  237. {webscout-8.0 → webscout-8.2}/webscout/Provider/akashgpt.py +0 -0
  238. {webscout-8.0 → webscout-8.2}/webscout/Provider/askmyai.py +0 -0
  239. {webscout-8.0 → webscout-8.2}/webscout/Provider/asksteve.py +0 -0
  240. {webscout-8.0 → webscout-8.2}/webscout/Provider/bagoodex.py +0 -0
  241. {webscout-8.0 → webscout-8.2}/webscout/Provider/cerebras.py +0 -0
  242. {webscout-8.0 → webscout-8.2}/webscout/Provider/chatglm.py +0 -0
  243. {webscout-8.0 → webscout-8.2}/webscout/Provider/cleeai.py +0 -0
  244. {webscout-8.0 → webscout-8.2}/webscout/Provider/copilot.py +0 -0
  245. {webscout-8.0 → webscout-8.2}/webscout/Provider/elmo.py +0 -0
  246. {webscout-8.0 → webscout-8.2}/webscout/Provider/freeaichat.py +0 -0
  247. {webscout-8.0 → webscout-8.2}/webscout/Provider/gaurish.py +0 -0
  248. {webscout-8.0 → webscout-8.2}/webscout/Provider/geminiapi.py +0 -0
  249. {webscout-8.0 → webscout-8.2}/webscout/Provider/geminiprorealtime.py +0 -0
  250. {webscout-8.0 → webscout-8.2}/webscout/Provider/granite.py +0 -0
  251. {webscout-8.0 → webscout-8.2}/webscout/Provider/hermes.py +0 -0
  252. {webscout-8.0 → webscout-8.2}/webscout/Provider/julius.py +0 -0
  253. {webscout-8.0 → webscout-8.2}/webscout/Provider/labyrinth.py +0 -0
  254. {webscout-8.0 → webscout-8.2}/webscout/Provider/learnfastai.py +0 -0
  255. {webscout-8.0 → webscout-8.2}/webscout/Provider/lepton.py +0 -0
  256. {webscout-8.0 → webscout-8.2}/webscout/Provider/llama3mitril.py +0 -0
  257. {webscout-8.0 → webscout-8.2}/webscout/Provider/llamatutor.py +0 -0
  258. {webscout-8.0 → webscout-8.2}/webscout/Provider/llmchat.py +0 -0
  259. {webscout-8.0 → webscout-8.2}/webscout/Provider/meta.py +0 -0
  260. {webscout-8.0 → webscout-8.2}/webscout/Provider/multichat.py +0 -0
  261. {webscout-8.0 → webscout-8.2}/webscout/Provider/promptrefine.py +0 -0
  262. {webscout-8.0 → webscout-8.2}/webscout/Provider/searchchat.py +0 -0
  263. {webscout-8.0 → webscout-8.2}/webscout/Provider/sonus.py +0 -0
  264. {webscout-8.0 → webscout-8.2}/webscout/Provider/talkai.py +0 -0
  265. {webscout-8.0 → webscout-8.2}/webscout/Provider/turboseek.py +0 -0
  266. {webscout-8.0 → webscout-8.2}/webscout/Provider/tutorai.py +0 -0
  267. {webscout-8.0 → webscout-8.2}/webscout/Provider/typefully.py +0 -0
  268. {webscout-8.0 → webscout-8.2}/webscout/Provider/x0gpt.py +0 -0
  269. {webscout-8.0 → webscout-8.2}/webscout/Provider/yep.py +0 -0
  270. {webscout-8.0 → webscout-8.2}/webscout/__init__.py +0 -0
  271. {webscout-8.0 → webscout-8.2}/webscout/__main__.py +0 -0
  272. {webscout-8.0 → webscout-8.2}/webscout/cli.py +0 -0
  273. {webscout-8.0 → webscout-8.2}/webscout/exceptions.py +0 -0
  274. {webscout-8.0 → webscout-8.2}/webscout/litagent/__init__.py +0 -0
  275. {webscout-8.0 → webscout-8.2}/webscout/litagent/agent.py +0 -0
  276. {webscout-8.0 → webscout-8.2}/webscout/litagent/constants.py +0 -0
  277. {webscout-8.0 → webscout-8.2}/webscout/litprinter/__init__.py +0 -0
  278. {webscout-8.0 → webscout-8.2}/webscout/models.py +0 -0
  279. {webscout-8.0 → webscout-8.2}/webscout/optimizers.py +0 -0
  280. {webscout-8.0 → webscout-8.2}/webscout/scout/__init__.py +0 -0
  281. {webscout-8.0 → webscout-8.2}/webscout/scout/core/__init__.py +0 -0
  282. {webscout-8.0 → webscout-8.2}/webscout/scout/core/crawler.py +0 -0
  283. {webscout-8.0 → webscout-8.2}/webscout/scout/core/scout.py +0 -0
  284. {webscout-8.0 → webscout-8.2}/webscout/scout/core/search_result.py +0 -0
  285. {webscout-8.0 → webscout-8.2}/webscout/scout/core/text_analyzer.py +0 -0
  286. {webscout-8.0 → webscout-8.2}/webscout/scout/core/text_utils.py +0 -0
  287. {webscout-8.0 → webscout-8.2}/webscout/scout/core/web_analyzer.py +0 -0
  288. {webscout-8.0 → webscout-8.2}/webscout/scout/core.py +0 -0
  289. {webscout-8.0 → webscout-8.2}/webscout/scout/element.py +0 -0
  290. {webscout-8.0 → webscout-8.2}/webscout/scout/parsers/__init__.py +0 -0
  291. {webscout-8.0 → webscout-8.2}/webscout/scout/parsers/html5lib_parser.py +0 -0
  292. {webscout-8.0 → webscout-8.2}/webscout/scout/parsers/html_parser.py +0 -0
  293. {webscout-8.0 → webscout-8.2}/webscout/scout/parsers/lxml_parser.py +0 -0
  294. {webscout-8.0 → webscout-8.2}/webscout/scout/utils.py +0 -0
  295. {webscout-8.0 → webscout-8.2}/webscout/swiftcli/__init__.py +0 -0
  296. {webscout-8.0 → webscout-8.2}/webscout/tempid.py +0 -0
  297. {webscout-8.0 → webscout-8.2}/webscout/update_checker.py +0 -0
  298. {webscout-8.0 → webscout-8.2}/webscout/utils.py +0 -0
  299. {webscout-8.0 → webscout-8.2}/webscout/webscout_search.py +0 -0
  300. {webscout-8.0 → webscout-8.2}/webscout/webscout_search_async.py +0 -0
  301. {webscout-8.0 → webscout-8.2}/webscout/yep_search.py +0 -0
  302. {webscout-8.0 → webscout-8.2}/webscout/zeroart/__init__.py +0 -0
  303. {webscout-8.0 → webscout-8.2}/webscout/zeroart/base.py +0 -0
  304. {webscout-8.0 → webscout-8.2}/webscout/zeroart/effects.py +0 -0
  305. {webscout-8.0 → webscout-8.2}/webscout/zeroart/fonts.py +0 -0
  306. {webscout-8.0 → webscout-8.2}/webscout.egg-info/dependency_links.txt +0 -0
  307. {webscout-8.0 → webscout-8.2}/webstoken/__init__.py +0 -0
  308. {webscout-8.0 → webscout-8.2}/webstoken/classifier.py +0 -0
  309. {webscout-8.0 → webscout-8.2}/webstoken/keywords.py +0 -0
  310. {webscout-8.0 → webscout-8.2}/webstoken/language.py +0 -0
  311. {webscout-8.0 → webscout-8.2}/webstoken/ner.py +0 -0
  312. {webscout-8.0 → webscout-8.2}/webstoken/normalizer.py +0 -0
  313. {webscout-8.0 → webscout-8.2}/webstoken/processor.py +0 -0
  314. {webscout-8.0 → webscout-8.2}/webstoken/sentiment.py +0 -0
  315. {webscout-8.0 → webscout-8.2}/webstoken/stemmer.py +0 -0
  316. {webscout-8.0 → webscout-8.2}/webstoken/tagger.py +0 -0
  317. {webscout-8.0 → webscout-8.2}/webstoken/tokenizer.py +0 -0
webscout-8.2/PKG-INFO ADDED
@@ -0,0 +1,693 @@
1
+ Metadata-Version: 2.1
2
+ Name: webscout
3
+ Version: 8.2
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/OE-LUCIFER/Webscout
9
+ Project-URL: Tracker, https://github.com/OE-LUCIFER/Webscout/issues
10
+ Project-URL: YouTube, https://youtube.com/@OEvortex
11
+ Keywords: search,ai,chatbot,llm,language-model,gpt,openai,gemini,claude,llama,search-engine,text-to-speech,tts,text-to-image,tti,weather,youtube,toolkit,utilities,web-search,duckduckgo,google,yep
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: End Users/Desktop
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: License :: Other/Proprietary License
17
+ Classifier: Natural Language :: English
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Operating System :: Microsoft :: Windows
20
+ Classifier: Operating System :: POSIX :: Linux
21
+ Classifier: Operating System :: MacOS :: MacOS X
22
+ Classifier: Programming Language :: Python :: 3
23
+ Classifier: Programming Language :: Python :: 3.9
24
+ Classifier: Programming Language :: Python :: 3.10
25
+ Classifier: Programming Language :: Python :: 3.11
26
+ Classifier: Programming Language :: Python :: 3.12
27
+ Classifier: Programming Language :: Python :: 3.13
28
+ Classifier: Programming Language :: Python :: Implementation :: CPython
29
+ Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
30
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
31
+ Classifier: Topic :: Text Processing :: Linguistic
32
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
33
+ Classifier: Topic :: Communications
34
+ Classifier: Topic :: Utilities
35
+ Requires-Python: >=3.9
36
+ Description-Content-Type: text/markdown
37
+ Provides-Extra: dev
38
+ Provides-Extra: Local
39
+ License-File: LICENSE.md
40
+
41
+ <div align="center">
42
+ <a href="https://github.com/OEvortex/Webscout">
43
+ <img src="https://img.shields.io/badge/WebScout-Ultimate%20Toolkit-blue?style=for-the-badge&logo=python&logoColor=white" alt="WebScout Logo">
44
+ </a>
45
+
46
+ <h1>Webscout</h1>
47
+
48
+ <p><strong>Your All-in-One Python Toolkit for Web Search, AI Interaction, Digital Utilities, and More</strong></p>
49
+
50
+ <p>
51
+ Access diverse search engines, cutting-edge AI models, temporary communication tools, media utilities, developer helpers, and powerful CLI interfaces – all through one unified library.
52
+ </p>
53
+
54
+ <!-- Badges -->
55
+ <p>
56
+ <a href="https://pypi.org/project/webscout/"><img src="https://img.shields.io/pypi/v/webscout.svg?style=flat-square&logo=pypi&label=PyPI" alt="PyPI Version"></a>
57
+ <a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout/month?style=flat-square" alt="Monthly Downloads"></a>
58
+ <a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout?style=flat-square" alt="Total Downloads"></a>
59
+ <a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout?style=flat-square&logo=python" alt="Python Version"></a>
60
+ </p>
61
+ </div>
62
+
63
+ > [!IMPORTANT]
64
+ > Webscout supports three types of compatibility:
65
+ > - **Native Compatibility:** Webscout's own native API for maximum flexibility
66
+ > - **OpenAI Compatibility:** Use providers with OpenAI-compatible interfaces
67
+ > - **Local LLM Compatibility:** Run local models with [Inferno](webscout/Local/README.md), an OpenAI-compatible server
68
+ >
69
+ > Choose the approach that best fits your needs! For OpenAI compatibility, check the [OpenAI Providers README](webscout/Provider/OPENAI/README.md).
70
+
71
+ > [!NOTE]
72
+ > Webscout supports over 90 AI providers including: LLAMA, C4ai, Venice, Copilot, HuggingFaceChat, PerplexityLabs, DeepSeek, WiseCat, GROQ, OPENAI, GEMINI, DeepInfra, Meta, YEPCHAT, TypeGPT, ChatGPTClone, ExaAI, Claude, Anthropic, Cloudflare, AI21, Cerebras, and many more. All providers follow similar usage patterns with consistent interfaces.
73
+
74
+ <div align="center">
75
+ <!-- Social/Support Links -->
76
+ <p>
77
+ <a href="https://t.me/PyscoutAI"><img alt="Telegram Group" src="https://img.shields.io/badge/Telegram%20Group-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
78
+ <a href="https://t.me/ANONYMOUS_56788"><img alt="Developer Telegram" src="https://img.shields.io/badge/Developer%20Contact-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
79
+ <a href="https://youtube.com/@OEvortex"><img alt="YouTube" src="https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white"></a>
80
+ <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>
81
+ <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>
82
+ <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>
83
+ </p>
84
+ </div>
85
+
86
+
87
+ ## 🚀 Features
88
+
89
+ ### Search & AI
90
+ * **Comprehensive Search:** Leverage Google, DuckDuckGo, and Yep for diverse search results
91
+ * **AI Powerhouse:** Access and interact with various AI models through three compatibility options:
92
+ * **Native API:** Use Webscout's native interfaces for providers like OpenAI, Cohere, Gemini, and many more
93
+ * **[OpenAI-Compatible Providers](webscout/Provider/OPENAI/README.md):** Seamlessly integrate with various AI providers using standardized OpenAI-compatible interfaces
94
+ * **[Local LLMs with Inferno](webscout/Local/README.md):** Run local models with an OpenAI-compatible server
95
+ * **[AI Search](webscout/Provider/AISEARCH/README.md):** AI-powered search engines with advanced capabilities
96
+
97
+ ### Media & Content Tools
98
+ * **[YouTube Toolkit](webscout/Extra/YTToolkit/README.md):** Advanced YouTube video and transcript management with multi-language support
99
+ * **[Text-to-Speech (TTS)](webscout/Provider/TTS/README.md):** Convert text into natural-sounding speech using multiple AI-powered providers
100
+ * **[Text-to-Image](webscout/Provider/TTI/README.md):** Generate high-quality images using a wide range of AI art providers
101
+ * **[Weather Tools](webscout/Extra/weather.md):** Retrieve detailed weather information for any location
102
+
103
+ ### Developer Tools
104
+ * **[GitAPI](webscout/Extra/GitToolkit/gitapi):** Powerful GitHub data extraction toolkit without authentication requirements for public data
105
+ * **[SwiftCLI](webscout/swiftcli/Readme.md):** A powerful and elegant CLI framework for beautiful command-line interfaces
106
+ * **[LitPrinter](webscout/litprinter/Readme.md):** Styled console output with rich formatting and colors
107
+ * **[LitLogger](webscout/litlogger/Readme.md):** Simplified logging with customizable formats and color schemes
108
+ * **[LitAgent](webscout/litagent/Readme.md):** Modern user agent generator that keeps your requests undetectable
109
+ * **[Scout](webscout/scout/README.md):** Advanced web parsing and crawling library with intelligent HTML/XML parsing
110
+ * **[Inferno](webscout/Local/README.md):** Run local LLMs with an OpenAI-compatible API and interactive CLI
111
+ * **GGUF Conversion:** Convert and quantize Hugging Face models to GGUF format
112
+
113
+ ### Privacy & Utilities
114
+ * **[Tempmail](webscout/Extra/tempmail/README.md) & Temp Number:** Generate temporary email addresses and phone numbers
115
+ * **[Awesome Prompts](webscout/Extra/Act.md):** Curated collection of system prompts for specialized AI personas
116
+
117
+ ## ⚙️ Installation
118
+
119
+ Install Webscout using pip:
120
+
121
+ ```bash
122
+ pip install -U webscout
123
+ ```
124
+
125
+ ## 🖥️ Command Line Interface
126
+
127
+ Webscout provides a powerful command-line interface for quick access to its features:
128
+
129
+ ```bash
130
+ python -m webscout --help
131
+ ```
132
+
133
+ ### Web Search Commands
134
+
135
+ | Command | Description |
136
+ |---------|-------------|
137
+ | `python -m webscout answers -k "query"` | Perform an answers search |
138
+ | `python -m webscout chat` | Start an interactive AI chat session |
139
+ | `python -m webscout images -k "query"` | Search for images |
140
+ | `python -m webscout maps -k "query"` | Perform a maps search |
141
+ | `python -m webscout news -k "query"` | Search for news articles |
142
+ | `python -m webscout suggestions -k "query"` | Get search suggestions |
143
+ | `python -m webscout text -k "query"` | Perform a text search |
144
+ | `python -m webscout translate -k "text"` | Translate text |
145
+ | `python -m webscout version` | Display the current version |
146
+ | `python -m webscout videos -k "query"` | Search for videos |
147
+ | `python -m webscout weather -l "location"` | Get weather information |
148
+
149
+ ### Inferno LLM Commands
150
+
151
+ Inferno provides commands for managing and using local LLMs:
152
+
153
+ ```bash
154
+ python -m inferno --help
155
+ ```
156
+
157
+ | Command | Description |
158
+ |---------|-------------|
159
+ | `python -m inferno pull <model>` | Download a model from Hugging Face |
160
+ | `python -m inferno list` | List downloaded models |
161
+ | `python -m inferno serve <model>` | Start a model server with OpenAI-compatible API |
162
+ | `python -m inferno run <model>` | Chat with a model interactively |
163
+ | `python -m inferno remove <model>` | Remove a downloaded model |
164
+ | `python -m inferno version` | Show version information |
165
+
166
+ > [!NOTE]
167
+ > Hardware requirements for running models:
168
+ > - Around 2 GB of RAM for 1B models
169
+ > - Around 4 GB of RAM for 3B models
170
+ > - At least 8 GB of RAM for 7B models
171
+ > - 16 GB of RAM for 13B models
172
+ > - 32 GB of RAM for 33B models
173
+ > - GPU acceleration is recommended for better performance
174
+
175
+
176
+
177
+ ## 🔍 Search Engines
178
+
179
+ Webscout provides multiple search engine interfaces for diverse search capabilities.
180
+
181
+ ### YepSearch - Yep.com Interface
182
+
183
+ ```python
184
+ from webscout import YepSearch
185
+
186
+ # Initialize YepSearch
187
+ yep = YepSearch(
188
+ timeout=20, # Optional: Set custom timeout
189
+ proxies=None, # Optional: Use proxies
190
+ verify=True # Optional: SSL verification
191
+ )
192
+
193
+ # Text Search
194
+ text_results = yep.text(
195
+ keywords="artificial intelligence",
196
+ region="all", # Optional: Region for results
197
+ safesearch="moderate", # Optional: "on", "moderate", "off"
198
+ max_results=10 # Optional: Limit number of results
199
+ )
200
+
201
+ # Image Search
202
+ image_results = yep.images(
203
+ keywords="nature photography",
204
+ region="all",
205
+ safesearch="moderate",
206
+ max_results=10
207
+ )
208
+
209
+ # Get search suggestions
210
+ suggestions = yep.suggestions("hist")
211
+ ```
212
+
213
+ ### GoogleSearch - Google Interface
214
+
215
+ ```python
216
+ from webscout import GoogleSearch
217
+
218
+ # Initialize GoogleSearch
219
+ google = GoogleSearch(
220
+ timeout=10, # Optional: Set custom timeout
221
+ proxies=None, # Optional: Use proxies
222
+ verify=True # Optional: SSL verification
223
+ )
224
+
225
+ # Text Search
226
+ text_results = google.text(
227
+ keywords="artificial intelligence",
228
+ region="us", # Optional: Region for results
229
+ safesearch="moderate", # Optional: "on", "moderate", "off"
230
+ max_results=10 # Optional: Limit number of results
231
+ )
232
+ for result in text_results:
233
+ print(f"Title: {result.title}")
234
+ print(f"URL: {result.url}")
235
+ print(f"Description: {result.description}")
236
+
237
+ # News Search
238
+ news_results = google.news(
239
+ keywords="technology trends",
240
+ region="us",
241
+ safesearch="moderate",
242
+ max_results=5
243
+ )
244
+
245
+ # Get search suggestions
246
+ suggestions = google.suggestions("how to")
247
+
248
+ # Legacy usage is still supported
249
+ from webscout import search
250
+ results = search("Python programming", num_results=5)
251
+ ```
252
+
253
+ ## 🦆 DuckDuckGo Search with WEBS and AsyncWEBS
254
+
255
+ Webscout provides powerful interfaces to DuckDuckGo's search capabilities through the `WEBS` and `AsyncWEBS` classes.
256
+
257
+ ### Synchronous Usage with WEBS
258
+
259
+ ```python
260
+ from webscout import WEBS
261
+
262
+ # Use as a context manager for proper resource management
263
+ with WEBS() as webs:
264
+ # Simple text search
265
+ results = webs.text("python programming", max_results=5)
266
+ for result in results:
267
+ print(f"Title: {result['title']}\nURL: {result['url']}")
268
+ ```
269
+
270
+ ### Asynchronous Usage with AsyncWEBS
271
+
272
+ ```python
273
+ import asyncio
274
+ from webscout import AsyncWEBS
275
+
276
+ async def search_multiple_terms(search_terms):
277
+ async with AsyncWEBS() as webs:
278
+ # Create tasks for each search term
279
+ tasks = [webs.text(term, max_results=5) for term in search_terms]
280
+ # Run all searches concurrently
281
+ results = await asyncio.gather(*tasks)
282
+ return results
283
+
284
+ async def main():
285
+ terms = ["python", "javascript", "machine learning"]
286
+ all_results = await search_multiple_terms(terms)
287
+
288
+ # Process results
289
+ for i, term_results in enumerate(all_results):
290
+ print(f"Results for '{terms[i]}':\n")
291
+ for result in term_results:
292
+ print(f"- {result['title']}")
293
+ print("\n")
294
+
295
+ # Run the async function
296
+ asyncio.run(main())
297
+ ```
298
+
299
+ > [!NOTE]
300
+ > Always use these classes with a context manager (`with` statement) to ensure proper resource management and cleanup.
301
+
302
+ ## 💻 WEBS API Reference
303
+
304
+ The WEBS class provides comprehensive access to DuckDuckGo's search capabilities through a clean, intuitive API.
305
+
306
+ ### Available Search Methods
307
+
308
+ | Method | Description | Example |
309
+ |--------|-------------|--------|
310
+ | `text()` | General web search | `webs.text('python programming')` |
311
+ | `answers()` | Instant answers | `webs.answers('population of france')` |
312
+ | `images()` | Image search | `webs.images('nature photography')` |
313
+ | `videos()` | Video search | `webs.videos('documentary')` |
314
+ | `news()` | News articles | `webs.news('technology')` |
315
+ | `maps()` | Location search | `webs.maps('restaurants', place='new york')` |
316
+ | `translate()` | Text translation | `webs.translate('hello', to='es')` |
317
+ | `suggestions()` | Search suggestions | `webs.suggestions('how to')` |
318
+ | `weather()` | Weather information | `webs.weather('london')` |
319
+
320
+ ### Example: Text Search
321
+
322
+ ```python
323
+ from webscout import WEBS
324
+
325
+ with WEBS() as webs:
326
+ results = webs.text(
327
+ 'artificial intelligence',
328
+ region='wt-wt', # Optional: Region for results
329
+ safesearch='off', # Optional: 'on', 'moderate', 'off'
330
+ timelimit='y', # Optional: Time limit ('d'=day, 'w'=week, 'm'=month, 'y'=year)
331
+ max_results=10 # Optional: Limit number of results
332
+ )
333
+
334
+ for result in results:
335
+ print(f"Title: {result['title']}")
336
+ print(f"URL: {result['url']}")
337
+ print(f"Description: {result['body']}\n")
338
+ ```
339
+
340
+ ### Example: News Search with Formatting
341
+
342
+ ```python
343
+ from webscout import WEBS
344
+ import datetime
345
+
346
+ def fetch_formatted_news(keywords, timelimit='d', max_results=20):
347
+ """Fetch and format news articles"""
348
+ with WEBS() as webs:
349
+ # Get news results
350
+ news_results = webs.news(
351
+ keywords,
352
+ region="wt-wt",
353
+ safesearch="off",
354
+ timelimit=timelimit, # 'd'=day, 'w'=week, 'm'=month
355
+ max_results=max_results
356
+ )
357
+
358
+ # Format the results
359
+ formatted_news = []
360
+ for i, item in enumerate(news_results, 1):
361
+ # Format the date
362
+ date = datetime.datetime.fromisoformat(item['date']).strftime('%B %d, %Y')
363
+
364
+ # Create formatted entry
365
+ entry = f"{i}. {item['title']}\n"
366
+ entry += f" Published: {date}\n"
367
+ entry += f" {item['body']}\n"
368
+ entry += f" URL: {item['url']}\n"
369
+
370
+ formatted_news.append(entry)
371
+
372
+ return formatted_news
373
+
374
+ # Example usage
375
+ news = fetch_formatted_news('artificial intelligence', timelimit='w', max_results=5)
376
+ print('\n'.join(news))
377
+ ```
378
+
379
+ ### Example: Weather Information
380
+
381
+ ```python
382
+ from webscout import WEBS
383
+
384
+ with WEBS() as webs:
385
+ # Get weather for a location
386
+ weather = webs.weather("New York")
387
+
388
+ # Access weather data
389
+ if weather:
390
+ print(f"Location: {weather.get('location', 'Unknown')}")
391
+ print(f"Temperature: {weather.get('temperature', 'N/A')}")
392
+ print(f"Conditions: {weather.get('condition', 'N/A')}")
393
+ ```
394
+
395
+ ## 🤖 AI Models and Voices
396
+
397
+ Webscout provides easy access to a wide range of AI models and voice options.
398
+
399
+ ### LLM Models
400
+
401
+ Access and manage Large Language Models with Webscout's model utilities.
402
+
403
+ ```python
404
+ from webscout import model
405
+ from rich import print
406
+
407
+ # List all available LLM models
408
+ all_models = model.llm.list()
409
+ print(f"Total available models: {len(all_models)}")
410
+
411
+ # Get a summary of models by provider
412
+ summary = model.llm.summary()
413
+ print("Models by provider:")
414
+ for provider, count in summary.items():
415
+ print(f" {provider}: {count} models")
416
+
417
+ # Get models for a specific provider
418
+ provider_name = "PerplexityLabs"
419
+ available_models = model.llm.get(provider_name)
420
+ print(f"\n{provider_name} models:")
421
+ if isinstance(available_models, list):
422
+ for i, model_name in enumerate(available_models, 1):
423
+ print(f" {i}. {model_name}")
424
+ else:
425
+ print(f" {available_models}")
426
+ ```
427
+
428
+ ### TTS Voices
429
+
430
+ Access and manage Text-to-Speech voices across multiple providers.
431
+
432
+ ```python
433
+ from webscout import model
434
+ from rich import print
435
+
436
+ # List all available TTS voices
437
+ all_voices = model.tts.list()
438
+ print(f"Total available voices: {len(all_voices)}")
439
+
440
+ # Get a summary of voices by provider
441
+ summary = model.tts.summary()
442
+ print("\nVoices by provider:")
443
+ for provider, count in summary.items():
444
+ print(f" {provider}: {count} voices")
445
+
446
+ # Get voices for a specific provider
447
+ provider_name = "ElevenlabsTTS"
448
+ available_voices = model.tts.get(provider_name)
449
+ print(f"\n{provider_name} voices:")
450
+ if isinstance(available_voices, dict):
451
+ for voice_name, voice_id in list(available_voices.items())[:5]: # Show first 5 voices
452
+ print(f" - {voice_name}: {voice_id}")
453
+ if len(available_voices) > 5:
454
+ print(f" ... and {len(available_voices) - 5} more")
455
+ ```
456
+
457
+ ## 💬 AI Chat Providers
458
+
459
+ Webscout offers a comprehensive collection of AI chat providers, giving you access to various language models through a consistent interface.
460
+
461
+ ### Popular AI Providers
462
+
463
+ | Provider | Description | Key Features |
464
+ |----------|-------------|-------------|
465
+ | `OPENAI` | OpenAI's models | GPT-3.5, GPT-4, tool calling |
466
+ | `GEMINI` | Google's Gemini models | Web search capabilities |
467
+ | `Meta` | Meta's AI assistant | Image generation, web search |
468
+ | `GROQ` | Fast inference platform | High-speed inference, tool calling |
469
+ | `LLAMA` | Meta's Llama models | Open weights models |
470
+ | `DeepInfra` | Various open models | Multiple model options |
471
+ | `Cohere` | Cohere's language models | Command models |
472
+ | `PerplexityLabs` | Perplexity AI | Web search integration |
473
+ | `Anthropic` | Claude models | Long context windows |
474
+ | `YEPCHAT` | Yep.com's AI | Streaming responses |
475
+ | `ChatGPTClone` | ChatGPT-like interface | Multiple model options |
476
+ | `TypeGPT` | TypeChat models | Code generation focus |
477
+
478
+ ### Example: Using Duckchat
479
+
480
+ ```python
481
+ from webscout import WEBS
482
+
483
+ # Initialize and use Duckchat
484
+ with WEBS() as webs:
485
+ response = webs.chat(
486
+ "Explain quantum computing in simple terms",
487
+ model='gpt-4o-mini' # Options: mixtral-8x7b, llama-3.1-70b, claude-3-haiku, etc.
488
+ )
489
+ print(response)
490
+ ```
491
+
492
+ ### Example: Using Meta AI
493
+
494
+ ```python
495
+ from webscout import Meta
496
+
497
+ # For basic usage (no authentication required)
498
+ meta_ai = Meta()
499
+
500
+ # Simple text prompt
501
+ response = meta_ai.chat("What is the capital of France?")
502
+ print(response)
503
+
504
+ # For authenticated usage with web search and image generation
505
+ meta_ai = Meta(fb_email="your_email@example.com", fb_password="your_password")
506
+
507
+ # Text prompt with web search
508
+ response = meta_ai.ask("What are the latest developments in quantum computing?")
509
+ print(response["message"])
510
+ print("Sources:", response["sources"])
511
+
512
+ # Image generation
513
+ response = meta_ai.ask("Create an image of a futuristic city")
514
+ for media in response.get("media", []):
515
+ print(media["url"])
516
+ ```
517
+
518
+ ### Example: GROQ with Tool Calling
519
+
520
+ ```python
521
+ from webscout import GROQ, WEBS
522
+ import json
523
+
524
+ # Initialize GROQ client
525
+ client = GROQ(api_key="your_api_key")
526
+
527
+ # Define helper functions
528
+ def calculate(expression):
529
+ """Evaluate a mathematical expression"""
530
+ try:
531
+ result = eval(expression)
532
+ return json.dumps({"result": result})
533
+ except Exception as e:
534
+ return json.dumps({"error": str(e)})
535
+
536
+ def search(query):
537
+ """Perform a web search"""
538
+ try:
539
+ results = WEBS().text(query, max_results=3)
540
+ return json.dumps({"results": results})
541
+ except Exception as e:
542
+ return json.dumps({"error": str(e)})
543
+
544
+ # Register functions with GROQ
545
+ client.add_function("calculate", calculate)
546
+ client.add_function("search", search)
547
+
548
+ # Define tool specifications
549
+ tools = [
550
+ {
551
+ "type": "function",
552
+ "function": {
553
+ "name": "calculate",
554
+ "description": "Evaluate a mathematical expression",
555
+ "parameters": {
556
+ "type": "object",
557
+ "properties": {
558
+ "expression": {
559
+ "type": "string",
560
+ "description": "The mathematical expression to evaluate"
561
+ }
562
+ },
563
+ "required": ["expression"]
564
+ }
565
+ }
566
+ },
567
+ {
568
+ "type": "function",
569
+ "function": {
570
+ "name": "search",
571
+ "description": "Perform a web search",
572
+ "parameters": {
573
+ "type": "object",
574
+ "properties": {
575
+ "query": {
576
+ "type": "string",
577
+ "description": "The search query"
578
+ }
579
+ },
580
+ "required": ["query"]
581
+ }
582
+ }
583
+ }
584
+ ]
585
+
586
+ # Use the tools
587
+ response = client.chat("What is 25 * 4 + 10?", tools=tools)
588
+ print(response)
589
+
590
+ response = client.chat("Find information about quantum computing", tools=tools)
591
+ print(response)
592
+ ```
593
+
594
+ ## 👨‍💻 Advanced AI Interfaces
595
+
596
+ ### Direct Model Access with LLM and VLM
597
+
598
+ Webscout provides direct interfaces to language and vision-language models through the `LLM` and `VLM` classes.
599
+
600
+ ```python
601
+ from webscout.LLM import LLM, VLM
602
+
603
+ # Text-only model interaction
604
+ llm = LLM("meta-llama/Meta-Llama-3-70B-Instruct")
605
+ response = llm.chat([
606
+ {"role": "user", "content": "Explain the concept of neural networks"}
607
+ ])
608
+ print(response)
609
+
610
+ # Vision-language model interaction
611
+ vlm = VLM("cogvlm-grounding-generalist")
612
+ response = vlm.chat([
613
+ {
614
+ "role": "user",
615
+ "content": [
616
+ {"type": "image", "image_url": "path/to/image.jpg"},
617
+ {"type": "text", "text": "Describe what you see in this image"}
618
+ ]
619
+ }
620
+ ])
621
+ print(response)
622
+ ```
623
+
624
+ ### GGUF Model Conversion
625
+
626
+ Webscout provides tools to convert and quantize Hugging Face models into the GGUF format for offline use.
627
+
628
+ ```python
629
+ from webscout.Extra.gguf import ModelConverter
630
+
631
+ # Create a converter instance
632
+ converter = ModelConverter(
633
+ model_id="mistralai/Mistral-7B-Instruct-v0.2", # Hugging Face model ID
634
+ quantization_methods="q4_k_m" # Quantization method
635
+ )
636
+
637
+ # Run the conversion
638
+ converter.convert()
639
+ ```
640
+
641
+ #### Available Quantization Methods
642
+
643
+ | Method | Description |
644
+ |--------|-------------|
645
+ | `fp16` | 16-bit floating point - maximum accuracy, largest size |
646
+ | `q2_k` | 2-bit quantization (smallest size, lowest accuracy) |
647
+ | `q3_k_l` | 3-bit quantization (large) - balanced for size/accuracy |
648
+ | `q3_k_m` | 3-bit quantization (medium) - good balance for most use cases |
649
+ | `q3_k_s` | 3-bit quantization (small) - optimized for speed |
650
+ | `q4_0` | 4-bit quantization (version 0) - standard 4-bit compression |
651
+ | `q4_1` | 4-bit quantization (version 1) - improved accuracy over q4_0 |
652
+ | `q4_k_m` | 4-bit quantization (medium) - balanced for most models |
653
+ | `q4_k_s` | 4-bit quantization (small) - optimized for speed |
654
+ | `q5_0` | 5-bit quantization (version 0) - high accuracy, larger size |
655
+ | `q5_1` | 5-bit quantization (version 1) - improved accuracy over q5_0 |
656
+ | `q5_k_m` | 5-bit quantization (medium) - best balance for quality/size |
657
+ | `q5_k_s` | 5-bit quantization (small) - optimized for speed |
658
+ | `q6_k` | 6-bit quantization - highest accuracy, largest size |
659
+ | `q8_0` | 8-bit quantization - maximum accuracy, largest size |
660
+
661
+ #### Command Line Usage
662
+
663
+ ```bash
664
+ python -m webscout.Extra.gguf convert -m "mistralai/Mistral-7B-Instruct-v0.2" -q "q4_k_m"
665
+ ```
666
+
667
+ <div align="center">
668
+ <p>
669
+ <a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a> |
670
+ <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
671
+ </p>
672
+ </div>
673
+
674
+ ## 🤝 Contributing
675
+
676
+ Contributions are welcome! If you'd like to contribute to Webscout, please follow these steps:
677
+
678
+ 1. Fork the repository
679
+ 2. Create a new branch for your feature or bug fix
680
+ 3. Make your changes and commit them with descriptive messages
681
+ 4. Push your branch to your forked repository
682
+ 5. Submit a pull request to the main repository
683
+
684
+ ## 🙏 Acknowledgments
685
+
686
+ * All the amazing developers who have contributed to the project
687
+ * The open-source community for their support and inspiration
688
+
689
+ ---
690
+
691
+ <div align="center">
692
+ <p>Made with ❤️ by the Webscout team</p>
693
+ </div>