webscout 8.3.7__py3-none-any.whl → 2025.10.11__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.

Potentially problematic release.


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

Files changed (273) hide show
  1. webscout/AIauto.py +250 -250
  2. webscout/AIbase.py +379 -379
  3. webscout/AIutel.py +60 -60
  4. webscout/Bard.py +1012 -1012
  5. webscout/Bing_search.py +417 -417
  6. webscout/DWEBS.py +529 -529
  7. webscout/Extra/Act.md +309 -309
  8. webscout/Extra/GitToolkit/__init__.py +10 -10
  9. webscout/Extra/GitToolkit/gitapi/README.md +110 -110
  10. webscout/Extra/GitToolkit/gitapi/__init__.py +11 -11
  11. webscout/Extra/GitToolkit/gitapi/repository.py +195 -195
  12. webscout/Extra/GitToolkit/gitapi/user.py +96 -96
  13. webscout/Extra/GitToolkit/gitapi/utils.py +61 -61
  14. webscout/Extra/YTToolkit/README.md +375 -375
  15. webscout/Extra/YTToolkit/YTdownloader.py +956 -956
  16. webscout/Extra/YTToolkit/__init__.py +2 -2
  17. webscout/Extra/YTToolkit/transcriber.py +475 -475
  18. webscout/Extra/YTToolkit/ytapi/README.md +44 -44
  19. webscout/Extra/YTToolkit/ytapi/__init__.py +6 -6
  20. webscout/Extra/YTToolkit/ytapi/channel.py +307 -307
  21. webscout/Extra/YTToolkit/ytapi/errors.py +13 -13
  22. webscout/Extra/YTToolkit/ytapi/extras.py +118 -118
  23. webscout/Extra/YTToolkit/ytapi/https.py +88 -88
  24. webscout/Extra/YTToolkit/ytapi/patterns.py +61 -61
  25. webscout/Extra/YTToolkit/ytapi/playlist.py +58 -58
  26. webscout/Extra/YTToolkit/ytapi/pool.py +7 -7
  27. webscout/Extra/YTToolkit/ytapi/query.py +39 -39
  28. webscout/Extra/YTToolkit/ytapi/stream.py +62 -62
  29. webscout/Extra/YTToolkit/ytapi/utils.py +62 -62
  30. webscout/Extra/YTToolkit/ytapi/video.py +232 -232
  31. webscout/Extra/autocoder/__init__.py +9 -9
  32. webscout/Extra/autocoder/autocoder.py +1105 -1105
  33. webscout/Extra/autocoder/autocoder_utiles.py +332 -332
  34. webscout/Extra/gguf.md +429 -429
  35. webscout/Extra/gguf.py +1213 -1213
  36. webscout/Extra/tempmail/README.md +487 -487
  37. webscout/Extra/tempmail/__init__.py +27 -27
  38. webscout/Extra/tempmail/async_utils.py +140 -140
  39. webscout/Extra/tempmail/base.py +160 -160
  40. webscout/Extra/tempmail/cli.py +186 -186
  41. webscout/Extra/tempmail/emailnator.py +84 -84
  42. webscout/Extra/tempmail/mail_tm.py +360 -360
  43. webscout/Extra/tempmail/temp_mail_io.py +291 -291
  44. webscout/Extra/weather.md +281 -281
  45. webscout/Extra/weather.py +193 -193
  46. webscout/Litlogger/README.md +10 -10
  47. webscout/Litlogger/__init__.py +15 -15
  48. webscout/Litlogger/formats.py +13 -13
  49. webscout/Litlogger/handlers.py +121 -121
  50. webscout/Litlogger/levels.py +13 -13
  51. webscout/Litlogger/logger.py +134 -134
  52. webscout/Provider/AISEARCH/Perplexity.py +332 -332
  53. webscout/Provider/AISEARCH/README.md +279 -279
  54. webscout/Provider/AISEARCH/__init__.py +16 -1
  55. webscout/Provider/AISEARCH/felo_search.py +206 -206
  56. webscout/Provider/AISEARCH/genspark_search.py +323 -323
  57. webscout/Provider/AISEARCH/hika_search.py +185 -185
  58. webscout/Provider/AISEARCH/iask_search.py +410 -410
  59. webscout/Provider/AISEARCH/monica_search.py +219 -219
  60. webscout/Provider/AISEARCH/scira_search.py +316 -316
  61. webscout/Provider/AISEARCH/stellar_search.py +177 -177
  62. webscout/Provider/AISEARCH/webpilotai_search.py +255 -255
  63. webscout/Provider/Aitopia.py +314 -314
  64. webscout/Provider/Apriel.py +306 -0
  65. webscout/Provider/ChatGPTClone.py +236 -236
  66. webscout/Provider/ChatSandbox.py +343 -343
  67. webscout/Provider/Cloudflare.py +324 -324
  68. webscout/Provider/Cohere.py +208 -208
  69. webscout/Provider/Deepinfra.py +370 -366
  70. webscout/Provider/ExaAI.py +260 -260
  71. webscout/Provider/ExaChat.py +308 -308
  72. webscout/Provider/Flowith.py +221 -221
  73. webscout/Provider/GMI.py +293 -0
  74. webscout/Provider/Gemini.py +164 -164
  75. webscout/Provider/GeminiProxy.py +167 -167
  76. webscout/Provider/GithubChat.py +371 -372
  77. webscout/Provider/Groq.py +800 -800
  78. webscout/Provider/HeckAI.py +383 -383
  79. webscout/Provider/Jadve.py +282 -282
  80. webscout/Provider/K2Think.py +307 -307
  81. webscout/Provider/Koboldai.py +205 -205
  82. webscout/Provider/LambdaChat.py +423 -423
  83. webscout/Provider/Nemotron.py +244 -244
  84. webscout/Provider/Netwrck.py +248 -248
  85. webscout/Provider/OLLAMA.py +395 -395
  86. webscout/Provider/OPENAI/Cloudflare.py +393 -393
  87. webscout/Provider/OPENAI/FalconH1.py +451 -451
  88. webscout/Provider/OPENAI/FreeGemini.py +296 -296
  89. webscout/Provider/OPENAI/K2Think.py +431 -431
  90. webscout/Provider/OPENAI/NEMOTRON.py +240 -240
  91. webscout/Provider/OPENAI/PI.py +427 -427
  92. webscout/Provider/OPENAI/README.md +959 -959
  93. webscout/Provider/OPENAI/TogetherAI.py +345 -345
  94. webscout/Provider/OPENAI/TwoAI.py +465 -465
  95. webscout/Provider/OPENAI/__init__.py +33 -18
  96. webscout/Provider/OPENAI/base.py +248 -248
  97. webscout/Provider/OPENAI/chatglm.py +528 -0
  98. webscout/Provider/OPENAI/chatgpt.py +592 -592
  99. webscout/Provider/OPENAI/chatgptclone.py +521 -521
  100. webscout/Provider/OPENAI/chatsandbox.py +202 -202
  101. webscout/Provider/OPENAI/deepinfra.py +318 -314
  102. webscout/Provider/OPENAI/e2b.py +1665 -1665
  103. webscout/Provider/OPENAI/exaai.py +420 -420
  104. webscout/Provider/OPENAI/exachat.py +452 -452
  105. webscout/Provider/OPENAI/friendli.py +232 -232
  106. webscout/Provider/OPENAI/{refact.py → gmi.py} +324 -274
  107. webscout/Provider/OPENAI/groq.py +364 -364
  108. webscout/Provider/OPENAI/heckai.py +314 -314
  109. webscout/Provider/OPENAI/llmchatco.py +337 -337
  110. webscout/Provider/OPENAI/netwrck.py +355 -355
  111. webscout/Provider/OPENAI/oivscode.py +290 -290
  112. webscout/Provider/OPENAI/opkfc.py +518 -518
  113. webscout/Provider/OPENAI/pydantic_imports.py +1 -1
  114. webscout/Provider/OPENAI/scirachat.py +535 -535
  115. webscout/Provider/OPENAI/sonus.py +308 -308
  116. webscout/Provider/OPENAI/standardinput.py +442 -442
  117. webscout/Provider/OPENAI/textpollinations.py +340 -340
  118. webscout/Provider/OPENAI/toolbaz.py +419 -416
  119. webscout/Provider/OPENAI/typefully.py +362 -362
  120. webscout/Provider/OPENAI/utils.py +295 -295
  121. webscout/Provider/OPENAI/venice.py +436 -436
  122. webscout/Provider/OPENAI/wisecat.py +387 -387
  123. webscout/Provider/OPENAI/writecream.py +166 -166
  124. webscout/Provider/OPENAI/x0gpt.py +378 -378
  125. webscout/Provider/OPENAI/yep.py +389 -389
  126. webscout/Provider/OpenGPT.py +230 -230
  127. webscout/Provider/Openai.py +243 -243
  128. webscout/Provider/PI.py +405 -405
  129. webscout/Provider/Perplexitylabs.py +430 -430
  130. webscout/Provider/QwenLM.py +272 -272
  131. webscout/Provider/STT/__init__.py +16 -1
  132. webscout/Provider/Sambanova.py +257 -257
  133. webscout/Provider/StandardInput.py +309 -309
  134. webscout/Provider/TTI/README.md +82 -82
  135. webscout/Provider/TTI/__init__.py +33 -18
  136. webscout/Provider/TTI/aiarta.py +413 -413
  137. webscout/Provider/TTI/base.py +136 -136
  138. webscout/Provider/TTI/bing.py +243 -243
  139. webscout/Provider/TTI/gpt1image.py +149 -149
  140. webscout/Provider/TTI/imagen.py +196 -196
  141. webscout/Provider/TTI/infip.py +211 -211
  142. webscout/Provider/TTI/magicstudio.py +232 -232
  143. webscout/Provider/TTI/monochat.py +219 -219
  144. webscout/Provider/TTI/piclumen.py +214 -214
  145. webscout/Provider/TTI/pixelmuse.py +232 -232
  146. webscout/Provider/TTI/pollinations.py +232 -232
  147. webscout/Provider/TTI/together.py +288 -288
  148. webscout/Provider/TTI/utils.py +12 -12
  149. webscout/Provider/TTI/venice.py +367 -367
  150. webscout/Provider/TTS/README.md +192 -192
  151. webscout/Provider/TTS/__init__.py +33 -18
  152. webscout/Provider/TTS/parler.py +110 -110
  153. webscout/Provider/TTS/streamElements.py +333 -333
  154. webscout/Provider/TTS/utils.py +280 -280
  155. webscout/Provider/TeachAnything.py +237 -237
  156. webscout/Provider/TextPollinationsAI.py +310 -310
  157. webscout/Provider/TogetherAI.py +356 -356
  158. webscout/Provider/TwoAI.py +312 -312
  159. webscout/Provider/TypliAI.py +311 -311
  160. webscout/Provider/UNFINISHED/ChatHub.py +208 -208
  161. webscout/Provider/UNFINISHED/ChutesAI.py +313 -313
  162. webscout/Provider/UNFINISHED/GizAI.py +294 -294
  163. webscout/Provider/UNFINISHED/Marcus.py +198 -198
  164. webscout/Provider/UNFINISHED/Qodo.py +477 -477
  165. webscout/Provider/UNFINISHED/VercelAIGateway.py +338 -338
  166. webscout/Provider/UNFINISHED/XenAI.py +324 -324
  167. webscout/Provider/UNFINISHED/Youchat.py +330 -330
  168. webscout/Provider/UNFINISHED/liner.py +334 -0
  169. webscout/Provider/UNFINISHED/liner_api_request.py +262 -262
  170. webscout/Provider/UNFINISHED/puterjs.py +634 -634
  171. webscout/Provider/UNFINISHED/samurai.py +223 -223
  172. webscout/Provider/UNFINISHED/test_lmarena.py +119 -119
  173. webscout/Provider/Venice.py +250 -250
  174. webscout/Provider/VercelAI.py +256 -256
  175. webscout/Provider/WiseCat.py +231 -231
  176. webscout/Provider/WrDoChat.py +366 -366
  177. webscout/Provider/__init__.py +33 -18
  178. webscout/Provider/ai4chat.py +174 -174
  179. webscout/Provider/akashgpt.py +331 -331
  180. webscout/Provider/cerebras.py +446 -446
  181. webscout/Provider/chatglm.py +394 -301
  182. webscout/Provider/cleeai.py +211 -211
  183. webscout/Provider/elmo.py +282 -282
  184. webscout/Provider/geminiapi.py +208 -208
  185. webscout/Provider/granite.py +261 -261
  186. webscout/Provider/hermes.py +263 -263
  187. webscout/Provider/julius.py +223 -223
  188. webscout/Provider/learnfastai.py +309 -309
  189. webscout/Provider/llama3mitril.py +214 -214
  190. webscout/Provider/llmchat.py +243 -243
  191. webscout/Provider/llmchatco.py +290 -290
  192. webscout/Provider/meta.py +801 -801
  193. webscout/Provider/oivscode.py +309 -309
  194. webscout/Provider/scira_chat.py +383 -383
  195. webscout/Provider/searchchat.py +292 -292
  196. webscout/Provider/sonus.py +258 -258
  197. webscout/Provider/toolbaz.py +370 -367
  198. webscout/Provider/turboseek.py +273 -273
  199. webscout/Provider/typefully.py +207 -207
  200. webscout/Provider/yep.py +372 -372
  201. webscout/__init__.py +30 -31
  202. webscout/__main__.py +5 -5
  203. webscout/auth/api_key_manager.py +189 -189
  204. webscout/auth/config.py +175 -175
  205. webscout/auth/models.py +185 -185
  206. webscout/auth/routes.py +664 -664
  207. webscout/auth/simple_logger.py +236 -236
  208. webscout/cli.py +523 -523
  209. webscout/conversation.py +438 -438
  210. webscout/exceptions.py +361 -361
  211. webscout/litagent/Readme.md +298 -298
  212. webscout/litagent/__init__.py +28 -28
  213. webscout/litagent/agent.py +581 -581
  214. webscout/litagent/constants.py +59 -59
  215. webscout/litprinter/__init__.py +58 -58
  216. webscout/models.py +181 -181
  217. webscout/optimizers.py +419 -419
  218. webscout/prompt_manager.py +288 -288
  219. webscout/sanitize.py +1078 -1078
  220. webscout/scout/README.md +401 -401
  221. webscout/scout/__init__.py +8 -8
  222. webscout/scout/core/__init__.py +6 -6
  223. webscout/scout/core/crawler.py +297 -297
  224. webscout/scout/core/scout.py +706 -706
  225. webscout/scout/core/search_result.py +95 -95
  226. webscout/scout/core/text_analyzer.py +62 -62
  227. webscout/scout/core/text_utils.py +277 -277
  228. webscout/scout/core/web_analyzer.py +51 -51
  229. webscout/scout/element.py +599 -599
  230. webscout/scout/parsers/__init__.py +69 -69
  231. webscout/scout/parsers/html5lib_parser.py +172 -172
  232. webscout/scout/parsers/html_parser.py +236 -236
  233. webscout/scout/parsers/lxml_parser.py +178 -178
  234. webscout/scout/utils.py +37 -37
  235. webscout/swiftcli/Readme.md +323 -323
  236. webscout/swiftcli/__init__.py +95 -95
  237. webscout/swiftcli/core/__init__.py +7 -7
  238. webscout/swiftcli/core/cli.py +308 -308
  239. webscout/swiftcli/core/context.py +104 -104
  240. webscout/swiftcli/core/group.py +241 -241
  241. webscout/swiftcli/decorators/__init__.py +28 -28
  242. webscout/swiftcli/decorators/command.py +221 -221
  243. webscout/swiftcli/decorators/options.py +220 -220
  244. webscout/swiftcli/decorators/output.py +302 -302
  245. webscout/swiftcli/exceptions.py +21 -21
  246. webscout/swiftcli/plugins/__init__.py +9 -9
  247. webscout/swiftcli/plugins/base.py +135 -135
  248. webscout/swiftcli/plugins/manager.py +269 -269
  249. webscout/swiftcli/utils/__init__.py +59 -59
  250. webscout/swiftcli/utils/formatting.py +252 -252
  251. webscout/swiftcli/utils/parsing.py +267 -267
  252. webscout/update_checker.py +117 -117
  253. webscout/version.py +1 -1
  254. webscout/webscout_search.py +1183 -1183
  255. webscout/webscout_search_async.py +649 -649
  256. webscout/yep_search.py +346 -346
  257. webscout/zeroart/README.md +89 -89
  258. webscout/zeroart/__init__.py +134 -134
  259. webscout/zeroart/base.py +66 -66
  260. webscout/zeroart/effects.py +100 -100
  261. webscout/zeroart/fonts.py +1238 -1238
  262. {webscout-8.3.7.dist-info → webscout-2025.10.11.dist-info}/METADATA +937 -937
  263. webscout-2025.10.11.dist-info/RECORD +300 -0
  264. webscout/Provider/AISEARCH/DeepFind.py +0 -254
  265. webscout/Provider/OPENAI/Qwen3.py +0 -303
  266. webscout/Provider/OPENAI/qodo.py +0 -630
  267. webscout/Provider/OPENAI/xenai.py +0 -514
  268. webscout/tempid.py +0 -134
  269. webscout-8.3.7.dist-info/RECORD +0 -301
  270. {webscout-8.3.7.dist-info → webscout-2025.10.11.dist-info}/WHEEL +0 -0
  271. {webscout-8.3.7.dist-info → webscout-2025.10.11.dist-info}/entry_points.txt +0 -0
  272. {webscout-8.3.7.dist-info → webscout-2025.10.11.dist-info}/licenses/LICENSE.md +0 -0
  273. {webscout-8.3.7.dist-info → webscout-2025.10.11.dist-info}/top_level.txt +0 -0
@@ -1,937 +1,937 @@
1
- Metadata-Version: 2.4
2
- Name: webscout
3
- Version: 8.3.7
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-email: OEvortex <helpingai5@gmail.com>
6
- License: HelpingAI
7
- Project-URL: Source, https://github.com/OE-LUCIFER/Webscout
8
- Project-URL: Tracker, https://github.com/OE-LUCIFER/Webscout/issues
9
- Project-URL: YouTube, https://youtube.com/@OEvortex
10
- 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
11
- Classifier: Development Status :: 5 - Production/Stable
12
- Classifier: Intended Audience :: Developers
13
- Classifier: Intended Audience :: End Users/Desktop
14
- Classifier: Intended Audience :: Science/Research
15
- Classifier: License :: Other/Proprietary License
16
- Classifier: Natural Language :: English
17
- Classifier: Operating System :: OS Independent
18
- Classifier: Operating System :: Microsoft :: Windows
19
- Classifier: Operating System :: POSIX :: Linux
20
- Classifier: Operating System :: MacOS :: MacOS X
21
- Classifier: Programming Language :: Python :: 3
22
- Classifier: Programming Language :: Python :: 3.9
23
- Classifier: Programming Language :: Python :: 3.10
24
- Classifier: Programming Language :: Python :: 3.11
25
- Classifier: Programming Language :: Python :: 3.12
26
- Classifier: Programming Language :: Python :: 3.13
27
- Classifier: Programming Language :: Python :: Implementation :: CPython
28
- Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
29
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
- Classifier: Topic :: Text Processing :: Linguistic
31
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
32
- Classifier: Topic :: Communications
33
- Classifier: Topic :: Utilities
34
- Requires-Python: >=3.9
35
- Description-Content-Type: text/markdown
36
- License-File: LICENSE.md
37
- Requires-Dist: setuptools
38
- Requires-Dist: wheel
39
- Requires-Dist: pip
40
- Requires-Dist: nodriver
41
- Requires-Dist: mistune
42
- Requires-Dist: curl_cffi
43
- Requires-Dist: nest-asyncio
44
- Requires-Dist: colorama
45
- Requires-Dist: rich
46
- Requires-Dist: markdownify
47
- Requires-Dist: requests
48
- Requires-Dist: google-generativeai
49
- Requires-Dist: lxml>=5.2.2
50
- Requires-Dist: orjson
51
- Requires-Dist: PyYAML
52
- Requires-Dist: pillow
53
- Requires-Dist: bson
54
- Requires-Dist: cloudscraper
55
- Requires-Dist: html5lib
56
- Requires-Dist: aiofiles
57
- Requires-Dist: openai
58
- Requires-Dist: gradio_client
59
- Requires-Dist: psutil
60
- Requires-Dist: aiohttp
61
- Requires-Dist: zstandard
62
- Requires-Dist: brotli
63
- Requires-Dist: litproxy
64
- Provides-Extra: dev
65
- Requires-Dist: ruff>=0.1.6; extra == "dev"
66
- Requires-Dist: pytest>=7.4.2; extra == "dev"
67
- Provides-Extra: api
68
- Requires-Dist: fastapi; extra == "api"
69
- Requires-Dist: uvicorn[standard]; extra == "api"
70
- Requires-Dist: pydantic; extra == "api"
71
- Requires-Dist: python-multipart; extra == "api"
72
- Requires-Dist: tiktoken; extra == "api"
73
- Requires-Dist: motor; extra == "api"
74
- Requires-Dist: jinja2; extra == "api"
75
- Requires-Dist: supabase; extra == "api"
76
- Requires-Dist: websockets>=11.0; extra == "api"
77
- Requires-Dist: starlette; extra == "api"
78
- Dynamic: license-file
79
-
80
- <div align="center">
81
- <a href="https://github.com/OEvortex/Webscout">
82
- <img src="https://img.shields.io/badge/WebScout-Ultimate%20Toolkit-blue?style=for-the-badge&logo=python&logoColor=white" alt="WebScout Logo">
83
- </a>
84
-
85
- <h1>Webscout</h1>
86
-
87
- <p><strong>Your All-in-One Python Toolkit for Web Search, AI Interaction, Digital Utilities, and More</strong></p>
88
-
89
- <p>
90
- Access diverse search engines, cutting-edge AI models, temporary communication tools, media utilities, developer helpers, and powerful CLI interfaces – all through one unified library.
91
- </p>
92
-
93
- <!-- Badges -->
94
- <p>
95
- <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>
96
- <a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout/month?style=flat-square" alt="Monthly Downloads"></a>
97
- <a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout?style=flat-square" alt="Total Downloads"></a>
98
- <a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout?style=flat-square&logo=python" alt="Python Version"></a>
99
- <a href="https://deepwiki.com/OEvortex/Webscout"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
100
- </p>
101
- </div>
102
-
103
- <hr/>
104
-
105
- ## 📋 Table of Contents
106
-
107
- - [🌟 Key Features](#-features)
108
- - [⚙️ Installation](#️-installation)
109
- - [🖥️ Command Line Interface](#️-command-line-interface)
110
- - [🔄 OpenAI-Compatible API Server](docs/openai-api-server.md)
111
- - [🔍 Search Engines](#-search-engines)
112
- - [🦆 DuckDuckGo Search](#-duckduckgo-search-with-webs-and-asyncwebs)
113
- - [💻 WEBS API Reference](#-webs-api-reference)
114
- - [🤖 AI Models and Voices](#-ai-models-and-voices)
115
- - [💬 AI Chat Providers](#-ai-chat-providers)
116
- - [👨‍💻 Advanced AI Interfaces](#-advanced-ai-interfaces)
117
- - [🤝 Contributing](#-contributing)
118
- - [🙏 Acknowledgments](#-acknowledgments)
119
-
120
- <hr/>
121
-
122
- > [!IMPORTANT]
123
- > **Webscout supports three types of compatibility:**
124
- >
125
- > - **Native Compatibility:** Webscout's own native API for maximum flexibility
126
- > - **OpenAI Compatibility:** Use providers with OpenAI-compatible interfaces
127
- > - **Local LLM Compatibility:** Run local models with [Inferno](https://github.com/HelpingAI/inferno), an OpenAI-compatible server (now a standalone package)
128
- >
129
- > Choose the approach that best fits your needs! For OpenAI compatibility, check the [OpenAI Providers README](webscout/Provider/OPENAI/README.md) or see the [OpenAI-Compatible API Server](#-openai-compatible-api-server) section below.
130
-
131
- > [!NOTE]
132
- > 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.
133
-
134
- <div align="center">
135
- <!-- Social/Support Links -->
136
- <p>
137
- <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>
138
- <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>
139
- <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>
140
- <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>
141
- <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>
142
- <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>
143
- </p>
144
- </div>
145
-
146
- <hr/>
147
-
148
- ## 🚀 Features
149
-
150
- <details open>
151
- <summary><b>Search & AI</b></summary>
152
- <p>
153
-
154
- - **Comprehensive Search:** Leverage Google, DuckDuckGo, and Yep for diverse search results
155
- - **AI Powerhouse:** Access and interact with various AI models through three compatibility options:
156
- - **Native API:** Use Webscout's native interfaces for providers like OpenAI, Cohere, Gemini, and many more
157
- - **[OpenAI-Compatible Providers](webscout/Provider/OPENAI/README.md):** Seamlessly integrate with various AI providers using standardized OpenAI-compatible interfaces
158
- - **[Local LLMs with Inferno](https://github.com/HelpingAI/inferno):** Run local models with an OpenAI-compatible server (now available as a standalone package)
159
- - **[AI Search](webscout/Provider/AISEARCH/README.md):** AI-powered search engines with advanced capabilities
160
- </p>
161
- </details>
162
-
163
- <details open>
164
- <summary><b>Media & Content Tools</b></summary>
165
- <p>
166
-
167
- - **[YouTube Toolkit](webscout/Extra/YTToolkit/README.md):** Advanced YouTube video and transcript management with multi-language support
168
- - **[Text-to-Speech (TTS)](webscout/Provider/TTS/README.md):** Convert text into natural-sounding speech using multiple AI-powered providers
169
- - **[Text-to-Image](webscout/Provider/TTI/README.md):** Generate high-quality images using a wide range of AI art providers
170
- - **[Weather Tools](webscout/Extra/weather.md):** Retrieve detailed weather information for any location
171
- </p>
172
- </details>
173
-
174
- <details open>
175
- <summary><b>Developer Tools</b></summary>
176
- <p>
177
-
178
- - **[GitAPI](webscout/Extra/GitToolkit/gitapi):** Powerful GitHub data extraction toolkit without authentication requirements for public data
179
- - **[SwiftCLI](webscout/swiftcli/Readme.md):** A powerful and elegant CLI framework for beautiful command-line interfaces
180
- - **[LitPrinter](webscout/litprinter/Readme.md):** Styled console output with rich formatting and colors
181
- - **[LitLogger](webscout/litlogger/README.md):** Simplified logging with customizable formats and color schemes
182
- - **[LitAgent](webscout/litagent/Readme.md):** Modern user agent generator that keeps your requests undetectable
183
- - **[Scout](webscout/scout/README.md):** Advanced web parsing and crawling library with intelligent HTML/XML parsing
184
- - **[Inferno](https://github.com/HelpingAI/inferno):** Run local LLMs with an OpenAI-compatible API and interactive CLI (now a standalone package: `pip install inferno-llm`)
185
- - **[GGUF Conversion](webscout/Extra/gguf.md):** Convert and quantize Hugging Face models to GGUF format
186
- - **[Utility Decorators](docs/decorators.md):** Easily measure function execution time (`timeIt`) and add retry logic (`retry`) to any function
187
- - **[Stream Sanitization Utilities](docs/sanitize.md):** Advanced tools for cleaning, decoding, and processing data streams
188
- </p>
189
- </details>
190
-
191
- <details open>
192
- <summary><b>Privacy & Utilities</b></summary>
193
- <p>
194
-
195
- - **[Tempmail](webscout/Extra/tempmail/README.md) & Temp Number:** Generate temporary email addresses and phone numbers
196
- - **[Awesome Prompts](webscout/Extra/Act.md):** Curated collection of system prompts for specialized AI personas
197
- </p>
198
- </details>
199
-
200
- <hr/>
201
-
202
- ## ⚙️ Installation
203
-
204
- Webscout supports multiple installation methods to fit your workflow:
205
-
206
- ### 📦 Standard Installation
207
-
208
- ```bash
209
- # Install from PyPI
210
- pip install -U webscout
211
-
212
- # Install with API server dependencies
213
- pip install -U "webscout[api]"
214
-
215
- # Install with development dependencies
216
- pip install -U "webscout[dev]"
217
- ```
218
-
219
- ### ⚡ UV Package Manager (Recommended)
220
-
221
- [UV](https://github.com/astral-sh/uv) is a fast Python package manager. Webscout has full UV support:
222
-
223
- ```bash
224
- # Install UV first (if not already installed)
225
- pip install uv
226
-
227
- # Install Webscout with UV
228
- uv add webscout
229
-
230
- # Install with API dependencies
231
- uv add "webscout[api]"
232
-
233
- # Run Webscout directly with UV (no installation needed)
234
- uv run webscout --help
235
-
236
- # Run with API dependencies
237
- uv run webscout --extra api webscout-server
238
-
239
- # Install as a UV tool for global access
240
- uv tool install webscout
241
-
242
- # Use UV tool commands
243
- webscout --help
244
- webscout-server
245
- ```
246
-
247
- ### 🔧 Development Installation
248
-
249
- ```bash
250
- # Clone the repository
251
- git clone https://github.com/OEvortex/Webscout.git
252
- cd Webscout
253
-
254
- # Install in development mode with UV
255
- uv sync --extra dev --extra api
256
-
257
- # Or with pip
258
- pip install -e ".[dev,api]"
259
-
260
- # Or with uv pip
261
- uv pip install -e ".[dev,api]"
262
- ```
263
-
264
- ### 🐳 Docker Installation
265
-
266
- ```bash
267
- # Pull and run the Docker image
268
- docker pull oevortex/webscout:latest
269
- docker run -it oevortex/webscout:latest
270
- ```
271
-
272
- ### 📱 Quick Start Commands
273
-
274
- After installation, you can immediately start using Webscout:
275
-
276
- ```bash
277
- # Check version
278
- webscout version
279
-
280
- # Search the web
281
- webscout text -k "python programming"
282
-
283
- # Start API server
284
- webscout-server
285
-
286
- # Get help
287
- webscout --help
288
- ```
289
-
290
- <hr/>
291
-
292
- ## 🖥️ Command Line Interface
293
-
294
- Webscout provides a powerful command-line interface for quick access to its features. You can use it in multiple ways:
295
-
296
- ### 🚀 Direct Commands (Recommended)
297
-
298
- After installing with `uv tool install webscout` or `pip install webscout`:
299
-
300
- ```bash
301
- # Get help
302
- webscout --help
303
-
304
- # Start API server
305
- webscout-server
306
- ```
307
-
308
- ### 🔧 UV Run Commands (No Installation Required)
309
-
310
- ```bash
311
- # Run directly with UV (downloads and runs automatically)
312
- uv run webscout --help
313
- uv run --extra api webscout-server
314
- ```
315
-
316
- ### 📦 Python Module Commands
317
-
318
- ```bash
319
- # Traditional Python module execution
320
- python -m webscout --help
321
- python -m webscout-server
322
- ```
323
-
324
- <details open>
325
- <summary><b>🔍 Web Search Commands</b></summary>
326
- <p>
327
-
328
- | Command | Description | Example |
329
- | --------------------------------- | --------------------------- | ----------------------------------------- |
330
- | `webscout text -k "query"` | Perform a text search | `webscout text -k "python programming"` |
331
- | `webscout answers -k "query"` | Get instant answers | `webscout answers -k "what is AI"` |
332
- | `webscout images -k "query"` | Search for images | `webscout images -k "nature photography"` |
333
- | `webscout videos -k "query"` | Search for videos | `webscout videos -k "python tutorials"` |
334
- | `webscout news -k "query"` | Search for news articles | `webscout news -k "technology trends"` |
335
- | `webscout maps -k "query"` | Perform a maps search | `webscout maps -k "restaurants near me"` |
336
- | `webscout translate -k "text"` | Translate text | `webscout translate -k "hello world"` |
337
- | `webscout suggestions -k "query"` | Get search suggestions | `webscout suggestions -k "how to"` |
338
- | `webscout weather -l "location"` | Get weather information | `webscout weather -l "New York"` |
339
- | `webscout version` | Display the current version | `webscout version` |
340
-
341
- **Google Search Commands:**
342
- | Command | Description | Example |
343
- |---------|-------------|---------|
344
- | `webscout google_text -k "query"` | Google text search | `webscout google_text -k "machine learning"` |
345
- | `webscout google_news -k "query"` | Google news search | `webscout google_news -k "AI breakthrough"` |
346
- | `webscout google_suggestions -q "query"` | Google suggestions | `webscout google_suggestions -q "python"` |
347
-
348
- **Yep Search Commands:**
349
- | Command | Description | Example |
350
- |---------|-------------|---------|
351
- | `webscout yep_text -k "query"` | Yep text search | `webscout yep_text -k "web development"` |
352
- | `webscout yep_images -k "query"` | Yep image search | `webscout yep_images -k "landscapes"` |
353
- | `webscout yep_suggestions -q "query"` | Yep suggestions | `webscout yep_suggestions -q "javascript"` |
354
-
355
- </p>
356
- </details>
357
-
358
- <details open>
359
- <summary><b>Inferno LLM Commands</b></summary>
360
- <p>
361
-
362
- Inferno is now a standalone package. Install it separately with:
363
-
364
- ```bash
365
- pip install inferno-llm
366
- ```
367
-
368
- After installation, you can use its CLI for managing and using local LLMs:
369
-
370
- ```bash
371
- inferno --help
372
- ```
373
-
374
- | Command | Description |
375
- | ------------------------ | ----------------------------------------------- |
376
- | `inferno pull <model>` | Download a model from Hugging Face |
377
- | `inferno list` | List downloaded models |
378
- | `inferno serve <model>` | Start a model server with OpenAI-compatible API |
379
- | `inferno run <model>` | Chat with a model interactively |
380
- | `inferno remove <model>` | Remove a downloaded model |
381
- | `inferno version` | Show version information |
382
-
383
- For more information, visit the [Inferno GitHub repository](https://github.com/HelpingAI/inferno) or [PyPI package page](https://pypi.org/project/inferno-llm/).
384
-
385
- </p>
386
- </details>
387
-
388
- > [!NOTE]
389
- > **Hardware requirements for running models with Inferno:**
390
- >
391
- > - Around 2 GB of RAM for 1B models
392
- > - Around 4 GB of RAM for 3B models
393
- > - At least 8 GB of RAM for 7B models
394
- > - 16 GB of RAM for 13B models
395
- > - 32 GB of RAM for 33B models
396
- > - GPU acceleration is recommended for better performance
397
-
398
- For detailed information about the OpenAI-compatible API server, including setup, configuration, and usage examples, see the [OpenAI API Server Documentation](docs/openai-api-server.md).
399
-
400
- <hr/>
401
-
402
- ## 🔍 Search Engines
403
-
404
- Webscout provides multiple search engine interfaces for diverse search capabilities.
405
-
406
- ### YepSearch - Yep.com Interface
407
-
408
- ```python
409
- from webscout import YepSearch
410
-
411
- # Initialize YepSearch
412
- yep = YepSearch(
413
- timeout=20, # Optional: Set custom timeout
414
- proxies=None, # Optional: Use proxies
415
- verify=True # Optional: SSL verification
416
- )
417
-
418
- # Text Search
419
- text_results = yep.text(
420
- keywords="artificial intelligence",
421
- region="all", # Optional: Region for results
422
- safesearch="moderate", # Optional: "on", "moderate", "off"
423
- max_results=10 # Optional: Limit number of results
424
- )
425
-
426
- # Image Search
427
- image_results = yep.images(
428
- keywords="nature photography",
429
- region="all",
430
- safesearch="moderate",
431
- max_results=10
432
- )
433
-
434
- # Get search suggestions
435
- suggestions = yep.suggestions("hist")
436
- ```
437
-
438
- ### GoogleSearch - Google Interface
439
-
440
- ```python
441
- from webscout import GoogleSearch
442
-
443
- # Initialize GoogleSearch
444
- google = GoogleSearch(
445
- timeout=10, # Optional: Set custom timeout
446
- proxies=None, # Optional: Use proxies
447
- verify=True # Optional: SSL verification
448
- )
449
-
450
- # Text Search
451
- text_results = google.text(
452
- keywords="artificial intelligence",
453
- region="us", # Optional: Region for results
454
- safesearch="moderate", # Optional: "on", "moderate", "off"
455
- max_results=10 # Optional: Limit number of results
456
- )
457
- for result in text_results:
458
- print(f"Title: {result.title}")
459
- print(f"URL: {result.url}")
460
- print(f"Description: {result.description}")
461
-
462
- # News Search
463
- news_results = google.news(
464
- keywords="technology trends",
465
- region="us",
466
- safesearch="moderate",
467
- max_results=5
468
- )
469
-
470
- # Get search suggestions
471
- suggestions = google.suggestions("how to")
472
-
473
- # Legacy usage is still supported
474
- from webscout import search
475
- results = search("Python programming", num_results=5)
476
- ```
477
-
478
- <hr/>
479
-
480
- ## 🦆 DuckDuckGo Search with WEBS and AsyncWEBS
481
-
482
- Webscout provides powerful interfaces to DuckDuckGo's search capabilities through the `WEBS` and `AsyncWEBS` classes.
483
-
484
- <details open>
485
- <summary><b>Synchronous Usage with WEBS</b></summary>
486
- <p>
487
-
488
- ```python
489
- from webscout import WEBS
490
-
491
- # Use as a context manager for proper resource management
492
- with WEBS() as webs:
493
- # Simple text search
494
- results = webs.text("python programming", max_results=5)
495
- for result in results:
496
- print(f"Title: {result['title']}\nURL: {result['url']}")
497
- ```
498
-
499
- </p>
500
- </details>
501
-
502
- <details open>
503
- <summary><b>Asynchronous Usage with AsyncWEBS</b></summary>
504
- <p>
505
-
506
- ```python
507
- import asyncio
508
- from webscout import AsyncWEBS
509
-
510
- async def search_multiple_terms(search_terms):
511
- async with AsyncWEBS() as webs:
512
- # Create tasks for each search term
513
- tasks = [webs.text(term, max_results=5) for term in search_terms]
514
- # Run all searches concurrently
515
- results = await asyncio.gather(*tasks)
516
- return results
517
-
518
- async def main():
519
- terms = ["python", "javascript", "machine learning"]
520
- all_results = await search_multiple_terms(terms)
521
-
522
- # Process results
523
- for i, term_results in enumerate(all_results):
524
- print(f"Results for '{terms[i]}':\n")
525
- for result in term_results:
526
- print(f"- {result['title']}")
527
- print("\n")
528
-
529
- # Run the async function
530
- asyncio.run(main())
531
- ```
532
-
533
- </p>
534
- </details>
535
-
536
- > [!TIP]
537
- > Always use these classes with a context manager (`with` statement) to ensure proper resource management and cleanup.
538
-
539
- <hr/>
540
-
541
- ## 💻 WEBS API Reference
542
-
543
- The WEBS class provides comprehensive access to DuckDuckGo's search capabilities through a clean, intuitive API.
544
-
545
- ### Available Search Methods
546
-
547
- | Method | Description | Example |
548
- | --------------- | ------------------- | -------------------------------------------- |
549
- | `text()` | General web search | `webs.text('python programming')` |
550
- | `answers()` | Instant answers | `webs.answers('population of france')` |
551
- | `images()` | Image search | `webs.images('nature photography')` |
552
- | `videos()` | Video search | `webs.videos('documentary')` |
553
- | `news()` | News articles | `webs.news('technology')` |
554
- | `maps()` | Location search | `webs.maps('restaurants', place='new york')` |
555
- | `translate()` | Text translation | `webs.translate('hello', to='es')` |
556
- | `suggestions()` | Search suggestions | `webs.suggestions('how to')` |
557
- | `weather()` | Weather information | `webs.weather('london')` |
558
-
559
- <details>
560
- <summary><b>Example: Text Search</b></summary>
561
- <p>
562
-
563
- ```python
564
- from webscout import WEBS
565
-
566
- with WEBS() as webs:
567
- results = webs.text(
568
- 'artificial intelligence',
569
- region='wt-wt', # Optional: Region for results
570
- safesearch='off', # Optional: 'on', 'moderate', 'off'
571
- timelimit='y', # Optional: Time limit ('d'=day, 'w'=week, 'm'=month, 'y'=year)
572
- max_results=10 # Optional: Limit number of results
573
- )
574
-
575
- for result in results:
576
- print(f"Title: {result['title']}")
577
- print(f"URL: {result['url']}")
578
- print(f"Description: {result['body']}\n")
579
- ```
580
-
581
- </p>
582
- </details>
583
-
584
- <details>
585
- <summary><b>Example: News Search with Formatting</b></summary>
586
- <p>
587
-
588
- ```python
589
- from webscout import WEBS
590
- import datetime
591
-
592
- def fetch_formatted_news(keywords, timelimit='d', max_results=20):
593
- """Fetch and format news articles"""
594
- with WEBS() as webs:
595
- # Get news results
596
- news_results = webs.news(
597
- keywords,
598
- region="wt-wt",
599
- safesearch="off",
600
- timelimit=timelimit, # 'd'=day, 'w'=week, 'm'=month
601
- max_results=max_results
602
- )
603
-
604
- # Format the results
605
- formatted_news = []
606
- for i, item in enumerate(news_results, 1):
607
- # Format the date
608
- date = datetime.datetime.fromisoformat(item['date']).strftime('%B %d, %Y')
609
-
610
- # Create formatted entry
611
- entry = f"{i}. {item['title']}\n"
612
- entry += f" Published: {date}\n"
613
- entry += f" {item['body']}\n"
614
- entry += f" URL: {item['url']}\n"
615
-
616
- formatted_news.append(entry)
617
-
618
- return formatted_news
619
-
620
- # Example usage
621
- news = fetch_formatted_news('artificial intelligence', timelimit='w', max_results=5)
622
- print('\n'.join(news))
623
- ```
624
-
625
- </p>
626
- </details>
627
-
628
- <details>
629
- <summary><b>Example: Weather Information</b></summary>
630
- <p>
631
-
632
- ```python
633
- from webscout import WEBS
634
-
635
- with WEBS() as webs:
636
- # Get weather for a location
637
- weather = webs.weather("New York")
638
-
639
- # Access weather data
640
- if weather:
641
- print(f"Location: {weather.get('location', 'Unknown')}")
642
- print(f"Temperature: {weather.get('temperature', 'N/A')}")
643
- print(f"Conditions: {weather.get('condition', 'N/A')}")
644
- ```
645
-
646
- </p>
647
- </details>
648
-
649
- <hr/>
650
-
651
- ## 🤖 AI Models and Voices
652
-
653
- Webscout provides easy access to a wide range of AI models and voice options.
654
-
655
- <details open>
656
- <summary><b>LLM Models</b></summary>
657
- <p>
658
-
659
- Access and manage Large Language Models with Webscout's model utilities.
660
-
661
- ```python
662
- from webscout import model
663
- from rich import print
664
-
665
- # List all available LLM models
666
- all_models = model.llm.list()
667
- print(f"Total available models: {len(all_models)}")
668
-
669
- # Get a summary of models by provider
670
- summary = model.llm.summary()
671
- print("Models by provider:")
672
- for provider, count in summary.items():
673
- print(f" {provider}: {count} models")
674
-
675
- # Get models for a specific provider
676
- provider_name = "PerplexityLabs"
677
- available_models = model.llm.get(provider_name)
678
- print(f"\n{provider_name} models:")
679
- if isinstance(available_models, list):
680
- for i, model_name in enumerate(available_models, 1):
681
- print(f" {i}. {model_name}")
682
- else:
683
- print(f" {available_models}")
684
- ```
685
-
686
- </p>
687
- </details>
688
-
689
- <details open>
690
- <summary><b>TTS Voices</b></summary>
691
- <p>
692
-
693
- Access and manage Text-to-Speech voices across multiple providers.
694
-
695
- ```python
696
- from webscout import model
697
- from rich import print
698
-
699
- # List all available TTS voices
700
- all_voices = model.tts.list()
701
- print(f"Total available voices: {len(all_voices)}")
702
-
703
- # Get a summary of voices by provider
704
- summary = model.tts.summary()
705
- print("\nVoices by provider:")
706
- for provider, count in summary.items():
707
- print(f" {provider}: {count} voices")
708
-
709
- # Get voices for a specific provider
710
- provider_name = "ElevenlabsTTS"
711
- available_voices = model.tts.get(provider_name)
712
- print(f"\n{provider_name} voices:")
713
- if isinstance(available_voices, dict):
714
- for voice_name, voice_id in list(available_voices.items())[:5]: # Show first 5 voices
715
- print(f" - {voice_name}: {voice_id}")
716
- if len(available_voices) > 5:
717
- print(f" ... and {len(available_voices) - 5} more")
718
- ```
719
-
720
- </p>
721
- </details>
722
-
723
- <hr/>
724
-
725
- ## 💬 AI Chat Providers
726
-
727
- Webscout offers a comprehensive collection of AI chat providers, giving you access to various language models through a consistent interface.
728
-
729
- ### Popular AI Providers
730
-
731
- <div class="provider-table">
732
-
733
- | Provider | Description | Key Features |
734
- | ---------------- | ------------------------ | ---------------------------------- |
735
- | `OPENAI` | OpenAI's models | GPT-3.5, GPT-4, tool calling |
736
- | `GEMINI` | Google's Gemini models | Web search capabilities |
737
- | `Meta` | Meta's AI assistant | Image generation, web search |
738
- | `GROQ` | Fast inference platform | High-speed inference, tool calling |
739
- | `LLAMA` | Meta's Llama models | Open weights models |
740
- | `DeepInfra` | Various open models | Multiple model options |
741
- | `Cohere` | Cohere's language models | Command models |
742
- | `PerplexityLabs` | Perplexity AI | Web search integration |
743
- | `YEPCHAT` | Yep.com's AI | Streaming responses |
744
- | `ChatGPTClone` | ChatGPT-like interface | Multiple model options |
745
- | `TypeGPT` | TypeChat models | Multiple model options |
746
-
747
- </div>
748
-
749
- <details>
750
- <summary><b>Example: Using Meta AI</b></summary>
751
- <p>
752
-
753
- ```python
754
- from webscout import Meta
755
-
756
- # For basic usage (no authentication required)
757
- meta_ai = Meta()
758
-
759
- # Simple text prompt
760
- response = meta_ai.chat("What is the capital of France?")
761
- print(response)
762
-
763
- # For authenticated usage with web search and image generation
764
- meta_ai = Meta(fb_email="your_email@example.com", fb_password="your_password")
765
-
766
- # Text prompt with web search
767
- response = meta_ai.ask("What are the latest developments in quantum computing?")
768
- print(response["message"])
769
- print("Sources:", response["sources"])
770
-
771
- # Image generation
772
- response = meta_ai.ask("Create an image of a futuristic city")
773
- for media in response.get("media", []):
774
- print(media["url"])
775
- ```
776
-
777
- </p>
778
- </details>
779
-
780
- <details>
781
- <summary><b>Example: GROQ with Tool Calling</b></summary>
782
- <p>
783
-
784
- ```python
785
- from webscout import GROQ, WEBS
786
- import json
787
-
788
- # Initialize GROQ client
789
- client = GROQ(api_key="your_api_key")
790
-
791
- # Define helper functions
792
- def calculate(expression):
793
- """Evaluate a mathematical expression"""
794
- try:
795
- result = eval(expression)
796
- return json.dumps({"result": result})
797
- except Exception as e:
798
- return json.dumps({"error": str(e)})
799
-
800
- def search(query):
801
- """Perform a web search"""
802
- try:
803
- results = WEBS().text(query, max_results=3)
804
- return json.dumps({"results": results})
805
- except Exception as e:
806
- return json.dumps({"error": str(e)})
807
-
808
- # Register functions with GROQ
809
- client.add_function("calculate", calculate)
810
- client.add_function("search", search)
811
-
812
- # Define tool specifications
813
- tools = [
814
- {
815
- "type": "function",
816
- "function": {
817
- "name": "calculate",
818
- "description": "Evaluate a mathematical expression",
819
- "parameters": {
820
- "type": "object",
821
- "properties": {
822
- "expression": {
823
- "type": "string",
824
- "description": "The mathematical expression to evaluate"
825
- }
826
- },
827
- "required": ["expression"]
828
- }
829
- }
830
- },
831
- {
832
- "type": "function",
833
- "function": {
834
- "name": "search",
835
- "description": "Perform a web search",
836
- "parameters": {
837
- "type": "object",
838
- "properties": {
839
- "query": {
840
- "type": "string",
841
- "description": "The search query"
842
- }
843
- },
844
- "required": ["query"]
845
- }
846
- }
847
- }
848
- ]
849
-
850
- # Use the tools
851
- response = client.chat("What is 25 * 4 + 10?", tools=tools)
852
- print(response)
853
-
854
- response = client.chat("Find information about quantum computing", tools=tools)
855
- print(response)
856
- ```
857
-
858
- </p>
859
- </details>
860
-
861
- <details open>
862
- <summary><b>GGUF Model Conversion</b></summary>
863
- <p>
864
-
865
- Webscout provides tools to convert and quantize Hugging Face models into the GGUF format for offline use.
866
-
867
- ```python
868
- from webscout.Extra.gguf import ModelConverter
869
-
870
- # Create a converter instance
871
- converter = ModelConverter(
872
- model_id="mistralai/Mistral-7B-Instruct-v0.2", # Hugging Face model ID
873
- quantization_methods="q4_k_m" # Quantization method
874
- )
875
-
876
- # Run the conversion
877
- converter.convert()
878
- ```
879
-
880
- #### Available Quantization Methods
881
-
882
- | Method | Description |
883
- | -------- | ------------------------------------------------------------- |
884
- | `fp16` | 16-bit floating point - maximum accuracy, largest size |
885
- | `q2_k` | 2-bit quantization (smallest size, lowest accuracy) |
886
- | `q3_k_l` | 3-bit quantization (large) - balanced for size/accuracy |
887
- | `q3_k_m` | 3-bit quantization (medium) - good balance for most use cases |
888
- | `q3_k_s` | 3-bit quantization (small) - optimized for speed |
889
- | `q4_0` | 4-bit quantization (version 0) - standard 4-bit compression |
890
- | `q4_1` | 4-bit quantization (version 1) - improved accuracy over q4_0 |
891
- | `q4_k_m` | 4-bit quantization (medium) - balanced for most models |
892
- | `q4_k_s` | 4-bit quantization (small) - optimized for speed |
893
- | `q5_0` | 5-bit quantization (version 0) - high accuracy, larger size |
894
- | `q5_1` | 5-bit quantization (version 1) - improved accuracy over q5_0 |
895
- | `q5_k_m` | 5-bit quantization (medium) - best balance for quality/size |
896
- | `q5_k_s` | 5-bit quantization (small) - optimized for speed |
897
- | `q6_k` | 6-bit quantization - highest accuracy, largest size |
898
- | `q8_0` | 8-bit quantization - maximum accuracy, largest size |
899
-
900
- #### Command Line Usage
901
-
902
- ```bash
903
- python -m webscout.Extra.gguf convert -m "mistralai/Mistral-7B-Instruct-v0.2" -q "q4_k_m"
904
- ```
905
-
906
- </p>
907
- </details>
908
-
909
- <div align="center">
910
- <p>
911
- <a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a> |
912
- <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
913
- </p>
914
- </div>
915
-
916
- <hr/>
917
-
918
- ## 🤝 Contributing
919
-
920
- Contributions are welcome! If you'd like to contribute to Webscout, please follow these steps:
921
-
922
- 1. Fork the repository
923
- 2. Create a new branch for your feature or bug fix
924
- 3. Make your changes and commit them with descriptive messages
925
- 4. Push your branch to your forked repository
926
- 5. Submit a pull request to the main repository
927
-
928
- ## 🙏 Acknowledgments
929
-
930
- - All the amazing developers who have contributed to the project
931
- - The open-source community for their support and inspiration
932
-
933
- <hr/>
934
-
935
- <div align="center">
936
- <p>Made with ❤️ by the Webscout team</p>
937
- </div>
1
+ Metadata-Version: 2.4
2
+ Name: webscout
3
+ Version: 2025.10.11
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-email: OEvortex <helpingai5@gmail.com>
6
+ License: HelpingAI
7
+ Project-URL: Source, https://github.com/OE-LUCIFER/Webscout
8
+ Project-URL: Tracker, https://github.com/OE-LUCIFER/Webscout/issues
9
+ Project-URL: YouTube, https://youtube.com/@OEvortex
10
+ 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
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Intended Audience :: End Users/Desktop
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: License :: Other/Proprietary License
16
+ Classifier: Natural Language :: English
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Operating System :: Microsoft :: Windows
19
+ Classifier: Operating System :: POSIX :: Linux
20
+ Classifier: Operating System :: MacOS :: MacOS X
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3.9
23
+ Classifier: Programming Language :: Python :: 3.10
24
+ Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
27
+ Classifier: Programming Language :: Python :: Implementation :: CPython
28
+ Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
29
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
+ Classifier: Topic :: Text Processing :: Linguistic
31
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
32
+ Classifier: Topic :: Communications
33
+ Classifier: Topic :: Utilities
34
+ Requires-Python: >=3.9
35
+ Description-Content-Type: text/markdown
36
+ License-File: LICENSE.md
37
+ Requires-Dist: setuptools
38
+ Requires-Dist: wheel
39
+ Requires-Dist: pip
40
+ Requires-Dist: nodriver
41
+ Requires-Dist: mistune
42
+ Requires-Dist: curl_cffi
43
+ Requires-Dist: nest-asyncio
44
+ Requires-Dist: colorama
45
+ Requires-Dist: rich
46
+ Requires-Dist: markdownify
47
+ Requires-Dist: requests
48
+ Requires-Dist: google-generativeai
49
+ Requires-Dist: lxml>=5.2.2
50
+ Requires-Dist: orjson
51
+ Requires-Dist: PyYAML
52
+ Requires-Dist: pillow
53
+ Requires-Dist: bson
54
+ Requires-Dist: cloudscraper
55
+ Requires-Dist: html5lib
56
+ Requires-Dist: aiofiles
57
+ Requires-Dist: openai
58
+ Requires-Dist: gradio_client
59
+ Requires-Dist: psutil
60
+ Requires-Dist: aiohttp
61
+ Requires-Dist: zstandard
62
+ Requires-Dist: brotli
63
+ Requires-Dist: litproxy
64
+ Provides-Extra: dev
65
+ Requires-Dist: ruff>=0.1.6; extra == "dev"
66
+ Requires-Dist: pytest>=7.4.2; extra == "dev"
67
+ Provides-Extra: api
68
+ Requires-Dist: fastapi; extra == "api"
69
+ Requires-Dist: uvicorn[standard]; extra == "api"
70
+ Requires-Dist: pydantic; extra == "api"
71
+ Requires-Dist: python-multipart; extra == "api"
72
+ Requires-Dist: tiktoken; extra == "api"
73
+ Requires-Dist: motor; extra == "api"
74
+ Requires-Dist: jinja2; extra == "api"
75
+ Requires-Dist: supabase; extra == "api"
76
+ Requires-Dist: websockets>=11.0; extra == "api"
77
+ Requires-Dist: starlette; extra == "api"
78
+ Dynamic: license-file
79
+
80
+ <div align="center">
81
+ <a href="https://github.com/OEvortex/Webscout">
82
+ <img src="https://img.shields.io/badge/WebScout-Ultimate%20Toolkit-blue?style=for-the-badge&logo=python&logoColor=white" alt="WebScout Logo">
83
+ </a>
84
+
85
+ <h1>Webscout</h1>
86
+
87
+ <p><strong>Your All-in-One Python Toolkit for Web Search, AI Interaction, Digital Utilities, and More</strong></p>
88
+
89
+ <p>
90
+ Access diverse search engines, cutting-edge AI models, temporary communication tools, media utilities, developer helpers, and powerful CLI interfaces – all through one unified library.
91
+ </p>
92
+
93
+ <!-- Badges -->
94
+ <p>
95
+ <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>
96
+ <a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout/month?style=flat-square" alt="Monthly Downloads"></a>
97
+ <a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout?style=flat-square" alt="Total Downloads"></a>
98
+ <a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout?style=flat-square&logo=python" alt="Python Version"></a>
99
+ <a href="https://deepwiki.com/OEvortex/Webscout"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
100
+ </p>
101
+ </div>
102
+
103
+ <hr/>
104
+
105
+ ## 📋 Table of Contents
106
+
107
+ - [🌟 Key Features](#-features)
108
+ - [⚙️ Installation](#️-installation)
109
+ - [🖥️ Command Line Interface](#️-command-line-interface)
110
+ - [🔄 OpenAI-Compatible API Server](docs/openai-api-server.md)
111
+ - [🔍 Search Engines](#-search-engines)
112
+ - [🦆 DuckDuckGo Search](#-duckduckgo-search-with-webs-and-asyncwebs)
113
+ - [💻 WEBS API Reference](#-webs-api-reference)
114
+ - [🤖 AI Models and Voices](#-ai-models-and-voices)
115
+ - [💬 AI Chat Providers](#-ai-chat-providers)
116
+ - [👨‍💻 Advanced AI Interfaces](#-advanced-ai-interfaces)
117
+ - [🤝 Contributing](#-contributing)
118
+ - [🙏 Acknowledgments](#-acknowledgments)
119
+
120
+ <hr/>
121
+
122
+ > [!IMPORTANT]
123
+ > **Webscout supports three types of compatibility:**
124
+ >
125
+ > - **Native Compatibility:** Webscout's own native API for maximum flexibility
126
+ > - **OpenAI Compatibility:** Use providers with OpenAI-compatible interfaces
127
+ > - **Local LLM Compatibility:** Run local models with [Inferno](https://github.com/HelpingAI/inferno), an OpenAI-compatible server (now a standalone package)
128
+ >
129
+ > Choose the approach that best fits your needs! For OpenAI compatibility, check the [OpenAI Providers README](webscout/Provider/OPENAI/README.md) or see the [OpenAI-Compatible API Server](#-openai-compatible-api-server) section below.
130
+
131
+ > [!NOTE]
132
+ > 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.
133
+
134
+ <div align="center">
135
+ <!-- Social/Support Links -->
136
+ <p>
137
+ <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>
138
+ <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>
139
+ <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>
140
+ <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>
141
+ <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>
142
+ <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>
143
+ </p>
144
+ </div>
145
+
146
+ <hr/>
147
+
148
+ ## 🚀 Features
149
+
150
+ <details open>
151
+ <summary><b>Search & AI</b></summary>
152
+ <p>
153
+
154
+ - **Comprehensive Search:** Leverage Google, DuckDuckGo, and Yep for diverse search results
155
+ - **AI Powerhouse:** Access and interact with various AI models through three compatibility options:
156
+ - **Native API:** Use Webscout's native interfaces for providers like OpenAI, Cohere, Gemini, and many more
157
+ - **[OpenAI-Compatible Providers](webscout/Provider/OPENAI/README.md):** Seamlessly integrate with various AI providers using standardized OpenAI-compatible interfaces
158
+ - **[Local LLMs with Inferno](https://github.com/HelpingAI/inferno):** Run local models with an OpenAI-compatible server (now available as a standalone package)
159
+ - **[AI Search](webscout/Provider/AISEARCH/README.md):** AI-powered search engines with advanced capabilities
160
+ </p>
161
+ </details>
162
+
163
+ <details open>
164
+ <summary><b>Media & Content Tools</b></summary>
165
+ <p>
166
+
167
+ - **[YouTube Toolkit](webscout/Extra/YTToolkit/README.md):** Advanced YouTube video and transcript management with multi-language support
168
+ - **[Text-to-Speech (TTS)](webscout/Provider/TTS/README.md):** Convert text into natural-sounding speech using multiple AI-powered providers
169
+ - **[Text-to-Image](webscout/Provider/TTI/README.md):** Generate high-quality images using a wide range of AI art providers
170
+ - **[Weather Tools](webscout/Extra/weather.md):** Retrieve detailed weather information for any location
171
+ </p>
172
+ </details>
173
+
174
+ <details open>
175
+ <summary><b>Developer Tools</b></summary>
176
+ <p>
177
+
178
+ - **[GitAPI](webscout/Extra/GitToolkit/gitapi):** Powerful GitHub data extraction toolkit without authentication requirements for public data
179
+ - **[SwiftCLI](webscout/swiftcli/Readme.md):** A powerful and elegant CLI framework for beautiful command-line interfaces
180
+ - **[LitPrinter](webscout/litprinter/Readme.md):** Styled console output with rich formatting and colors
181
+ - **[LitLogger](webscout/litlogger/README.md):** Simplified logging with customizable formats and color schemes
182
+ - **[LitAgent](webscout/litagent/Readme.md):** Modern user agent generator that keeps your requests undetectable
183
+ - **[Scout](webscout/scout/README.md):** Advanced web parsing and crawling library with intelligent HTML/XML parsing
184
+ - **[Inferno](https://github.com/HelpingAI/inferno):** Run local LLMs with an OpenAI-compatible API and interactive CLI (now a standalone package: `pip install inferno-llm`)
185
+ - **[GGUF Conversion](webscout/Extra/gguf.md):** Convert and quantize Hugging Face models to GGUF format
186
+ - **[Utility Decorators](docs/decorators.md):** Easily measure function execution time (`timeIt`) and add retry logic (`retry`) to any function
187
+ - **[Stream Sanitization Utilities](docs/sanitize.md):** Advanced tools for cleaning, decoding, and processing data streams
188
+ </p>
189
+ </details>
190
+
191
+ <details open>
192
+ <summary><b>Privacy & Utilities</b></summary>
193
+ <p>
194
+
195
+ - **[Tempmail](webscout/Extra/tempmail/README.md) & Temp Number:** Generate temporary email addresses and phone numbers
196
+ - **[Awesome Prompts](webscout/Extra/Act.md):** Curated collection of system prompts for specialized AI personas
197
+ </p>
198
+ </details>
199
+
200
+ <hr/>
201
+
202
+ ## ⚙️ Installation
203
+
204
+ Webscout supports multiple installation methods to fit your workflow:
205
+
206
+ ### 📦 Standard Installation
207
+
208
+ ```bash
209
+ # Install from PyPI
210
+ pip install -U webscout
211
+
212
+ # Install with API server dependencies
213
+ pip install -U "webscout[api]"
214
+
215
+ # Install with development dependencies
216
+ pip install -U "webscout[dev]"
217
+ ```
218
+
219
+ ### ⚡ UV Package Manager (Recommended)
220
+
221
+ [UV](https://github.com/astral-sh/uv) is a fast Python package manager. Webscout has full UV support:
222
+
223
+ ```bash
224
+ # Install UV first (if not already installed)
225
+ pip install uv
226
+
227
+ # Install Webscout with UV
228
+ uv add webscout
229
+
230
+ # Install with API dependencies
231
+ uv add "webscout[api]"
232
+
233
+ # Run Webscout directly with UV (no installation needed)
234
+ uv run webscout --help
235
+
236
+ # Run with API dependencies
237
+ uv run webscout --extra api webscout-server
238
+
239
+ # Install as a UV tool for global access
240
+ uv tool install webscout
241
+
242
+ # Use UV tool commands
243
+ webscout --help
244
+ webscout-server
245
+ ```
246
+
247
+ ### 🔧 Development Installation
248
+
249
+ ```bash
250
+ # Clone the repository
251
+ git clone https://github.com/OEvortex/Webscout.git
252
+ cd Webscout
253
+
254
+ # Install in development mode with UV
255
+ uv sync --extra dev --extra api
256
+
257
+ # Or with pip
258
+ pip install -e ".[dev,api]"
259
+
260
+ # Or with uv pip
261
+ uv pip install -e ".[dev,api]"
262
+ ```
263
+
264
+ ### 🐳 Docker Installation
265
+
266
+ ```bash
267
+ # Pull and run the Docker image
268
+ docker pull oevortex/webscout:latest
269
+ docker run -it oevortex/webscout:latest
270
+ ```
271
+
272
+ ### 📱 Quick Start Commands
273
+
274
+ After installation, you can immediately start using Webscout:
275
+
276
+ ```bash
277
+ # Check version
278
+ webscout version
279
+
280
+ # Search the web
281
+ webscout text -k "python programming"
282
+
283
+ # Start API server
284
+ webscout-server
285
+
286
+ # Get help
287
+ webscout --help
288
+ ```
289
+
290
+ <hr/>
291
+
292
+ ## 🖥️ Command Line Interface
293
+
294
+ Webscout provides a powerful command-line interface for quick access to its features. You can use it in multiple ways:
295
+
296
+ ### 🚀 Direct Commands (Recommended)
297
+
298
+ After installing with `uv tool install webscout` or `pip install webscout`:
299
+
300
+ ```bash
301
+ # Get help
302
+ webscout --help
303
+
304
+ # Start API server
305
+ webscout-server
306
+ ```
307
+
308
+ ### 🔧 UV Run Commands (No Installation Required)
309
+
310
+ ```bash
311
+ # Run directly with UV (downloads and runs automatically)
312
+ uv run webscout --help
313
+ uv run --extra api webscout-server
314
+ ```
315
+
316
+ ### 📦 Python Module Commands
317
+
318
+ ```bash
319
+ # Traditional Python module execution
320
+ python -m webscout --help
321
+ python -m webscout-server
322
+ ```
323
+
324
+ <details open>
325
+ <summary><b>🔍 Web Search Commands</b></summary>
326
+ <p>
327
+
328
+ | Command | Description | Example |
329
+ | --------------------------------- | --------------------------- | ----------------------------------------- |
330
+ | `webscout text -k "query"` | Perform a text search | `webscout text -k "python programming"` |
331
+ | `webscout answers -k "query"` | Get instant answers | `webscout answers -k "what is AI"` |
332
+ | `webscout images -k "query"` | Search for images | `webscout images -k "nature photography"` |
333
+ | `webscout videos -k "query"` | Search for videos | `webscout videos -k "python tutorials"` |
334
+ | `webscout news -k "query"` | Search for news articles | `webscout news -k "technology trends"` |
335
+ | `webscout maps -k "query"` | Perform a maps search | `webscout maps -k "restaurants near me"` |
336
+ | `webscout translate -k "text"` | Translate text | `webscout translate -k "hello world"` |
337
+ | `webscout suggestions -k "query"` | Get search suggestions | `webscout suggestions -k "how to"` |
338
+ | `webscout weather -l "location"` | Get weather information | `webscout weather -l "New York"` |
339
+ | `webscout version` | Display the current version | `webscout version` |
340
+
341
+ **Google Search Commands:**
342
+ | Command | Description | Example |
343
+ |---------|-------------|---------|
344
+ | `webscout google_text -k "query"` | Google text search | `webscout google_text -k "machine learning"` |
345
+ | `webscout google_news -k "query"` | Google news search | `webscout google_news -k "AI breakthrough"` |
346
+ | `webscout google_suggestions -q "query"` | Google suggestions | `webscout google_suggestions -q "python"` |
347
+
348
+ **Yep Search Commands:**
349
+ | Command | Description | Example |
350
+ |---------|-------------|---------|
351
+ | `webscout yep_text -k "query"` | Yep text search | `webscout yep_text -k "web development"` |
352
+ | `webscout yep_images -k "query"` | Yep image search | `webscout yep_images -k "landscapes"` |
353
+ | `webscout yep_suggestions -q "query"` | Yep suggestions | `webscout yep_suggestions -q "javascript"` |
354
+
355
+ </p>
356
+ </details>
357
+
358
+ <details open>
359
+ <summary><b>Inferno LLM Commands</b></summary>
360
+ <p>
361
+
362
+ Inferno is now a standalone package. Install it separately with:
363
+
364
+ ```bash
365
+ pip install inferno-llm
366
+ ```
367
+
368
+ After installation, you can use its CLI for managing and using local LLMs:
369
+
370
+ ```bash
371
+ inferno --help
372
+ ```
373
+
374
+ | Command | Description |
375
+ | ------------------------ | ----------------------------------------------- |
376
+ | `inferno pull <model>` | Download a model from Hugging Face |
377
+ | `inferno list` | List downloaded models |
378
+ | `inferno serve <model>` | Start a model server with OpenAI-compatible API |
379
+ | `inferno run <model>` | Chat with a model interactively |
380
+ | `inferno remove <model>` | Remove a downloaded model |
381
+ | `inferno version` | Show version information |
382
+
383
+ For more information, visit the [Inferno GitHub repository](https://github.com/HelpingAI/inferno) or [PyPI package page](https://pypi.org/project/inferno-llm/).
384
+
385
+ </p>
386
+ </details>
387
+
388
+ > [!NOTE]
389
+ > **Hardware requirements for running models with Inferno:**
390
+ >
391
+ > - Around 2 GB of RAM for 1B models
392
+ > - Around 4 GB of RAM for 3B models
393
+ > - At least 8 GB of RAM for 7B models
394
+ > - 16 GB of RAM for 13B models
395
+ > - 32 GB of RAM for 33B models
396
+ > - GPU acceleration is recommended for better performance
397
+
398
+ For detailed information about the OpenAI-compatible API server, including setup, configuration, and usage examples, see the [OpenAI API Server Documentation](docs/openai-api-server.md).
399
+
400
+ <hr/>
401
+
402
+ ## 🔍 Search Engines
403
+
404
+ Webscout provides multiple search engine interfaces for diverse search capabilities.
405
+
406
+ ### YepSearch - Yep.com Interface
407
+
408
+ ```python
409
+ from webscout import YepSearch
410
+
411
+ # Initialize YepSearch
412
+ yep = YepSearch(
413
+ timeout=20, # Optional: Set custom timeout
414
+ proxies=None, # Optional: Use proxies
415
+ verify=True # Optional: SSL verification
416
+ )
417
+
418
+ # Text Search
419
+ text_results = yep.text(
420
+ keywords="artificial intelligence",
421
+ region="all", # Optional: Region for results
422
+ safesearch="moderate", # Optional: "on", "moderate", "off"
423
+ max_results=10 # Optional: Limit number of results
424
+ )
425
+
426
+ # Image Search
427
+ image_results = yep.images(
428
+ keywords="nature photography",
429
+ region="all",
430
+ safesearch="moderate",
431
+ max_results=10
432
+ )
433
+
434
+ # Get search suggestions
435
+ suggestions = yep.suggestions("hist")
436
+ ```
437
+
438
+ ### GoogleSearch - Google Interface
439
+
440
+ ```python
441
+ from webscout import GoogleSearch
442
+
443
+ # Initialize GoogleSearch
444
+ google = GoogleSearch(
445
+ timeout=10, # Optional: Set custom timeout
446
+ proxies=None, # Optional: Use proxies
447
+ verify=True # Optional: SSL verification
448
+ )
449
+
450
+ # Text Search
451
+ text_results = google.text(
452
+ keywords="artificial intelligence",
453
+ region="us", # Optional: Region for results
454
+ safesearch="moderate", # Optional: "on", "moderate", "off"
455
+ max_results=10 # Optional: Limit number of results
456
+ )
457
+ for result in text_results:
458
+ print(f"Title: {result.title}")
459
+ print(f"URL: {result.url}")
460
+ print(f"Description: {result.description}")
461
+
462
+ # News Search
463
+ news_results = google.news(
464
+ keywords="technology trends",
465
+ region="us",
466
+ safesearch="moderate",
467
+ max_results=5
468
+ )
469
+
470
+ # Get search suggestions
471
+ suggestions = google.suggestions("how to")
472
+
473
+ # Legacy usage is still supported
474
+ from webscout import search
475
+ results = search("Python programming", num_results=5)
476
+ ```
477
+
478
+ <hr/>
479
+
480
+ ## 🦆 DuckDuckGo Search with WEBS and AsyncWEBS
481
+
482
+ Webscout provides powerful interfaces to DuckDuckGo's search capabilities through the `WEBS` and `AsyncWEBS` classes.
483
+
484
+ <details open>
485
+ <summary><b>Synchronous Usage with WEBS</b></summary>
486
+ <p>
487
+
488
+ ```python
489
+ from webscout import WEBS
490
+
491
+ # Use as a context manager for proper resource management
492
+ with WEBS() as webs:
493
+ # Simple text search
494
+ results = webs.text("python programming", max_results=5)
495
+ for result in results:
496
+ print(f"Title: {result['title']}\nURL: {result['url']}")
497
+ ```
498
+
499
+ </p>
500
+ </details>
501
+
502
+ <details open>
503
+ <summary><b>Asynchronous Usage with AsyncWEBS</b></summary>
504
+ <p>
505
+
506
+ ```python
507
+ import asyncio
508
+ from webscout import AsyncWEBS
509
+
510
+ async def search_multiple_terms(search_terms):
511
+ async with AsyncWEBS() as webs:
512
+ # Create tasks for each search term
513
+ tasks = [webs.text(term, max_results=5) for term in search_terms]
514
+ # Run all searches concurrently
515
+ results = await asyncio.gather(*tasks)
516
+ return results
517
+
518
+ async def main():
519
+ terms = ["python", "javascript", "machine learning"]
520
+ all_results = await search_multiple_terms(terms)
521
+
522
+ # Process results
523
+ for i, term_results in enumerate(all_results):
524
+ print(f"Results for '{terms[i]}':\n")
525
+ for result in term_results:
526
+ print(f"- {result['title']}")
527
+ print("\n")
528
+
529
+ # Run the async function
530
+ asyncio.run(main())
531
+ ```
532
+
533
+ </p>
534
+ </details>
535
+
536
+ > [!TIP]
537
+ > Always use these classes with a context manager (`with` statement) to ensure proper resource management and cleanup.
538
+
539
+ <hr/>
540
+
541
+ ## 💻 WEBS API Reference
542
+
543
+ The WEBS class provides comprehensive access to DuckDuckGo's search capabilities through a clean, intuitive API.
544
+
545
+ ### Available Search Methods
546
+
547
+ | Method | Description | Example |
548
+ | --------------- | ------------------- | -------------------------------------------- |
549
+ | `text()` | General web search | `webs.text('python programming')` |
550
+ | `answers()` | Instant answers | `webs.answers('population of france')` |
551
+ | `images()` | Image search | `webs.images('nature photography')` |
552
+ | `videos()` | Video search | `webs.videos('documentary')` |
553
+ | `news()` | News articles | `webs.news('technology')` |
554
+ | `maps()` | Location search | `webs.maps('restaurants', place='new york')` |
555
+ | `translate()` | Text translation | `webs.translate('hello', to='es')` |
556
+ | `suggestions()` | Search suggestions | `webs.suggestions('how to')` |
557
+ | `weather()` | Weather information | `webs.weather('london')` |
558
+
559
+ <details>
560
+ <summary><b>Example: Text Search</b></summary>
561
+ <p>
562
+
563
+ ```python
564
+ from webscout import WEBS
565
+
566
+ with WEBS() as webs:
567
+ results = webs.text(
568
+ 'artificial intelligence',
569
+ region='wt-wt', # Optional: Region for results
570
+ safesearch='off', # Optional: 'on', 'moderate', 'off'
571
+ timelimit='y', # Optional: Time limit ('d'=day, 'w'=week, 'm'=month, 'y'=year)
572
+ max_results=10 # Optional: Limit number of results
573
+ )
574
+
575
+ for result in results:
576
+ print(f"Title: {result['title']}")
577
+ print(f"URL: {result['url']}")
578
+ print(f"Description: {result['body']}\n")
579
+ ```
580
+
581
+ </p>
582
+ </details>
583
+
584
+ <details>
585
+ <summary><b>Example: News Search with Formatting</b></summary>
586
+ <p>
587
+
588
+ ```python
589
+ from webscout import WEBS
590
+ import datetime
591
+
592
+ def fetch_formatted_news(keywords, timelimit='d', max_results=20):
593
+ """Fetch and format news articles"""
594
+ with WEBS() as webs:
595
+ # Get news results
596
+ news_results = webs.news(
597
+ keywords,
598
+ region="wt-wt",
599
+ safesearch="off",
600
+ timelimit=timelimit, # 'd'=day, 'w'=week, 'm'=month
601
+ max_results=max_results
602
+ )
603
+
604
+ # Format the results
605
+ formatted_news = []
606
+ for i, item in enumerate(news_results, 1):
607
+ # Format the date
608
+ date = datetime.datetime.fromisoformat(item['date']).strftime('%B %d, %Y')
609
+
610
+ # Create formatted entry
611
+ entry = f"{i}. {item['title']}\n"
612
+ entry += f" Published: {date}\n"
613
+ entry += f" {item['body']}\n"
614
+ entry += f" URL: {item['url']}\n"
615
+
616
+ formatted_news.append(entry)
617
+
618
+ return formatted_news
619
+
620
+ # Example usage
621
+ news = fetch_formatted_news('artificial intelligence', timelimit='w', max_results=5)
622
+ print('\n'.join(news))
623
+ ```
624
+
625
+ </p>
626
+ </details>
627
+
628
+ <details>
629
+ <summary><b>Example: Weather Information</b></summary>
630
+ <p>
631
+
632
+ ```python
633
+ from webscout import WEBS
634
+
635
+ with WEBS() as webs:
636
+ # Get weather for a location
637
+ weather = webs.weather("New York")
638
+
639
+ # Access weather data
640
+ if weather:
641
+ print(f"Location: {weather.get('location', 'Unknown')}")
642
+ print(f"Temperature: {weather.get('temperature', 'N/A')}")
643
+ print(f"Conditions: {weather.get('condition', 'N/A')}")
644
+ ```
645
+
646
+ </p>
647
+ </details>
648
+
649
+ <hr/>
650
+
651
+ ## 🤖 AI Models and Voices
652
+
653
+ Webscout provides easy access to a wide range of AI models and voice options.
654
+
655
+ <details open>
656
+ <summary><b>LLM Models</b></summary>
657
+ <p>
658
+
659
+ Access and manage Large Language Models with Webscout's model utilities.
660
+
661
+ ```python
662
+ from webscout import model
663
+ from rich import print
664
+
665
+ # List all available LLM models
666
+ all_models = model.llm.list()
667
+ print(f"Total available models: {len(all_models)}")
668
+
669
+ # Get a summary of models by provider
670
+ summary = model.llm.summary()
671
+ print("Models by provider:")
672
+ for provider, count in summary.items():
673
+ print(f" {provider}: {count} models")
674
+
675
+ # Get models for a specific provider
676
+ provider_name = "PerplexityLabs"
677
+ available_models = model.llm.get(provider_name)
678
+ print(f"\n{provider_name} models:")
679
+ if isinstance(available_models, list):
680
+ for i, model_name in enumerate(available_models, 1):
681
+ print(f" {i}. {model_name}")
682
+ else:
683
+ print(f" {available_models}")
684
+ ```
685
+
686
+ </p>
687
+ </details>
688
+
689
+ <details open>
690
+ <summary><b>TTS Voices</b></summary>
691
+ <p>
692
+
693
+ Access and manage Text-to-Speech voices across multiple providers.
694
+
695
+ ```python
696
+ from webscout import model
697
+ from rich import print
698
+
699
+ # List all available TTS voices
700
+ all_voices = model.tts.list()
701
+ print(f"Total available voices: {len(all_voices)}")
702
+
703
+ # Get a summary of voices by provider
704
+ summary = model.tts.summary()
705
+ print("\nVoices by provider:")
706
+ for provider, count in summary.items():
707
+ print(f" {provider}: {count} voices")
708
+
709
+ # Get voices for a specific provider
710
+ provider_name = "ElevenlabsTTS"
711
+ available_voices = model.tts.get(provider_name)
712
+ print(f"\n{provider_name} voices:")
713
+ if isinstance(available_voices, dict):
714
+ for voice_name, voice_id in list(available_voices.items())[:5]: # Show first 5 voices
715
+ print(f" - {voice_name}: {voice_id}")
716
+ if len(available_voices) > 5:
717
+ print(f" ... and {len(available_voices) - 5} more")
718
+ ```
719
+
720
+ </p>
721
+ </details>
722
+
723
+ <hr/>
724
+
725
+ ## 💬 AI Chat Providers
726
+
727
+ Webscout offers a comprehensive collection of AI chat providers, giving you access to various language models through a consistent interface.
728
+
729
+ ### Popular AI Providers
730
+
731
+ <div class="provider-table">
732
+
733
+ | Provider | Description | Key Features |
734
+ | ---------------- | ------------------------ | ---------------------------------- |
735
+ | `OPENAI` | OpenAI's models | GPT-3.5, GPT-4, tool calling |
736
+ | `GEMINI` | Google's Gemini models | Web search capabilities |
737
+ | `Meta` | Meta's AI assistant | Image generation, web search |
738
+ | `GROQ` | Fast inference platform | High-speed inference, tool calling |
739
+ | `LLAMA` | Meta's Llama models | Open weights models |
740
+ | `DeepInfra` | Various open models | Multiple model options |
741
+ | `Cohere` | Cohere's language models | Command models |
742
+ | `PerplexityLabs` | Perplexity AI | Web search integration |
743
+ | `YEPCHAT` | Yep.com's AI | Streaming responses |
744
+ | `ChatGPTClone` | ChatGPT-like interface | Multiple model options |
745
+ | `TypeGPT` | TypeChat models | Multiple model options |
746
+
747
+ </div>
748
+
749
+ <details>
750
+ <summary><b>Example: Using Meta AI</b></summary>
751
+ <p>
752
+
753
+ ```python
754
+ from webscout import Meta
755
+
756
+ # For basic usage (no authentication required)
757
+ meta_ai = Meta()
758
+
759
+ # Simple text prompt
760
+ response = meta_ai.chat("What is the capital of France?")
761
+ print(response)
762
+
763
+ # For authenticated usage with web search and image generation
764
+ meta_ai = Meta(fb_email="your_email@example.com", fb_password="your_password")
765
+
766
+ # Text prompt with web search
767
+ response = meta_ai.ask("What are the latest developments in quantum computing?")
768
+ print(response["message"])
769
+ print("Sources:", response["sources"])
770
+
771
+ # Image generation
772
+ response = meta_ai.ask("Create an image of a futuristic city")
773
+ for media in response.get("media", []):
774
+ print(media["url"])
775
+ ```
776
+
777
+ </p>
778
+ </details>
779
+
780
+ <details>
781
+ <summary><b>Example: GROQ with Tool Calling</b></summary>
782
+ <p>
783
+
784
+ ```python
785
+ from webscout import GROQ, WEBS
786
+ import json
787
+
788
+ # Initialize GROQ client
789
+ client = GROQ(api_key="your_api_key")
790
+
791
+ # Define helper functions
792
+ def calculate(expression):
793
+ """Evaluate a mathematical expression"""
794
+ try:
795
+ result = eval(expression)
796
+ return json.dumps({"result": result})
797
+ except Exception as e:
798
+ return json.dumps({"error": str(e)})
799
+
800
+ def search(query):
801
+ """Perform a web search"""
802
+ try:
803
+ results = WEBS().text(query, max_results=3)
804
+ return json.dumps({"results": results})
805
+ except Exception as e:
806
+ return json.dumps({"error": str(e)})
807
+
808
+ # Register functions with GROQ
809
+ client.add_function("calculate", calculate)
810
+ client.add_function("search", search)
811
+
812
+ # Define tool specifications
813
+ tools = [
814
+ {
815
+ "type": "function",
816
+ "function": {
817
+ "name": "calculate",
818
+ "description": "Evaluate a mathematical expression",
819
+ "parameters": {
820
+ "type": "object",
821
+ "properties": {
822
+ "expression": {
823
+ "type": "string",
824
+ "description": "The mathematical expression to evaluate"
825
+ }
826
+ },
827
+ "required": ["expression"]
828
+ }
829
+ }
830
+ },
831
+ {
832
+ "type": "function",
833
+ "function": {
834
+ "name": "search",
835
+ "description": "Perform a web search",
836
+ "parameters": {
837
+ "type": "object",
838
+ "properties": {
839
+ "query": {
840
+ "type": "string",
841
+ "description": "The search query"
842
+ }
843
+ },
844
+ "required": ["query"]
845
+ }
846
+ }
847
+ }
848
+ ]
849
+
850
+ # Use the tools
851
+ response = client.chat("What is 25 * 4 + 10?", tools=tools)
852
+ print(response)
853
+
854
+ response = client.chat("Find information about quantum computing", tools=tools)
855
+ print(response)
856
+ ```
857
+
858
+ </p>
859
+ </details>
860
+
861
+ <details open>
862
+ <summary><b>GGUF Model Conversion</b></summary>
863
+ <p>
864
+
865
+ Webscout provides tools to convert and quantize Hugging Face models into the GGUF format for offline use.
866
+
867
+ ```python
868
+ from webscout.Extra.gguf import ModelConverter
869
+
870
+ # Create a converter instance
871
+ converter = ModelConverter(
872
+ model_id="mistralai/Mistral-7B-Instruct-v0.2", # Hugging Face model ID
873
+ quantization_methods="q4_k_m" # Quantization method
874
+ )
875
+
876
+ # Run the conversion
877
+ converter.convert()
878
+ ```
879
+
880
+ #### Available Quantization Methods
881
+
882
+ | Method | Description |
883
+ | -------- | ------------------------------------------------------------- |
884
+ | `fp16` | 16-bit floating point - maximum accuracy, largest size |
885
+ | `q2_k` | 2-bit quantization (smallest size, lowest accuracy) |
886
+ | `q3_k_l` | 3-bit quantization (large) - balanced for size/accuracy |
887
+ | `q3_k_m` | 3-bit quantization (medium) - good balance for most use cases |
888
+ | `q3_k_s` | 3-bit quantization (small) - optimized for speed |
889
+ | `q4_0` | 4-bit quantization (version 0) - standard 4-bit compression |
890
+ | `q4_1` | 4-bit quantization (version 1) - improved accuracy over q4_0 |
891
+ | `q4_k_m` | 4-bit quantization (medium) - balanced for most models |
892
+ | `q4_k_s` | 4-bit quantization (small) - optimized for speed |
893
+ | `q5_0` | 5-bit quantization (version 0) - high accuracy, larger size |
894
+ | `q5_1` | 5-bit quantization (version 1) - improved accuracy over q5_0 |
895
+ | `q5_k_m` | 5-bit quantization (medium) - best balance for quality/size |
896
+ | `q5_k_s` | 5-bit quantization (small) - optimized for speed |
897
+ | `q6_k` | 6-bit quantization - highest accuracy, largest size |
898
+ | `q8_0` | 8-bit quantization - maximum accuracy, largest size |
899
+
900
+ #### Command Line Usage
901
+
902
+ ```bash
903
+ python -m webscout.Extra.gguf convert -m "mistralai/Mistral-7B-Instruct-v0.2" -q "q4_k_m"
904
+ ```
905
+
906
+ </p>
907
+ </details>
908
+
909
+ <div align="center">
910
+ <p>
911
+ <a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a> |
912
+ <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
913
+ </p>
914
+ </div>
915
+
916
+ <hr/>
917
+
918
+ ## 🤝 Contributing
919
+
920
+ Contributions are welcome! If you'd like to contribute to Webscout, please follow these steps:
921
+
922
+ 1. Fork the repository
923
+ 2. Create a new branch for your feature or bug fix
924
+ 3. Make your changes and commit them with descriptive messages
925
+ 4. Push your branch to your forked repository
926
+ 5. Submit a pull request to the main repository
927
+
928
+ ## 🙏 Acknowledgments
929
+
930
+ - All the amazing developers who have contributed to the project
931
+ - The open-source community for their support and inspiration
932
+
933
+ <hr/>
934
+
935
+ <div align="center">
936
+ <p>Made with ❤️ by the Webscout team</p>
937
+ </div>