webscout 8.2.2__py3-none-any.whl → 2026.1.19__py3-none-any.whl

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