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