webscout 7.0__tar.gz → 7.1__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-7.0/webscout.egg-info → webscout-7.1}/PKG-INFO +18 -26
- {webscout-7.0 → webscout-7.1}/README.md +17 -24
- {webscout-7.0 → webscout-7.1}/setup.py +0 -1
- {webscout-7.0 → webscout-7.1}/webscout/LLM.py +1 -1
- webscout-7.1/webscout/Provider/Blackboxai.py +229 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Cloudflare.py +92 -78
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Deepinfra.py +59 -35
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Glider.py +74 -59
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Groq.py +26 -18
- webscout-7.1/webscout/Provider/Jadve.py +265 -0
- webscout-7.1/webscout/Provider/Llama3.py +212 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Marcus.py +65 -10
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Netwrck.py +61 -49
- {webscout-7.0 → webscout-7.1}/webscout/Provider/PI.py +77 -122
- webscout-7.1/webscout/Provider/PizzaGPT.py +240 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TextPollinationsAI.py +75 -47
- {webscout-7.0 → webscout-7.1}/webscout/Provider/__init__.py +1 -3
- {webscout-7.0 → webscout-7.1}/webscout/Provider/dgaf.py +68 -39
- webscout-7.1/webscout/Provider/gaurish.py +247 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/llamatutor.py +72 -62
- {webscout-7.0 → webscout-7.1}/webscout/Provider/llmchat.py +61 -35
- {webscout-7.0 → webscout-7.1}/webscout/Provider/meta.py +6 -6
- webscout-7.1/webscout/Provider/multichat.py +331 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/typegpt.py +26 -23
- {webscout-7.0 → webscout-7.1}/webscout/Provider/yep.py +3 -3
- {webscout-7.0 → webscout-7.1}/webscout/version.py +1 -1
- {webscout-7.0 → webscout-7.1}/webscout/webscout_search.py +1141 -1140
- {webscout-7.0 → webscout-7.1}/webscout/webscout_search_async.py +635 -635
- {webscout-7.0 → webscout-7.1/webscout.egg-info}/PKG-INFO +18 -26
- {webscout-7.0 → webscout-7.1}/webscout.egg-info/SOURCES.txt +0 -1
- {webscout-7.0 → webscout-7.1}/webscout.egg-info/requires.txt +0 -1
- webscout-7.0/webscout/Provider/Blackboxai.py +0 -230
- webscout-7.0/webscout/Provider/Jadve.py +0 -234
- webscout-7.0/webscout/Provider/Llama3.py +0 -189
- webscout-7.0/webscout/Provider/PizzaGPT.py +0 -193
- webscout-7.0/webscout/Provider/RUBIKSAI.py +0 -272
- webscout-7.0/webscout/Provider/gaurish.py +0 -207
- webscout-7.0/webscout/Provider/multichat.py +0 -230
- {webscout-7.0 → webscout-7.1}/LICENSE.md +0 -0
- {webscout-7.0 → webscout-7.1}/setup.cfg +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/AIauto.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/AIbase.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/AIutel.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Bard.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/DWEBS.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/YTdownloader.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/transcriber.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/channel.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/errors.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/extras.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/https.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/patterns.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/playlist.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/pool.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/query.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/stream.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/utils.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/YTToolkit/ytapi/video.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/autocoder/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/autocoder/autocoder_utiles.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/autocoder/rawdog.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/autollama.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/gguf.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/weather.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Extra/weather_ascii.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Litlogger/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Local/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Local/_version.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Local/formats.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Local/model.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Local/samplers.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Local/thread.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Local/ui.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Local/utils.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/AI21.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/AISEARCH/DeepFind.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/AISEARCH/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/AISEARCH/felo_search.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Amigo.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Andi.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Bing.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/ChatGPTES.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Chatify.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Cohere.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/DARKAI.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/DiscordRocks.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/EDITEE.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Free2GPT.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/GPTWeb.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Gemini.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/HF_space/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/HF_space/qwen_qwen2.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Koboldai.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Llama.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/OLLAMA.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Openai.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Phind.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Reka.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/AiForce/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/AiForce/async_aiforce.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/AiForce/sync_aiforce.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/Nexra/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/Nexra/async_nexra.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/Nexra/sync_nexra.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/PollinationsAI/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/PollinationsAI/async_pollinations.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/artbit/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/artbit/async_artbit.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/artbit/sync_artbit.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/blackbox/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/blackbox/async_blackbox.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/blackbox/sync_blackbox.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/deepinfra/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/deepinfra/async_deepinfra.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/deepinfra/sync_deepinfra.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/huggingface/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/huggingface/async_huggingface.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/huggingface/sync_huggingface.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/imgninza/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/imgninza/async_ninza.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/imgninza/sync_ninza.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/talkai/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/talkai/async_talkai.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTI/talkai/sync_talkai.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/deepgram.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/elevenlabs.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/gesserit.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/murfai.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/parler.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/streamElements.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/utils.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TTS/voicepod.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/TeachAnything.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/Youchat.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/ai4chat.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/aimathgpt.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/askmyai.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/bagoodex.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/cerebras.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/chatglm.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/cleeai.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/elmo.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/geminiapi.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/geminiprorealtime.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/hermes.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/julius.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/koala.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/learnfastai.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/lepton.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/llama3mitril.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/promptrefine.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/talkai.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/turboseek.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/tutorai.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/Provider/x0gpt.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/__main__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/cli.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/conversation.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/exceptions.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/litagent/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/litagent/agent.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/litagent/constants.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/litprinter/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/litprinter/colors.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/optimizers.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/prompt_manager.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/core/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/core/crawler.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/core/scout.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/core/search_result.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/core/text_analyzer.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/core/text_utils.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/core/web_analyzer.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/core.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/element.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/parsers/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/parsers/html5lib_parser.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/parsers/html_parser.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/parsers/lxml_parser.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/scout/utils.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/swiftcli/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/tempid.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/update_checker.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/utils.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/zeroart/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/zeroart/base.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/zeroart/effects.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout/zeroart/fonts.py +0 -0
- {webscout-7.0 → webscout-7.1}/webscout.egg-info/dependency_links.txt +0 -0
- {webscout-7.0 → webscout-7.1}/webscout.egg-info/entry_points.txt +0 -0
- {webscout-7.0 → webscout-7.1}/webscout.egg-info/top_level.txt +0 -0
- {webscout-7.0 → webscout-7.1}/webstoken/__init__.py +0 -0
- {webscout-7.0 → webscout-7.1}/webstoken/classifier.py +0 -0
- {webscout-7.0 → webscout-7.1}/webstoken/keywords.py +0 -0
- {webscout-7.0 → webscout-7.1}/webstoken/language.py +0 -0
- {webscout-7.0 → webscout-7.1}/webstoken/ner.py +0 -0
- {webscout-7.0 → webscout-7.1}/webstoken/normalizer.py +0 -0
- {webscout-7.0 → webscout-7.1}/webstoken/processor.py +0 -0
- {webscout-7.0 → webscout-7.1}/webstoken/sentiment.py +0 -0
- {webscout-7.0 → webscout-7.1}/webstoken/stemmer.py +0 -0
- {webscout-7.0 → webscout-7.1}/webstoken/tagger.py +0 -0
- {webscout-7.0 → webscout-7.1}/webstoken/tokenizer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: webscout
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.1
|
|
4
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
5
|
Author: OEvortex
|
|
6
6
|
Author-email: helpingai5@gmail.com
|
|
@@ -55,7 +55,6 @@ Requires-Dist: primp
|
|
|
55
55
|
Requires-Dist: pyreqwest_impersonate
|
|
56
56
|
Requires-Dist: gradio_client
|
|
57
57
|
Requires-Dist: psutil
|
|
58
|
-
Requires-Dist: yaspin
|
|
59
58
|
Requires-Dist: pygetwindow
|
|
60
59
|
Provides-Extra: dev
|
|
61
60
|
Requires-Dist: ruff>=0.1.6; extra == "dev"
|
|
@@ -78,42 +77,35 @@ Dynamic: requires-dist
|
|
|
78
77
|
Dynamic: requires-python
|
|
79
78
|
Dynamic: summary
|
|
80
79
|
|
|
81
|
-
<div align="center">
|
|
82
|
-
<!-- Replace `#` with your actual links -->
|
|
83
|
-
|
|
84
|
-
<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>
|
|
85
|
-
<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>
|
|
86
|
-
<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>
|
|
87
|
-
<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>
|
|
88
|
-
</div>
|
|
89
|
-
|
|
90
|
-
<div align="center">
|
|
91
|
-
<!-- Replace `#` with your actual links -->
|
|
92
|
-
<a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
|
|
93
|
-
</div>
|
|
94
|
-
<div align="center">
|
|
95
|
-
<a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
|
|
96
|
-
</div>
|
|
97
|
-
<div align="center">
|
|
98
|
-
<a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
|
|
99
|
-
</div>
|
|
100
80
|
|
|
81
|
+
[](https://t.me/official_helpingai)
|
|
82
|
+
[](https://www.instagram.com/oevortex/)
|
|
83
|
+
[](https://www.linkedin.com/in/oe-vortex-29a407265/)
|
|
84
|
+
[](https://buymeacoffee.com/oevortex)
|
|
101
85
|
|
|
102
86
|
|
|
103
|
-
|
|
104
|
-
|
|
87
|
+
<div align="center">
|
|
88
|
+
<a href="https://youtube.com/@OEvortex">▶️ Vortex’s YouTube Channel</a> •
|
|
89
|
+
<a href="https://youtube.com/@devsdocode">▶️ Devs Do Code’s YouTube Channel</a> •
|
|
90
|
+
<a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder’s Telegram</a>
|
|
105
91
|
</div>
|
|
106
92
|
|
|
93
|
+
---
|
|
94
|
+
|
|
107
95
|
<p align="center">
|
|
108
|
-
|
|
96
|
+
<strong>Webscout</strong> is the all-in-one search and AI toolkit you need.
|
|
97
|
+
<br>
|
|
98
|
+
Discover insights with Google, DuckDuckGo, and Phind; access cutting-edge AI models; transcribe YouTube videos; generate temporary emails and phone numbers; perform text-to-speech conversions; run offline language models; and much more!
|
|
109
99
|
</p>
|
|
110
100
|
|
|
111
101
|
<div align="center">
|
|
112
102
|
<img src="https://img.shields.io/badge/WebScout-API-blue?style=for-the-badge&logo=WebScout" alt="WebScout API Badge">
|
|
113
|
-
<a href="#"><img
|
|
114
|
-
<a href="https://pepy.tech/project/webscout"><img
|
|
103
|
+
<a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout" alt="Python Version"></a>
|
|
104
|
+
<a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout" alt="Downloads"></a>
|
|
115
105
|
</div>
|
|
116
106
|
|
|
107
|
+
---
|
|
108
|
+
|
|
117
109
|
## 🚀 Features
|
|
118
110
|
* **Comprehensive Search:** Leverage Google, DuckDuckGo for diverse search results.
|
|
119
111
|
* **AI Powerhouse:** Access and interact with various AI models, including OpenAI, Cohere, and more.
|
|
@@ -1,39 +1,32 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
<!-- Replace `#` with your actual links -->
|
|
3
|
-
|
|
4
|
-
<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>
|
|
5
|
-
<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>
|
|
6
|
-
<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>
|
|
7
|
-
<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>
|
|
8
|
-
</div>
|
|
9
|
-
|
|
10
|
-
<div align="center">
|
|
11
|
-
<!-- Replace `#` with your actual links -->
|
|
12
|
-
<a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
|
|
13
|
-
</div>
|
|
14
|
-
<div align="center">
|
|
15
|
-
<a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
|
|
16
|
-
</div>
|
|
17
|
-
<div align="center">
|
|
18
|
-
<a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
|
|
19
|
-
</div>
|
|
20
1
|
|
|
2
|
+
[](https://t.me/official_helpingai)
|
|
3
|
+
[](https://www.instagram.com/oevortex/)
|
|
4
|
+
[](https://www.linkedin.com/in/oe-vortex-29a407265/)
|
|
5
|
+
[](https://buymeacoffee.com/oevortex)
|
|
21
6
|
|
|
22
7
|
|
|
23
|
-
|
|
24
|
-
|
|
8
|
+
<div align="center">
|
|
9
|
+
<a href="https://youtube.com/@OEvortex">▶️ Vortex’s YouTube Channel</a> •
|
|
10
|
+
<a href="https://youtube.com/@devsdocode">▶️ Devs Do Code’s YouTube Channel</a> •
|
|
11
|
+
<a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder’s Telegram</a>
|
|
25
12
|
</div>
|
|
26
13
|
|
|
14
|
+
---
|
|
15
|
+
|
|
27
16
|
<p align="center">
|
|
28
|
-
|
|
17
|
+
<strong>Webscout</strong> is the all-in-one search and AI toolkit you need.
|
|
18
|
+
<br>
|
|
19
|
+
Discover insights with Google, DuckDuckGo, and Phind; access cutting-edge AI models; transcribe YouTube videos; generate temporary emails and phone numbers; perform text-to-speech conversions; run offline language models; and much more!
|
|
29
20
|
</p>
|
|
30
21
|
|
|
31
22
|
<div align="center">
|
|
32
23
|
<img src="https://img.shields.io/badge/WebScout-API-blue?style=for-the-badge&logo=WebScout" alt="WebScout API Badge">
|
|
33
|
-
<a href="#"><img
|
|
34
|
-
<a href="https://pepy.tech/project/webscout"><img
|
|
24
|
+
<a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout" alt="Python Version"></a>
|
|
25
|
+
<a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout" alt="Downloads"></a>
|
|
35
26
|
</div>
|
|
36
27
|
|
|
28
|
+
---
|
|
29
|
+
|
|
37
30
|
## 🚀 Features
|
|
38
31
|
* **Comprehensive Search:** Leverage Google, DuckDuckGo for diverse search results.
|
|
39
32
|
* **AI Powerhouse:** Access and interact with various AI models, including OpenAI, Cohere, and more.
|
|
@@ -418,7 +418,7 @@ if __name__ == "__main__":
|
|
|
418
418
|
# Example usage
|
|
419
419
|
try:
|
|
420
420
|
# Initialize LLM with Llama 3 model
|
|
421
|
-
llm = LLM(model="
|
|
421
|
+
llm = LLM(model="mistralai/Mistral-Small-24B-Instruct-2501")
|
|
422
422
|
|
|
423
423
|
# Example messages
|
|
424
424
|
messages = [
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import requests
|
|
2
|
+
import json
|
|
3
|
+
from typing import Any, Dict, Optional, Union, Generator, List
|
|
4
|
+
from webscout.AIutel import Optimizers, Conversation, AwesomePrompts
|
|
5
|
+
from webscout.AIbase import Provider
|
|
6
|
+
from webscout import exceptions
|
|
7
|
+
from webscout.Litlogger import LitLogger, LogFormat, ColorScheme
|
|
8
|
+
|
|
9
|
+
class BLACKBOXAI(Provider):
|
|
10
|
+
"""
|
|
11
|
+
BlackboxAI provider for interacting with the Blackbox API.
|
|
12
|
+
Supports synchronous operations with multiple models.
|
|
13
|
+
"""
|
|
14
|
+
url = "https://api.blackbox.ai"
|
|
15
|
+
api_endpoint = "https://api.blackbox.ai/api/chat"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
AVAILABLE_MODELS = {
|
|
20
|
+
"deepseek-v3": "deepseek-ai/DeepSeek-V3",
|
|
21
|
+
"deepseek-r1": "deepseek-ai/DeepSeek-R1",
|
|
22
|
+
"deepseek-chat": "deepseek-ai/deepseek-llm-67b-chat",
|
|
23
|
+
"mixtral-small-28b": "mistralai/Mistral-Small-24B-Instruct-2501",
|
|
24
|
+
"dbrx-instruct": "databricks/dbrx-instruct",
|
|
25
|
+
"qwq-32b": "Qwen/QwQ-32B-Preview",
|
|
26
|
+
"hermes-2-dpo": "NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO",
|
|
27
|
+
"claude-3.5-sonnet": "claude-sonnet-3.5",
|
|
28
|
+
"gemini-1.5-flash": "gemini-1.5-flash",
|
|
29
|
+
"gemini-1.5-pro": "gemini-pro",
|
|
30
|
+
"gemini-2.0-flash": "Gemini-Flash-2.0",
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
def __init__(
|
|
34
|
+
self,
|
|
35
|
+
is_conversation: bool = True,
|
|
36
|
+
max_tokens: int = 8000,
|
|
37
|
+
timeout: int = 30,
|
|
38
|
+
intro: str = None,
|
|
39
|
+
filepath: str = None,
|
|
40
|
+
update_file: bool = True,
|
|
41
|
+
proxies: dict = {},
|
|
42
|
+
history_offset: int = 10250,
|
|
43
|
+
act: str = None,
|
|
44
|
+
model: str = "deepseek-ai/DeepSeek-V3",
|
|
45
|
+
logging: bool = False,
|
|
46
|
+
system_message: str = "You are a helpful AI assistant."
|
|
47
|
+
):
|
|
48
|
+
"""Initialize BlackboxAI with enhanced configuration options."""
|
|
49
|
+
self.logger = LitLogger(
|
|
50
|
+
name="BlackboxAI",
|
|
51
|
+
format=LogFormat.MODERN_EMOJI,
|
|
52
|
+
color_scheme=ColorScheme.CYBERPUNK
|
|
53
|
+
) if logging else None
|
|
54
|
+
|
|
55
|
+
self.session = requests.Session()
|
|
56
|
+
self.max_tokens_to_sample = max_tokens
|
|
57
|
+
self.is_conversation = is_conversation
|
|
58
|
+
self.timeout = timeout
|
|
59
|
+
self.last_response = {}
|
|
60
|
+
self.model = self.get_model(model)
|
|
61
|
+
self.system_message = system_message
|
|
62
|
+
|
|
63
|
+
self.headers = {
|
|
64
|
+
"Content-Type": "application/json",
|
|
65
|
+
"Accept": "*/*",
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if self.logger:
|
|
69
|
+
self.logger.info(f"Initializing BlackboxAI with model: {self.model}")
|
|
70
|
+
|
|
71
|
+
self.__available_optimizers = (
|
|
72
|
+
method for method in dir(Optimizers)
|
|
73
|
+
if callable(getattr(Optimizers, method)) and not method.startswith("__")
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
Conversation.intro = (
|
|
77
|
+
AwesomePrompts().get_act(
|
|
78
|
+
act, raise_not_found=True, default=None, case_insensitive=True
|
|
79
|
+
)
|
|
80
|
+
if act
|
|
81
|
+
else intro or Conversation.intro
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
self.conversation = Conversation(
|
|
85
|
+
is_conversation, self.max_tokens_to_sample, filepath, update_file
|
|
86
|
+
)
|
|
87
|
+
self.conversation.history_offset = history_offset
|
|
88
|
+
self.session.proxies = proxies
|
|
89
|
+
|
|
90
|
+
@classmethod
|
|
91
|
+
def get_model(self, model: str) -> str:
|
|
92
|
+
"""Resolve model name from alias"""
|
|
93
|
+
if model in self.AVAILABLE_MODELS:
|
|
94
|
+
return self.AVAILABLE_MODELS[model]
|
|
95
|
+
raise ValueError(f"Unknown model: {model}. Available models: {', '.join(self.AVAILABLE_MODELS)}")
|
|
96
|
+
|
|
97
|
+
def _make_request(
|
|
98
|
+
self,
|
|
99
|
+
messages: List[Dict[str, str]],
|
|
100
|
+
stream: bool = False
|
|
101
|
+
) -> Generator[str, None, None]:
|
|
102
|
+
"""Make synchronous request to BlackboxAI API."""
|
|
103
|
+
if self.logger:
|
|
104
|
+
self.logger.debug(f"Making request with {len(messages)} messages")
|
|
105
|
+
|
|
106
|
+
data = {
|
|
107
|
+
"messages": messages,
|
|
108
|
+
"model": self.model,
|
|
109
|
+
"max_tokens": self.max_tokens_to_sample
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
try:
|
|
113
|
+
response = self.session.post(
|
|
114
|
+
self.api_endpoint,
|
|
115
|
+
json=data,
|
|
116
|
+
headers=self.headers,
|
|
117
|
+
stream=stream,
|
|
118
|
+
timeout=self.timeout
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
if not response.ok:
|
|
122
|
+
error_msg = f"API request failed: {response.status_code} - {response.text}"
|
|
123
|
+
if self.logger:
|
|
124
|
+
self.logger.error(error_msg)
|
|
125
|
+
raise exceptions.FailedToGenerateResponseError(error_msg)
|
|
126
|
+
|
|
127
|
+
if stream:
|
|
128
|
+
for line in response.iter_lines(decode_unicode=True):
|
|
129
|
+
if line:
|
|
130
|
+
yield line
|
|
131
|
+
else:
|
|
132
|
+
yield response.text
|
|
133
|
+
|
|
134
|
+
except requests.exceptions.RequestException as e:
|
|
135
|
+
if self.logger:
|
|
136
|
+
self.logger.error(f"Request failed: {str(e)}")
|
|
137
|
+
raise exceptions.ProviderConnectionError(f"Connection error: {str(e)}")
|
|
138
|
+
|
|
139
|
+
def ask(
|
|
140
|
+
self,
|
|
141
|
+
prompt: str,
|
|
142
|
+
stream: bool = False,
|
|
143
|
+
raw: bool = False,
|
|
144
|
+
optimizer: str = None,
|
|
145
|
+
conversationally: bool = False,
|
|
146
|
+
) -> Union[Dict[str, str], Generator[Dict[str, str], None, None]]:
|
|
147
|
+
"""Send a prompt to BlackboxAI API and return the response."""
|
|
148
|
+
if self.logger:
|
|
149
|
+
self.logger.debug(f"Processing request [stream={stream}]")
|
|
150
|
+
|
|
151
|
+
conversation_prompt = self.conversation.gen_complete_prompt(prompt)
|
|
152
|
+
if optimizer:
|
|
153
|
+
if optimizer in self.__available_optimizers:
|
|
154
|
+
conversation_prompt = getattr(Optimizers, optimizer)(
|
|
155
|
+
conversation_prompt if conversationally else prompt
|
|
156
|
+
)
|
|
157
|
+
if self.logger:
|
|
158
|
+
self.logger.debug(f"Applied optimizer: {optimizer}")
|
|
159
|
+
else:
|
|
160
|
+
if self.logger:
|
|
161
|
+
self.logger.error(f"Invalid optimizer: {optimizer}")
|
|
162
|
+
raise ValueError(f"Optimizer is not one of {self.__available_optimizers}")
|
|
163
|
+
|
|
164
|
+
messages = [
|
|
165
|
+
{"role": "system", "content": self.system_message},
|
|
166
|
+
{"role": "user", "content": conversation_prompt}
|
|
167
|
+
]
|
|
168
|
+
|
|
169
|
+
def for_stream():
|
|
170
|
+
for text in self._make_request(messages, stream=True):
|
|
171
|
+
yield {"text": text}
|
|
172
|
+
|
|
173
|
+
def for_non_stream():
|
|
174
|
+
response_text = next(self._make_request(messages, stream=False))
|
|
175
|
+
self.last_response = {"text": response_text}
|
|
176
|
+
return self.last_response
|
|
177
|
+
|
|
178
|
+
return for_stream() if stream else for_non_stream()
|
|
179
|
+
|
|
180
|
+
def chat(
|
|
181
|
+
self,
|
|
182
|
+
prompt: str,
|
|
183
|
+
stream: bool = False,
|
|
184
|
+
optimizer: str = None,
|
|
185
|
+
conversationally: bool = False,
|
|
186
|
+
) -> Union[str, Generator[str, None, None]]:
|
|
187
|
+
"""Generate response as string."""
|
|
188
|
+
if self.logger:
|
|
189
|
+
self.logger.debug(f"Chat request initiated [stream={stream}]")
|
|
190
|
+
|
|
191
|
+
def for_stream():
|
|
192
|
+
for response in self.ask(
|
|
193
|
+
prompt,
|
|
194
|
+
stream=True,
|
|
195
|
+
optimizer=optimizer,
|
|
196
|
+
conversationally=conversationally
|
|
197
|
+
):
|
|
198
|
+
yield self.get_message(response)
|
|
199
|
+
|
|
200
|
+
def for_non_stream():
|
|
201
|
+
return self.get_message(
|
|
202
|
+
self.ask(
|
|
203
|
+
prompt,
|
|
204
|
+
stream=False,
|
|
205
|
+
optimizer=optimizer,
|
|
206
|
+
conversationally=conversationally,
|
|
207
|
+
)
|
|
208
|
+
)
|
|
209
|
+
|
|
210
|
+
return for_stream() if stream else for_non_stream()
|
|
211
|
+
|
|
212
|
+
def get_message(self, response: Dict[str, Any]) -> str:
|
|
213
|
+
"""Extract message from response dictionary."""
|
|
214
|
+
assert isinstance(response, dict), "Response should be of dict data-type only"
|
|
215
|
+
return response["text"].replace('\\n', '\n').replace('\\n\\n', '\n\n')
|
|
216
|
+
|
|
217
|
+
if __name__ == "__main__":
|
|
218
|
+
from rich import print
|
|
219
|
+
|
|
220
|
+
# Example usage
|
|
221
|
+
ai = BLACKBOXAI(model="deepseek-v3", logging=True)
|
|
222
|
+
|
|
223
|
+
try:
|
|
224
|
+
print("Non-streaming response:")
|
|
225
|
+
response = ai.chat("What is quantum computing?")
|
|
226
|
+
print(response)
|
|
227
|
+
|
|
228
|
+
except Exception as e:
|
|
229
|
+
print(f"Error: {str(e)}")
|