webscout 8.2.7__tar.gz → 8.2.8__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-8.2.8/LEGAL_NOTICE.md +152 -0
- webscout-8.2.8/MANIFEST.in +12 -0
- {webscout-8.2.7/webscout.egg-info → webscout-8.2.8}/PKG-INFO +115 -60
- {webscout-8.2.7 → webscout-8.2.8}/README.md +109 -55
- webscout-8.2.8/changelog.md +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/pyproject.toml +121 -112
- {webscout-8.2.7 → webscout-8.2.8}/webscout/AIauto.py +1 -1
- {webscout-8.2.7 → webscout-8.2.8}/webscout/AIutel.py +298 -249
- webscout-8.2.8/webscout/Extra/Act.md +309 -0
- webscout-8.2.8/webscout/Extra/GitToolkit/__init__.py +10 -0
- webscout-8.2.8/webscout/Extra/GitToolkit/gitapi/README.md +110 -0
- webscout-8.2.8/webscout/Extra/GitToolkit/gitapi/__init__.py +12 -0
- webscout-8.2.8/webscout/Extra/GitToolkit/gitapi/repository.py +195 -0
- webscout-8.2.8/webscout/Extra/GitToolkit/gitapi/user.py +96 -0
- webscout-8.2.8/webscout/Extra/GitToolkit/gitapi/utils.py +62 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/README.md +375 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/YTdownloader.py +957 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/__init__.py +3 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/transcriber.py +476 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/README.md +44 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/__init__.py +6 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/channel.py +307 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/errors.py +13 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/extras.py +118 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/https.py +88 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/patterns.py +61 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/playlist.py +59 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/pool.py +8 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/query.py +40 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/stream.py +63 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/utils.py +62 -0
- webscout-8.2.8/webscout/Extra/YTToolkit/ytapi/video.py +232 -0
- webscout-8.2.8/webscout/Extra/__init__.py +7 -0
- webscout-8.2.8/webscout/Extra/autocoder/__init__.py +9 -0
- webscout-8.2.8/webscout/Extra/autocoder/autocoder.py +1105 -0
- webscout-8.2.8/webscout/Extra/autocoder/autocoder_utiles.py +332 -0
- webscout-8.2.8/webscout/Extra/gguf.md +430 -0
- webscout-8.2.8/webscout/Extra/gguf.py +684 -0
- webscout-8.2.8/webscout/Extra/tempmail/README.md +488 -0
- webscout-8.2.8/webscout/Extra/tempmail/__init__.py +28 -0
- webscout-8.2.8/webscout/Extra/tempmail/async_utils.py +141 -0
- webscout-8.2.8/webscout/Extra/tempmail/base.py +161 -0
- webscout-8.2.8/webscout/Extra/tempmail/cli.py +187 -0
- webscout-8.2.8/webscout/Extra/tempmail/emailnator.py +84 -0
- webscout-8.2.8/webscout/Extra/tempmail/mail_tm.py +361 -0
- webscout-8.2.8/webscout/Extra/tempmail/temp_mail_io.py +292 -0
- webscout-8.2.8/webscout/Extra/weather.md +281 -0
- webscout-8.2.8/webscout/Extra/weather.py +194 -0
- webscout-8.2.8/webscout/Extra/weather_ascii.py +76 -0
- webscout-8.2.8/webscout/Litlogger/Readme.md +175 -0
- webscout-8.2.8/webscout/Litlogger/__init__.py +67 -0
- webscout-8.2.8/webscout/Litlogger/core/__init__.py +6 -0
- webscout-8.2.8/webscout/Litlogger/core/level.py +23 -0
- webscout-8.2.8/webscout/Litlogger/core/logger.py +165 -0
- webscout-8.2.8/webscout/Litlogger/handlers/__init__.py +12 -0
- webscout-8.2.8/webscout/Litlogger/handlers/console.py +33 -0
- webscout-8.2.8/webscout/Litlogger/handlers/file.py +143 -0
- webscout-8.2.8/webscout/Litlogger/handlers/network.py +173 -0
- webscout-8.2.8/webscout/Litlogger/styles/__init__.py +7 -0
- webscout-8.2.8/webscout/Litlogger/styles/colors.py +249 -0
- webscout-8.2.8/webscout/Litlogger/styles/formats.py +458 -0
- webscout-8.2.8/webscout/Litlogger/styles/text.py +87 -0
- webscout-8.2.8/webscout/Litlogger/utils/__init__.py +6 -0
- webscout-8.2.8/webscout/Litlogger/utils/detectors.py +153 -0
- webscout-8.2.8/webscout/Litlogger/utils/formatters.py +200 -0
- webscout-8.2.8/webscout/Provider/AI21.py +177 -0
- webscout-8.2.8/webscout/Provider/AISEARCH/DeepFind.py +254 -0
- webscout-8.2.8/webscout/Provider/AISEARCH/Perplexity.py +359 -0
- webscout-8.2.8/webscout/Provider/AISEARCH/README.md +279 -0
- webscout-8.2.8/webscout/Provider/AISEARCH/__init__.py +9 -0
- webscout-8.2.8/webscout/Provider/AISEARCH/felo_search.py +228 -0
- webscout-8.2.8/webscout/Provider/AISEARCH/genspark_search.py +350 -0
- webscout-8.2.8/webscout/Provider/AISEARCH/hika_search.py +198 -0
- webscout-8.2.8/webscout/Provider/AISEARCH/iask_search.py +436 -0
- webscout-8.2.8/webscout/Provider/AISEARCH/monica_search.py +246 -0
- webscout-8.2.8/webscout/Provider/AISEARCH/scira_search.py +324 -0
- webscout-8.2.8/webscout/Provider/AISEARCH/webpilotai_search.py +281 -0
- webscout-8.2.8/webscout/Provider/Aitopia.py +316 -0
- webscout-8.2.8/webscout/Provider/AllenAI.py +440 -0
- webscout-8.2.8/webscout/Provider/Andi.py +228 -0
- webscout-8.2.8/webscout/Provider/Blackboxai.py +673 -0
- webscout-8.2.8/webscout/Provider/ChatGPTClone.py +237 -0
- webscout-8.2.8/webscout/Provider/ChatGPTGratis.py +194 -0
- webscout-8.2.8/webscout/Provider/ChatSandbox.py +342 -0
- webscout-8.2.8/webscout/Provider/Cloudflare.py +324 -0
- webscout-8.2.8/webscout/Provider/Cohere.py +208 -0
- webscout-8.2.8/webscout/Provider/Deepinfra.py +340 -0
- webscout-8.2.8/webscout/Provider/ExaAI.py +261 -0
- webscout-8.2.8/webscout/Provider/ExaChat.py +358 -0
- webscout-8.2.8/webscout/Provider/Flowith.py +217 -0
- webscout-8.2.8/webscout/Provider/FreeGemini.py +250 -0
- webscout-8.2.8/webscout/Provider/Gemini.py +169 -0
- webscout-8.2.8/webscout/Provider/GithubChat.py +370 -0
- webscout-8.2.8/webscout/Provider/GizAI.py +295 -0
- webscout-8.2.8/webscout/Provider/Glider.py +225 -0
- webscout-8.2.8/webscout/Provider/Groq.py +801 -0
- webscout-8.2.8/webscout/Provider/HF_space/__init__.py +0 -0
- webscout-8.2.8/webscout/Provider/HF_space/qwen_qwen2.py +206 -0
- webscout-8.2.8/webscout/Provider/HeckAI.py +285 -0
- webscout-8.2.8/webscout/Provider/HuggingFaceChat.py +469 -0
- webscout-8.2.8/webscout/Provider/Hunyuan.py +283 -0
- webscout-8.2.8/webscout/Provider/Jadve.py +291 -0
- webscout-8.2.8/webscout/Provider/Koboldai.py +384 -0
- webscout-8.2.8/webscout/Provider/LambdaChat.py +411 -0
- webscout-8.2.8/webscout/Provider/Llama3.py +259 -0
- webscout-8.2.8/webscout/Provider/MCPCore.py +315 -0
- webscout-8.2.8/webscout/Provider/Marcus.py +198 -0
- webscout-8.2.8/webscout/Provider/Nemotron.py +218 -0
- webscout-8.2.8/webscout/Provider/Netwrck.py +270 -0
- webscout-8.2.8/webscout/Provider/OLLAMA.py +396 -0
- webscout-8.2.8/webscout/Provider/OPENAI/BLACKBOXAI.py +735 -0
- webscout-8.2.8/webscout/Provider/OPENAI/Cloudflare.py +378 -0
- webscout-8.2.8/webscout/Provider/OPENAI/FreeGemini.py +282 -0
- webscout-8.2.8/webscout/Provider/OPENAI/NEMOTRON.py +244 -0
- webscout-8.2.8/webscout/Provider/OPENAI/README.md +1253 -0
- webscout-8.2.8/webscout/Provider/OPENAI/__init__.py +36 -0
- webscout-8.2.8/webscout/Provider/OPENAI/ai4chat.py +293 -0
- webscout-8.2.8/webscout/Provider/OPENAI/api.py +810 -0
- webscout-8.2.8/webscout/Provider/OPENAI/base.py +249 -0
- webscout-8.2.8/webscout/Provider/OPENAI/c4ai.py +373 -0
- webscout-8.2.8/webscout/Provider/OPENAI/chatgpt.py +556 -0
- webscout-8.2.8/webscout/Provider/OPENAI/chatgptclone.py +488 -0
- webscout-8.2.8/webscout/Provider/OPENAI/chatsandbox.py +172 -0
- webscout-8.2.8/webscout/Provider/OPENAI/deepinfra.py +319 -0
- webscout-8.2.8/webscout/Provider/OPENAI/e2b.py +1356 -0
- webscout-8.2.8/webscout/Provider/OPENAI/exaai.py +411 -0
- webscout-8.2.8/webscout/Provider/OPENAI/exachat.py +443 -0
- webscout-8.2.8/webscout/Provider/OPENAI/flowith.py +162 -0
- webscout-8.2.8/webscout/Provider/OPENAI/freeaichat.py +359 -0
- webscout-8.2.8/webscout/Provider/OPENAI/glider.py +323 -0
- webscout-8.2.8/webscout/Provider/OPENAI/groq.py +361 -0
- webscout-8.2.8/webscout/Provider/OPENAI/heckai.py +307 -0
- webscout-8.2.8/webscout/Provider/OPENAI/llmchatco.py +335 -0
- webscout-8.2.8/webscout/Provider/OPENAI/mcpcore.py +383 -0
- webscout-8.2.8/webscout/Provider/OPENAI/multichat.py +376 -0
- webscout-8.2.8/webscout/Provider/OPENAI/netwrck.py +356 -0
- webscout-8.2.8/webscout/Provider/OPENAI/opkfc.py +496 -0
- webscout-8.2.8/webscout/Provider/OPENAI/scirachat.py +471 -0
- webscout-8.2.8/webscout/Provider/OPENAI/sonus.py +303 -0
- webscout-8.2.8/webscout/Provider/OPENAI/standardinput.py +433 -0
- webscout-8.2.8/webscout/Provider/OPENAI/textpollinations.py +339 -0
- webscout-8.2.8/webscout/Provider/OPENAI/toolbaz.py +413 -0
- webscout-8.2.8/webscout/Provider/OPENAI/typefully.py +355 -0
- webscout-8.2.8/webscout/Provider/OPENAI/typegpt.py +358 -0
- webscout-8.2.8/webscout/Provider/OPENAI/uncovrAI.py +462 -0
- webscout-8.2.8/webscout/Provider/OPENAI/utils.py +307 -0
- webscout-8.2.8/webscout/Provider/OPENAI/venice.py +425 -0
- webscout-8.2.8/webscout/Provider/OPENAI/wisecat.py +381 -0
- webscout-8.2.8/webscout/Provider/OPENAI/writecream.py +163 -0
- webscout-8.2.8/webscout/Provider/OPENAI/x0gpt.py +378 -0
- webscout-8.2.8/webscout/Provider/OPENAI/yep.py +356 -0
- webscout-8.2.8/webscout/Provider/OpenGPT.py +209 -0
- webscout-8.2.8/webscout/Provider/Openai.py +496 -0
- webscout-8.2.8/webscout/Provider/PI.py +429 -0
- webscout-8.2.8/webscout/Provider/Perplexitylabs.py +415 -0
- webscout-8.2.8/webscout/Provider/QwenLM.py +254 -0
- webscout-8.2.8/webscout/Provider/Reka.py +214 -0
- webscout-8.2.8/webscout/Provider/StandardInput.py +290 -0
- webscout-8.2.8/webscout/Provider/TTI/AiForce/README.md +159 -0
- webscout-8.2.8/webscout/Provider/TTI/AiForce/__init__.py +22 -0
- webscout-8.2.8/webscout/Provider/TTI/AiForce/async_aiforce.py +224 -0
- webscout-8.2.8/webscout/Provider/TTI/AiForce/sync_aiforce.py +245 -0
- webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/README.md +99 -0
- webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/__init__.py +9 -0
- webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +181 -0
- webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +180 -0
- webscout-8.2.8/webscout/Provider/TTI/ImgSys/README.md +174 -0
- webscout-8.2.8/webscout/Provider/TTI/ImgSys/__init__.py +23 -0
- webscout-8.2.8/webscout/Provider/TTI/ImgSys/async_imgsys.py +202 -0
- webscout-8.2.8/webscout/Provider/TTI/ImgSys/sync_imgsys.py +195 -0
- webscout-8.2.8/webscout/Provider/TTI/MagicStudio/README.md +101 -0
- webscout-8.2.8/webscout/Provider/TTI/MagicStudio/__init__.py +2 -0
- webscout-8.2.8/webscout/Provider/TTI/MagicStudio/async_magicstudio.py +111 -0
- webscout-8.2.8/webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +109 -0
- webscout-8.2.8/webscout/Provider/TTI/Nexra/README.md +155 -0
- webscout-8.2.8/webscout/Provider/TTI/Nexra/__init__.py +22 -0
- webscout-8.2.8/webscout/Provider/TTI/Nexra/async_nexra.py +286 -0
- webscout-8.2.8/webscout/Provider/TTI/Nexra/sync_nexra.py +258 -0
- webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/README.md +146 -0
- webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/__init__.py +23 -0
- webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/async_pollinations.py +311 -0
- webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +265 -0
- webscout-8.2.8/webscout/Provider/TTI/README.md +128 -0
- webscout-8.2.8/webscout/Provider/TTI/__init__.py +12 -0
- webscout-8.2.8/webscout/Provider/TTI/aiarta/README.md +134 -0
- webscout-8.2.8/webscout/Provider/TTI/aiarta/__init__.py +2 -0
- webscout-8.2.8/webscout/Provider/TTI/aiarta/async_aiarta.py +482 -0
- webscout-8.2.8/webscout/Provider/TTI/aiarta/sync_aiarta.py +440 -0
- webscout-8.2.8/webscout/Provider/TTI/artbit/README.md +100 -0
- webscout-8.2.8/webscout/Provider/TTI/artbit/__init__.py +22 -0
- webscout-8.2.8/webscout/Provider/TTI/artbit/async_artbit.py +155 -0
- webscout-8.2.8/webscout/Provider/TTI/artbit/sync_artbit.py +148 -0
- webscout-8.2.8/webscout/Provider/TTI/fastflux/README.md +129 -0
- webscout-8.2.8/webscout/Provider/TTI/fastflux/__init__.py +22 -0
- webscout-8.2.8/webscout/Provider/TTI/fastflux/async_fastflux.py +261 -0
- webscout-8.2.8/webscout/Provider/TTI/fastflux/sync_fastflux.py +252 -0
- webscout-8.2.8/webscout/Provider/TTI/huggingface/README.md +114 -0
- webscout-8.2.8/webscout/Provider/TTI/huggingface/__init__.py +22 -0
- webscout-8.2.8/webscout/Provider/TTI/huggingface/async_huggingface.py +199 -0
- webscout-8.2.8/webscout/Provider/TTI/huggingface/sync_huggingface.py +195 -0
- webscout-8.2.8/webscout/Provider/TTI/piclumen/README.md +161 -0
- webscout-8.2.8/webscout/Provider/TTI/piclumen/__init__.py +23 -0
- webscout-8.2.8/webscout/Provider/TTI/piclumen/async_piclumen.py +268 -0
- webscout-8.2.8/webscout/Provider/TTI/piclumen/sync_piclumen.py +233 -0
- webscout-8.2.8/webscout/Provider/TTI/pixelmuse/README.md +79 -0
- webscout-8.2.8/webscout/Provider/TTI/pixelmuse/__init__.py +4 -0
- webscout-8.2.8/webscout/Provider/TTI/pixelmuse/async_pixelmuse.py +249 -0
- webscout-8.2.8/webscout/Provider/TTI/pixelmuse/sync_pixelmuse.py +182 -0
- webscout-8.2.8/webscout/Provider/TTI/talkai/README.md +139 -0
- webscout-8.2.8/webscout/Provider/TTI/talkai/__init__.py +4 -0
- webscout-8.2.8/webscout/Provider/TTI/talkai/async_talkai.py +229 -0
- webscout-8.2.8/webscout/Provider/TTI/talkai/sync_talkai.py +207 -0
- webscout-8.2.8/webscout/Provider/TTS/README.md +192 -0
- webscout-8.2.8/webscout/Provider/TTS/__init__.py +9 -0
- webscout-8.2.8/webscout/Provider/TTS/base.py +159 -0
- webscout-8.2.8/webscout/Provider/TTS/deepgram.py +156 -0
- webscout-8.2.8/webscout/Provider/TTS/elevenlabs.py +111 -0
- webscout-8.2.8/webscout/Provider/TTS/gesserit.py +128 -0
- webscout-8.2.8/webscout/Provider/TTS/murfai.py +113 -0
- webscout-8.2.8/webscout/Provider/TTS/parler.py +111 -0
- webscout-8.2.8/webscout/Provider/TTS/speechma.py +580 -0
- webscout-8.2.8/webscout/Provider/TTS/sthir.py +94 -0
- webscout-8.2.8/webscout/Provider/TTS/streamElements.py +333 -0
- webscout-8.2.8/webscout/Provider/TTS/utils.py +280 -0
- webscout-8.2.8/webscout/Provider/TeachAnything.py +229 -0
- webscout-8.2.8/webscout/Provider/TextPollinationsAI.py +308 -0
- webscout-8.2.8/webscout/Provider/TwoAI.py +280 -0
- webscout-8.2.8/webscout/Provider/TypliAI.py +305 -0
- webscout-8.2.8/webscout/Provider/UNFINISHED/ChatHub.py +209 -0
- webscout-8.2.8/webscout/Provider/UNFINISHED/Youchat.py +330 -0
- webscout-8.2.8/webscout/Provider/UNFINISHED/liner_api_request.py +263 -0
- webscout-8.2.8/webscout/Provider/UNFINISHED/oivscode.py +351 -0
- webscout-8.2.8/webscout/Provider/UNFINISHED/test_lmarena.py +119 -0
- webscout-8.2.8/webscout/Provider/Venice.py +258 -0
- webscout-8.2.8/webscout/Provider/VercelAI.py +253 -0
- webscout-8.2.8/webscout/Provider/WiseCat.py +233 -0
- webscout-8.2.8/webscout/Provider/WrDoChat.py +370 -0
- webscout-8.2.8/webscout/Provider/Writecream.py +246 -0
- webscout-8.2.8/webscout/Provider/WritingMate.py +269 -0
- webscout-8.2.8/webscout/Provider/__init__.py +172 -0
- webscout-8.2.8/webscout/Provider/ai4chat.py +149 -0
- webscout-8.2.8/webscout/Provider/akashgpt.py +335 -0
- webscout-8.2.8/webscout/Provider/asksteve.py +220 -0
- webscout-8.2.8/webscout/Provider/cerebras.py +290 -0
- webscout-8.2.8/webscout/Provider/chatglm.py +215 -0
- webscout-8.2.8/webscout/Provider/cleeai.py +213 -0
- webscout-8.2.8/webscout/Provider/copilot.py +425 -0
- webscout-8.2.8/webscout/Provider/elmo.py +283 -0
- webscout-8.2.8/webscout/Provider/freeaichat.py +285 -0
- webscout-8.2.8/webscout/Provider/geminiapi.py +208 -0
- webscout-8.2.8/webscout/Provider/granite.py +235 -0
- webscout-8.2.8/webscout/Provider/hermes.py +266 -0
- webscout-8.2.8/webscout/Provider/julius.py +223 -0
- webscout-8.2.8/webscout/Provider/koala.py +170 -0
- webscout-8.2.8/webscout/Provider/learnfastai.py +325 -0
- webscout-8.2.8/webscout/Provider/llama3mitril.py +215 -0
- webscout-8.2.8/webscout/Provider/llmchat.py +258 -0
- webscout-8.2.8/webscout/Provider/llmchatco.py +306 -0
- webscout-8.2.8/webscout/Provider/lmarena.py +198 -0
- webscout-8.2.8/webscout/Provider/meta.py +801 -0
- webscout-8.2.8/webscout/Provider/multichat.py +364 -0
- webscout-8.2.8/webscout/Provider/samurai.py +223 -0
- webscout-8.2.8/webscout/Provider/scira_chat.py +299 -0
- webscout-8.2.8/webscout/Provider/scnet.py +243 -0
- webscout-8.2.8/webscout/Provider/searchchat.py +292 -0
- webscout-8.2.8/webscout/Provider/sonus.py +258 -0
- webscout-8.2.8/webscout/Provider/talkai.py +194 -0
- webscout-8.2.8/webscout/Provider/toolbaz.py +353 -0
- webscout-8.2.8/webscout/Provider/turboseek.py +266 -0
- webscout-8.2.8/webscout/Provider/typefully.py +202 -0
- webscout-8.2.8/webscout/Provider/typegpt.py +289 -0
- webscout-8.2.8/webscout/Provider/uncovr.py +368 -0
- webscout-8.2.8/webscout/Provider/x0gpt.py +299 -0
- webscout-8.2.8/webscout/Provider/yep.py +389 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/__init__.py +4 -2
- {webscout-8.2.7 → webscout-8.2.8}/webscout/cli.py +3 -28
- {webscout-8.2.7 → webscout-8.2.8}/webscout/conversation.py +35 -35
- webscout-8.2.8/webscout/litagent/Readme.md +276 -0
- webscout-8.2.8/webscout/litagent/__init__.py +29 -0
- webscout-8.2.8/webscout/litagent/agent.py +455 -0
- webscout-8.2.8/webscout/litagent/constants.py +60 -0
- webscout-8.2.8/webscout/litprinter/__init__.py +59 -0
- webscout-8.2.8/webscout/scout/README.md +402 -0
- webscout-8.2.8/webscout/scout/__init__.py +8 -0
- webscout-8.2.8/webscout/scout/core/__init__.py +7 -0
- webscout-8.2.8/webscout/scout/core/crawler.py +140 -0
- webscout-8.2.8/webscout/scout/core/scout.py +568 -0
- webscout-8.2.8/webscout/scout/core/search_result.py +96 -0
- webscout-8.2.8/webscout/scout/core/text_analyzer.py +63 -0
- webscout-8.2.8/webscout/scout/core/text_utils.py +277 -0
- webscout-8.2.8/webscout/scout/core/web_analyzer.py +52 -0
- webscout-8.2.8/webscout/scout/element.py +460 -0
- webscout-8.2.8/webscout/scout/parsers/__init__.py +69 -0
- webscout-8.2.8/webscout/scout/parsers/html5lib_parser.py +172 -0
- webscout-8.2.8/webscout/scout/parsers/html_parser.py +236 -0
- webscout-8.2.8/webscout/scout/parsers/lxml_parser.py +178 -0
- webscout-8.2.8/webscout/scout/utils.py +37 -0
- webscout-8.2.8/webscout/swiftcli/Readme.md +323 -0
- webscout-8.2.8/webscout/swiftcli/__init__.py +95 -0
- webscout-8.2.8/webscout/swiftcli/core/__init__.py +7 -0
- webscout-8.2.8/webscout/swiftcli/core/cli.py +297 -0
- webscout-8.2.8/webscout/swiftcli/core/context.py +104 -0
- webscout-8.2.8/webscout/swiftcli/core/group.py +241 -0
- webscout-8.2.8/webscout/swiftcli/decorators/__init__.py +28 -0
- webscout-8.2.8/webscout/swiftcli/decorators/command.py +221 -0
- webscout-8.2.8/webscout/swiftcli/decorators/options.py +220 -0
- webscout-8.2.8/webscout/swiftcli/decorators/output.py +252 -0
- webscout-8.2.8/webscout/swiftcli/exceptions.py +21 -0
- webscout-8.2.8/webscout/swiftcli/plugins/__init__.py +9 -0
- webscout-8.2.8/webscout/swiftcli/plugins/base.py +135 -0
- webscout-8.2.8/webscout/swiftcli/plugins/manager.py +262 -0
- webscout-8.2.8/webscout/swiftcli/utils/__init__.py +59 -0
- webscout-8.2.8/webscout/swiftcli/utils/formatting.py +252 -0
- webscout-8.2.8/webscout/swiftcli/utils/parsing.py +267 -0
- webscout-8.2.8/webscout/version.py +2 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/webscout_search.py +2 -182
- {webscout-8.2.7 → webscout-8.2.8}/webscout/webscout_search_async.py +1 -179
- webscout-8.2.8/webscout/zeroart/README.md +89 -0
- webscout-8.2.8/webscout/zeroart/__init__.py +135 -0
- webscout-8.2.8/webscout/zeroart/base.py +66 -0
- webscout-8.2.8/webscout/zeroart/effects.py +101 -0
- webscout-8.2.8/webscout/zeroart/fonts.py +1239 -0
- {webscout-8.2.7 → webscout-8.2.8/webscout.egg-info}/PKG-INFO +115 -60
- webscout-8.2.8/webscout.egg-info/SOURCES.txt +668 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout.egg-info/requires.txt +6 -4
- webscout-8.2.7/webscout/version.py +0 -2
- webscout-8.2.7/webscout.egg-info/SOURCES.txt +0 -49
- {webscout-8.2.7 → webscout-8.2.8}/LICENSE.md +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/setup.cfg +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/AIbase.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/Bard.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/DWEBS.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/__main__.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/exceptions.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/models.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/optimizers.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/prompt_manager.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/tempid.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/update_checker.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/utils.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout/yep_search.py +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout.egg-info/dependency_links.txt +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout.egg-info/entry_points.txt +0 -0
- {webscout-8.2.7 → webscout-8.2.8}/webscout.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Legal Notice
|
|
2
|
+
|
|
3
|
+
> [!IMPORTANT]
|
|
4
|
+
> This repository is **not associated with or endorsed** by the providers of the APIs contained herein. This project is intended **for educational purposes only**. It is a personal project aimed at learning and exploration.
|
|
5
|
+
|
|
6
|
+
## Affiliation Disclaimer
|
|
7
|
+
|
|
8
|
+
This repository is not associated with or endorsed by any of the API providers mentioned herein, including but not limited to:
|
|
9
|
+
|
|
10
|
+
- DuckDuckGo
|
|
11
|
+
- Google
|
|
12
|
+
- Meta
|
|
13
|
+
- OpenAI
|
|
14
|
+
- Anthropic
|
|
15
|
+
- Cohere
|
|
16
|
+
- Perplexity
|
|
17
|
+
- Yep.com
|
|
18
|
+
- HuggingFace
|
|
19
|
+
- And others
|
|
20
|
+
|
|
21
|
+
All trademarks, API services, and other intellectual property referenced are the property of their respective owners. No claim of ownership or affiliation is made by this project.
|
|
22
|
+
|
|
23
|
+
Owners of any included sites or services may contact the maintainers to improve their security or request the removal of their content from this repository.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## License
|
|
28
|
+
|
|
29
|
+
This repository is licensed under the Apache License, Version 2.0 with additional terms specific to Webscout's API usage and third-party services.
|
|
30
|
+
|
|
31
|
+
> 📄 The full text of this license is available in the [LICENSE.md](./LICENSE.md) file.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Liability Limitation
|
|
36
|
+
|
|
37
|
+
In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, consequential, or exemplary damages of any character arising as a result of this License or out of the use or inability to use the Work.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## No Warranties
|
|
42
|
+
|
|
43
|
+
> [!WARNING]
|
|
44
|
+
> The Work is provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of:
|
|
45
|
+
> - TITLE
|
|
46
|
+
> - NON-INFRINGEMENT
|
|
47
|
+
> - MERCHANTABILITY
|
|
48
|
+
> - FITNESS FOR A PARTICULAR PURPOSE
|
|
49
|
+
|
|
50
|
+
You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## User Responsibility
|
|
55
|
+
|
|
56
|
+
> [!IMPORTANT]
|
|
57
|
+
> Users assume all risks associated with the use of this repository. They are responsible for ensuring their use complies with all terms of service for the APIs accessed through this toolkit and must obtain any necessary permissions or licenses for third-party services.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Legal Compliance
|
|
62
|
+
|
|
63
|
+
Users are responsible for ensuring that their use of the repository and its contents complies with all applicable:
|
|
64
|
+
|
|
65
|
+
- Local laws and regulations
|
|
66
|
+
- State laws and regulations
|
|
67
|
+
- National laws and regulations
|
|
68
|
+
- International laws and regulations
|
|
69
|
+
|
|
70
|
+
Including but not limited to:
|
|
71
|
+
* Privacy laws
|
|
72
|
+
* Data protection regulations
|
|
73
|
+
* Export control laws
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Redistribution Requirements
|
|
78
|
+
|
|
79
|
+
When redistributing copies of the Work or Derivative Works thereof:
|
|
80
|
+
|
|
81
|
+
1. You **must** give recipients a copy of the License
|
|
82
|
+
2. You **must** cause any modified files to carry prominent notices stating that You changed the files
|
|
83
|
+
3. You **must** retain all copyright, patent, trademark, and attribution notices from the Source form of the Work
|
|
84
|
+
4. You **must** include any NOTICE file as part of its distribution
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Third-Party Services
|
|
89
|
+
|
|
90
|
+
> [!NOTE]
|
|
91
|
+
> When using the APIs and services accessed through this Work, you must:
|
|
92
|
+
>
|
|
93
|
+
> 1. Comply with all terms of service of the respective API providers
|
|
94
|
+
> 2. Maintain appropriate attribution and licenses for third-party services
|
|
95
|
+
> 3. Be responsible for obtaining any necessary permissions or licenses
|
|
96
|
+
> 4. Not use the Work in any way that could damage or overload third-party services
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Trademarks
|
|
101
|
+
|
|
102
|
+
This License does not grant permission to use trade names, trademarks, service marks, or product names of the contributors, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Privacy Notice
|
|
107
|
+
|
|
108
|
+
> [!NOTE]
|
|
109
|
+
> Webscout may collect usage data and performance metrics. By using this repository, you acknowledge that:
|
|
110
|
+
>
|
|
111
|
+
> 1. Such data collection will comply with applicable privacy laws
|
|
112
|
+
> 2. You must provide appropriate privacy notices to end users
|
|
113
|
+
> 3. You must obtain necessary consents for data collection
|
|
114
|
+
> 4. You must implement appropriate data security measures
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Contributions
|
|
119
|
+
|
|
120
|
+
Unless explicitly stated otherwise, any Contribution intentionally submitted for inclusion in the Work shall be under the terms and conditions of this License, without any additional terms or conditions.
|
|
121
|
+
|
|
122
|
+
**FOR CONTRIBUTORS**: By submitting content to this project, you agree to the terms outlined in this document.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Export Compliance
|
|
127
|
+
|
|
128
|
+
The Work and its use may be subject to export laws and regulations. Users agree to comply with all such laws and regulations that may apply to the Work after distribution.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Severability
|
|
133
|
+
|
|
134
|
+
If any provision of this notice is found to be unlawful, void, or unenforceable, that provision shall be deemed severable from this notice and shall not affect the validity and enforceability of the remaining provisions.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Updates and Changes
|
|
139
|
+
|
|
140
|
+
> [!NOTE]
|
|
141
|
+
> The author reserves the right to modify, update, or remove any content, information, or features in this repository at any time without prior notice. Users are responsible for regularly reviewing the content and any changes made to this repository.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
<details>
|
|
146
|
+
<summary><strong>Document Version Information</strong></summary>
|
|
147
|
+
|
|
148
|
+
- **Last Updated**: April 14, 2025
|
|
149
|
+
- **Version**: 1.2
|
|
150
|
+
- **Document Owner**: Webscout Team
|
|
151
|
+
</details>
|
|
152
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
include LICENSE.md
|
|
2
|
+
include README.md
|
|
3
|
+
include LEGAL_NOTICE.md
|
|
4
|
+
include changelog.md
|
|
5
|
+
|
|
6
|
+
recursive-include webscout *
|
|
7
|
+
|
|
8
|
+
# Exclude common unwanted files and directories
|
|
9
|
+
recursive-exclude webscout __pycache__
|
|
10
|
+
recursive-exclude webscout *.pyc
|
|
11
|
+
recursive-exclude webscout *.pyo
|
|
12
|
+
recursive-exclude webscout *.pyd
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: webscout
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.8
|
|
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-email: OEvortex <helpingai5@gmail.com>
|
|
6
6
|
License: HelpingAI
|
|
@@ -39,7 +39,6 @@ Requires-Dist: wheel
|
|
|
39
39
|
Requires-Dist: pip
|
|
40
40
|
Requires-Dist: nodriver
|
|
41
41
|
Requires-Dist: mistune
|
|
42
|
-
Requires-Dist: tenacity
|
|
43
42
|
Requires-Dist: curl_cffi
|
|
44
43
|
Requires-Dist: nest-asyncio
|
|
45
44
|
Requires-Dist: websocket-client
|
|
@@ -49,7 +48,6 @@ Requires-Dist: markdownify
|
|
|
49
48
|
Requires-Dist: requests
|
|
50
49
|
Requires-Dist: google-generativeai
|
|
51
50
|
Requires-Dist: lxml>=5.2.2
|
|
52
|
-
Requires-Dist: termcolor
|
|
53
51
|
Requires-Dist: orjson
|
|
54
52
|
Requires-Dist: PyYAML
|
|
55
53
|
Requires-Dist: ollama
|
|
@@ -59,14 +57,17 @@ Requires-Dist: cloudscraper
|
|
|
59
57
|
Requires-Dist: html5lib
|
|
60
58
|
Requires-Dist: aiofiles
|
|
61
59
|
Requires-Dist: openai
|
|
62
|
-
Requires-Dist: prompt-toolkit
|
|
63
|
-
Requires-Dist: pyreqwest_impersonate
|
|
64
60
|
Requires-Dist: gradio_client
|
|
65
61
|
Requires-Dist: psutil
|
|
66
62
|
Requires-Dist: aiohttp
|
|
67
63
|
Provides-Extra: dev
|
|
68
64
|
Requires-Dist: ruff>=0.1.6; extra == "dev"
|
|
69
65
|
Requires-Dist: pytest>=7.4.2; extra == "dev"
|
|
66
|
+
Provides-Extra: api
|
|
67
|
+
Requires-Dist: fastapi; extra == "api"
|
|
68
|
+
Requires-Dist: uvicorn[standard]; extra == "api"
|
|
69
|
+
Requires-Dist: pydantic; extra == "api"
|
|
70
|
+
Requires-Dist: python-multipart; extra == "api"
|
|
70
71
|
Dynamic: license-file
|
|
71
72
|
|
|
72
73
|
<div align="center">
|
|
@@ -88,6 +89,7 @@ Dynamic: license-file
|
|
|
88
89
|
<a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout/month?style=flat-square" alt="Monthly Downloads"></a>
|
|
89
90
|
<a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout?style=flat-square" alt="Total Downloads"></a>
|
|
90
91
|
<a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout?style=flat-square&logo=python" alt="Python Version"></a>
|
|
92
|
+
<a href="https://deepwiki.com/OEvortex/Webscout"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
|
|
91
93
|
</p>
|
|
92
94
|
</div>
|
|
93
95
|
|
|
@@ -98,6 +100,7 @@ Dynamic: license-file
|
|
|
98
100
|
- [🌟 Key Features](#-features)
|
|
99
101
|
- [⚙️ Installation](#️-installation)
|
|
100
102
|
- [🖥️ Command Line Interface](#️-command-line-interface)
|
|
103
|
+
- [🔄 OpenAI-Compatible API Server](#-openai-compatible-api-server)
|
|
101
104
|
- [🔍 Search Engines](#-search-engines)
|
|
102
105
|
- [🦆 DuckDuckGo Search](#-duckduckgo-search-with-webs-and-asyncwebs)
|
|
103
106
|
- [💻 WEBS API Reference](#-webs-api-reference)
|
|
@@ -115,7 +118,7 @@ Dynamic: license-file
|
|
|
115
118
|
> - **OpenAI Compatibility:** Use providers with OpenAI-compatible interfaces
|
|
116
119
|
> - **Local LLM Compatibility:** Run local models with [Inferno](https://github.com/HelpingAI/inferno), an OpenAI-compatible server (now a standalone package)
|
|
117
120
|
>
|
|
118
|
-
> Choose the approach that best fits your needs! For OpenAI compatibility, check the [OpenAI Providers README](webscout/Provider/OPENAI/README.md).
|
|
121
|
+
> Choose the approach that best fits your needs! For OpenAI compatibility, check the [OpenAI Providers README](webscout/Provider/OPENAI/README.md) or see the [OpenAI-Compatible API Server](#-openai-compatible-api-server) section below.
|
|
119
122
|
|
|
120
123
|
> [!NOTE]
|
|
121
124
|
> Webscout supports over 90 AI providers including: LLAMA, C4ai, Venice, Copilot, HuggingFaceChat, PerplexityLabs, DeepSeek, WiseCat, GROQ, OPENAI, GEMINI, DeepInfra, Meta, YEPCHAT, TypeGPT, ChatGPTClone, ExaAI, Claude, Anthropic, Cloudflare, AI21, Cerebras, and many more. All providers follow similar usage patterns with consistent interfaces.
|
|
@@ -212,7 +215,6 @@ python -m webscout --help
|
|
|
212
215
|
| Command | Description |
|
|
213
216
|
|---------|-------------|
|
|
214
217
|
| `python -m webscout answers -k "query"` | Perform an answers search |
|
|
215
|
-
| `python -m webscout chat` | Start an interactive AI chat session |
|
|
216
218
|
| `python -m webscout images -k "query"` | Search for images |
|
|
217
219
|
| `python -m webscout maps -k "query"` | Perform a maps search |
|
|
218
220
|
| `python -m webscout news -k "query"` | Search for news articles |
|
|
@@ -269,6 +271,111 @@ For more information, visit the [Inferno GitHub repository](https://github.com/H
|
|
|
269
271
|
> - 32 GB of RAM for 33B models
|
|
270
272
|
> - GPU acceleration is recommended for better performance
|
|
271
273
|
|
|
274
|
+
<details open>
|
|
275
|
+
<summary><b>🔄 OpenAI-Compatible API Server</b></summary>
|
|
276
|
+
<p>
|
|
277
|
+
|
|
278
|
+
Webscout includes an OpenAI-compatible API server that allows you to use any supported provider with tools and applications designed for OpenAI's API.
|
|
279
|
+
|
|
280
|
+
### Starting the API Server
|
|
281
|
+
|
|
282
|
+
#### From Command Line
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
# Start with default settings (port 8000)
|
|
286
|
+
python -m webscout.Provider.OPENAI.api
|
|
287
|
+
|
|
288
|
+
# Start with custom port
|
|
289
|
+
python -m webscout.Provider.OPENAI.api --port 8080
|
|
290
|
+
|
|
291
|
+
# Start with API key authentication
|
|
292
|
+
python -m webscout.Provider.OPENAI.api --api-key "your-secret-key"
|
|
293
|
+
|
|
294
|
+
# Specify a default provider
|
|
295
|
+
python -m webscout.Provider.OPENAI.api --default-provider "Claude"
|
|
296
|
+
|
|
297
|
+
# Run in debug mode
|
|
298
|
+
python -m webscout.Provider.OPENAI.api --debug
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
#### From Python Code
|
|
302
|
+
|
|
303
|
+
```python
|
|
304
|
+
# Method 1: Using the helper function
|
|
305
|
+
from webscout.Provider.OPENAI.api import start_server
|
|
306
|
+
|
|
307
|
+
# Start with default settings
|
|
308
|
+
start_server()
|
|
309
|
+
|
|
310
|
+
# Start with custom settings
|
|
311
|
+
start_server(port=8080, api_key="your-secret-key", default_provider="Claude")
|
|
312
|
+
|
|
313
|
+
# Method 2: Using the run_api function for more control
|
|
314
|
+
from webscout.Provider.OPENAI.api import run_api
|
|
315
|
+
|
|
316
|
+
run_api(
|
|
317
|
+
host="0.0.0.0",
|
|
318
|
+
port=8080,
|
|
319
|
+
api_key="your-secret-key",
|
|
320
|
+
default_provider="Claude",
|
|
321
|
+
debug=True
|
|
322
|
+
)
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### Using the API
|
|
326
|
+
|
|
327
|
+
Once the server is running, you can use it with any OpenAI client library or tool:
|
|
328
|
+
|
|
329
|
+
```python
|
|
330
|
+
# Using the OpenAI Python client
|
|
331
|
+
from openai import OpenAI
|
|
332
|
+
|
|
333
|
+
client = OpenAI(
|
|
334
|
+
api_key="your-secret-key", # Only needed if you set an API key
|
|
335
|
+
base_url="http://localhost:8000/v1" # Point to your local server
|
|
336
|
+
)
|
|
337
|
+
|
|
338
|
+
# Chat completion
|
|
339
|
+
response = client.chat.completions.create(
|
|
340
|
+
model="gpt-4", # This can be any model name registered with Webscout
|
|
341
|
+
messages=[
|
|
342
|
+
{"role": "system", "content": "You are a helpful assistant."},
|
|
343
|
+
{"role": "user", "content": "Hello, how are you?"}
|
|
344
|
+
]
|
|
345
|
+
)
|
|
346
|
+
|
|
347
|
+
print(response.choices[0].message.content)
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### Using with cURL
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
# Basic chat completion request
|
|
354
|
+
curl http://localhost:8000/v1/chat/completions \
|
|
355
|
+
-H "Content-Type: application/json" \
|
|
356
|
+
-H "Authorization: Bearer your-secret-key" \
|
|
357
|
+
-d '{
|
|
358
|
+
"model": "gpt-4",
|
|
359
|
+
"messages": [
|
|
360
|
+
{"role": "system", "content": "You are a helpful assistant."},
|
|
361
|
+
{"role": "user", "content": "Hello, how are you?"}
|
|
362
|
+
]
|
|
363
|
+
}'
|
|
364
|
+
|
|
365
|
+
# List available models
|
|
366
|
+
curl http://localhost:8000/v1/models \
|
|
367
|
+
-H "Authorization: Bearer your-secret-key"
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Available Endpoints
|
|
371
|
+
|
|
372
|
+
- `GET /v1/models` - List all available models
|
|
373
|
+
- `GET /v1/models/{model_name}` - Get information about a specific model
|
|
374
|
+
- `POST /v1/chat/completions` - Create a chat completion
|
|
375
|
+
|
|
376
|
+
</p>
|
|
377
|
+
</details>
|
|
378
|
+
|
|
272
379
|
<hr/>
|
|
273
380
|
|
|
274
381
|
## 🔍 Search Engines
|
|
@@ -605,30 +712,12 @@ Webscout offers a comprehensive collection of AI chat providers, giving you acce
|
|
|
605
712
|
| `DeepInfra` | Various open models | Multiple model options |
|
|
606
713
|
| `Cohere` | Cohere's language models | Command models |
|
|
607
714
|
| `PerplexityLabs` | Perplexity AI | Web search integration |
|
|
608
|
-
| `Anthropic` | Claude models | Long context windows |
|
|
609
715
|
| `YEPCHAT` | Yep.com's AI | Streaming responses |
|
|
610
716
|
| `ChatGPTClone` | ChatGPT-like interface | Multiple model options |
|
|
611
|
-
| `TypeGPT` | TypeChat models |
|
|
717
|
+
| `TypeGPT` | TypeChat models | Multiple model options |
|
|
612
718
|
|
|
613
719
|
</div>
|
|
614
720
|
|
|
615
|
-
<details>
|
|
616
|
-
<summary><b>Example: Using Duckchat</b></summary>
|
|
617
|
-
<p>
|
|
618
|
-
|
|
619
|
-
```python
|
|
620
|
-
from webscout import WEBS
|
|
621
|
-
|
|
622
|
-
# Initialize and use Duckchat
|
|
623
|
-
with WEBS() as webs:
|
|
624
|
-
response = webs.chat(
|
|
625
|
-
"Explain quantum computing in simple terms",
|
|
626
|
-
model='gpt-4o-mini' # Options: mixtral-8x7b, llama-3.1-70b, claude-3-haiku, etc.
|
|
627
|
-
)
|
|
628
|
-
print(response)
|
|
629
|
-
```
|
|
630
|
-
</p>
|
|
631
|
-
</details>
|
|
632
721
|
|
|
633
722
|
<details>
|
|
634
723
|
<summary><b>Example: Using Meta AI</b></summary>
|
|
@@ -740,41 +829,7 @@ print(response)
|
|
|
740
829
|
</p>
|
|
741
830
|
</details>
|
|
742
831
|
|
|
743
|
-
<hr/>
|
|
744
|
-
|
|
745
|
-
## 👨💻 Advanced AI Interfaces
|
|
746
|
-
|
|
747
|
-
<details open>
|
|
748
|
-
<summary><b>Direct Model Access with LLM and VLM</b></summary>
|
|
749
|
-
<p>
|
|
750
|
-
|
|
751
|
-
Webscout provides direct interfaces to language and vision-language models through the `LLM` and `VLM` classes.
|
|
752
|
-
|
|
753
|
-
```python
|
|
754
|
-
from webscout.LLM import LLM, VLM
|
|
755
832
|
|
|
756
|
-
# Text-only model interaction
|
|
757
|
-
llm = LLM("meta-llama/Meta-Llama-3-70B-Instruct")
|
|
758
|
-
response = llm.chat([
|
|
759
|
-
{"role": "user", "content": "Explain the concept of neural networks"}
|
|
760
|
-
])
|
|
761
|
-
print(response)
|
|
762
|
-
|
|
763
|
-
# Vision-language model interaction
|
|
764
|
-
vlm = VLM("cogvlm-grounding-generalist")
|
|
765
|
-
response = vlm.chat([
|
|
766
|
-
{
|
|
767
|
-
"role": "user",
|
|
768
|
-
"content": [
|
|
769
|
-
{"type": "image", "image_url": "path/to/image.jpg"},
|
|
770
|
-
{"type": "text", "text": "Describe what you see in this image"}
|
|
771
|
-
]
|
|
772
|
-
}
|
|
773
|
-
])
|
|
774
|
-
print(response)
|
|
775
|
-
```
|
|
776
|
-
</p>
|
|
777
|
-
</details>
|
|
778
833
|
|
|
779
834
|
<details open>
|
|
780
835
|
<summary><b>GGUF Model Conversion</b></summary>
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
<a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout/month?style=flat-square" alt="Monthly Downloads"></a>
|
|
18
18
|
<a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout?style=flat-square" alt="Total Downloads"></a>
|
|
19
19
|
<a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout?style=flat-square&logo=python" alt="Python Version"></a>
|
|
20
|
+
<a href="https://deepwiki.com/OEvortex/Webscout"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
|
|
20
21
|
</p>
|
|
21
22
|
</div>
|
|
22
23
|
|
|
@@ -27,6 +28,7 @@
|
|
|
27
28
|
- [🌟 Key Features](#-features)
|
|
28
29
|
- [⚙️ Installation](#️-installation)
|
|
29
30
|
- [🖥️ Command Line Interface](#️-command-line-interface)
|
|
31
|
+
- [🔄 OpenAI-Compatible API Server](#-openai-compatible-api-server)
|
|
30
32
|
- [🔍 Search Engines](#-search-engines)
|
|
31
33
|
- [🦆 DuckDuckGo Search](#-duckduckgo-search-with-webs-and-asyncwebs)
|
|
32
34
|
- [💻 WEBS API Reference](#-webs-api-reference)
|
|
@@ -44,7 +46,7 @@
|
|
|
44
46
|
> - **OpenAI Compatibility:** Use providers with OpenAI-compatible interfaces
|
|
45
47
|
> - **Local LLM Compatibility:** Run local models with [Inferno](https://github.com/HelpingAI/inferno), an OpenAI-compatible server (now a standalone package)
|
|
46
48
|
>
|
|
47
|
-
> Choose the approach that best fits your needs! For OpenAI compatibility, check the [OpenAI Providers README](webscout/Provider/OPENAI/README.md).
|
|
49
|
+
> Choose the approach that best fits your needs! For OpenAI compatibility, check the [OpenAI Providers README](webscout/Provider/OPENAI/README.md) or see the [OpenAI-Compatible API Server](#-openai-compatible-api-server) section below.
|
|
48
50
|
|
|
49
51
|
> [!NOTE]
|
|
50
52
|
> Webscout supports over 90 AI providers including: LLAMA, C4ai, Venice, Copilot, HuggingFaceChat, PerplexityLabs, DeepSeek, WiseCat, GROQ, OPENAI, GEMINI, DeepInfra, Meta, YEPCHAT, TypeGPT, ChatGPTClone, ExaAI, Claude, Anthropic, Cloudflare, AI21, Cerebras, and many more. All providers follow similar usage patterns with consistent interfaces.
|
|
@@ -141,7 +143,6 @@ python -m webscout --help
|
|
|
141
143
|
| Command | Description |
|
|
142
144
|
|---------|-------------|
|
|
143
145
|
| `python -m webscout answers -k "query"` | Perform an answers search |
|
|
144
|
-
| `python -m webscout chat` | Start an interactive AI chat session |
|
|
145
146
|
| `python -m webscout images -k "query"` | Search for images |
|
|
146
147
|
| `python -m webscout maps -k "query"` | Perform a maps search |
|
|
147
148
|
| `python -m webscout news -k "query"` | Search for news articles |
|
|
@@ -198,6 +199,111 @@ For more information, visit the [Inferno GitHub repository](https://github.com/H
|
|
|
198
199
|
> - 32 GB of RAM for 33B models
|
|
199
200
|
> - GPU acceleration is recommended for better performance
|
|
200
201
|
|
|
202
|
+
<details open>
|
|
203
|
+
<summary><b>🔄 OpenAI-Compatible API Server</b></summary>
|
|
204
|
+
<p>
|
|
205
|
+
|
|
206
|
+
Webscout includes an OpenAI-compatible API server that allows you to use any supported provider with tools and applications designed for OpenAI's API.
|
|
207
|
+
|
|
208
|
+
### Starting the API Server
|
|
209
|
+
|
|
210
|
+
#### From Command Line
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
# Start with default settings (port 8000)
|
|
214
|
+
python -m webscout.Provider.OPENAI.api
|
|
215
|
+
|
|
216
|
+
# Start with custom port
|
|
217
|
+
python -m webscout.Provider.OPENAI.api --port 8080
|
|
218
|
+
|
|
219
|
+
# Start with API key authentication
|
|
220
|
+
python -m webscout.Provider.OPENAI.api --api-key "your-secret-key"
|
|
221
|
+
|
|
222
|
+
# Specify a default provider
|
|
223
|
+
python -m webscout.Provider.OPENAI.api --default-provider "Claude"
|
|
224
|
+
|
|
225
|
+
# Run in debug mode
|
|
226
|
+
python -m webscout.Provider.OPENAI.api --debug
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
#### From Python Code
|
|
230
|
+
|
|
231
|
+
```python
|
|
232
|
+
# Method 1: Using the helper function
|
|
233
|
+
from webscout.Provider.OPENAI.api import start_server
|
|
234
|
+
|
|
235
|
+
# Start with default settings
|
|
236
|
+
start_server()
|
|
237
|
+
|
|
238
|
+
# Start with custom settings
|
|
239
|
+
start_server(port=8080, api_key="your-secret-key", default_provider="Claude")
|
|
240
|
+
|
|
241
|
+
# Method 2: Using the run_api function for more control
|
|
242
|
+
from webscout.Provider.OPENAI.api import run_api
|
|
243
|
+
|
|
244
|
+
run_api(
|
|
245
|
+
host="0.0.0.0",
|
|
246
|
+
port=8080,
|
|
247
|
+
api_key="your-secret-key",
|
|
248
|
+
default_provider="Claude",
|
|
249
|
+
debug=True
|
|
250
|
+
)
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Using the API
|
|
254
|
+
|
|
255
|
+
Once the server is running, you can use it with any OpenAI client library or tool:
|
|
256
|
+
|
|
257
|
+
```python
|
|
258
|
+
# Using the OpenAI Python client
|
|
259
|
+
from openai import OpenAI
|
|
260
|
+
|
|
261
|
+
client = OpenAI(
|
|
262
|
+
api_key="your-secret-key", # Only needed if you set an API key
|
|
263
|
+
base_url="http://localhost:8000/v1" # Point to your local server
|
|
264
|
+
)
|
|
265
|
+
|
|
266
|
+
# Chat completion
|
|
267
|
+
response = client.chat.completions.create(
|
|
268
|
+
model="gpt-4", # This can be any model name registered with Webscout
|
|
269
|
+
messages=[
|
|
270
|
+
{"role": "system", "content": "You are a helpful assistant."},
|
|
271
|
+
{"role": "user", "content": "Hello, how are you?"}
|
|
272
|
+
]
|
|
273
|
+
)
|
|
274
|
+
|
|
275
|
+
print(response.choices[0].message.content)
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### Using with cURL
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
# Basic chat completion request
|
|
282
|
+
curl http://localhost:8000/v1/chat/completions \
|
|
283
|
+
-H "Content-Type: application/json" \
|
|
284
|
+
-H "Authorization: Bearer your-secret-key" \
|
|
285
|
+
-d '{
|
|
286
|
+
"model": "gpt-4",
|
|
287
|
+
"messages": [
|
|
288
|
+
{"role": "system", "content": "You are a helpful assistant."},
|
|
289
|
+
{"role": "user", "content": "Hello, how are you?"}
|
|
290
|
+
]
|
|
291
|
+
}'
|
|
292
|
+
|
|
293
|
+
# List available models
|
|
294
|
+
curl http://localhost:8000/v1/models \
|
|
295
|
+
-H "Authorization: Bearer your-secret-key"
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Available Endpoints
|
|
299
|
+
|
|
300
|
+
- `GET /v1/models` - List all available models
|
|
301
|
+
- `GET /v1/models/{model_name}` - Get information about a specific model
|
|
302
|
+
- `POST /v1/chat/completions` - Create a chat completion
|
|
303
|
+
|
|
304
|
+
</p>
|
|
305
|
+
</details>
|
|
306
|
+
|
|
201
307
|
<hr/>
|
|
202
308
|
|
|
203
309
|
## 🔍 Search Engines
|
|
@@ -534,30 +640,12 @@ Webscout offers a comprehensive collection of AI chat providers, giving you acce
|
|
|
534
640
|
| `DeepInfra` | Various open models | Multiple model options |
|
|
535
641
|
| `Cohere` | Cohere's language models | Command models |
|
|
536
642
|
| `PerplexityLabs` | Perplexity AI | Web search integration |
|
|
537
|
-
| `Anthropic` | Claude models | Long context windows |
|
|
538
643
|
| `YEPCHAT` | Yep.com's AI | Streaming responses |
|
|
539
644
|
| `ChatGPTClone` | ChatGPT-like interface | Multiple model options |
|
|
540
|
-
| `TypeGPT` | TypeChat models |
|
|
645
|
+
| `TypeGPT` | TypeChat models | Multiple model options |
|
|
541
646
|
|
|
542
647
|
</div>
|
|
543
648
|
|
|
544
|
-
<details>
|
|
545
|
-
<summary><b>Example: Using Duckchat</b></summary>
|
|
546
|
-
<p>
|
|
547
|
-
|
|
548
|
-
```python
|
|
549
|
-
from webscout import WEBS
|
|
550
|
-
|
|
551
|
-
# Initialize and use Duckchat
|
|
552
|
-
with WEBS() as webs:
|
|
553
|
-
response = webs.chat(
|
|
554
|
-
"Explain quantum computing in simple terms",
|
|
555
|
-
model='gpt-4o-mini' # Options: mixtral-8x7b, llama-3.1-70b, claude-3-haiku, etc.
|
|
556
|
-
)
|
|
557
|
-
print(response)
|
|
558
|
-
```
|
|
559
|
-
</p>
|
|
560
|
-
</details>
|
|
561
649
|
|
|
562
650
|
<details>
|
|
563
651
|
<summary><b>Example: Using Meta AI</b></summary>
|
|
@@ -669,41 +757,7 @@ print(response)
|
|
|
669
757
|
</p>
|
|
670
758
|
</details>
|
|
671
759
|
|
|
672
|
-
<hr/>
|
|
673
|
-
|
|
674
|
-
## 👨💻 Advanced AI Interfaces
|
|
675
|
-
|
|
676
|
-
<details open>
|
|
677
|
-
<summary><b>Direct Model Access with LLM and VLM</b></summary>
|
|
678
|
-
<p>
|
|
679
|
-
|
|
680
|
-
Webscout provides direct interfaces to language and vision-language models through the `LLM` and `VLM` classes.
|
|
681
|
-
|
|
682
|
-
```python
|
|
683
|
-
from webscout.LLM import LLM, VLM
|
|
684
760
|
|
|
685
|
-
# Text-only model interaction
|
|
686
|
-
llm = LLM("meta-llama/Meta-Llama-3-70B-Instruct")
|
|
687
|
-
response = llm.chat([
|
|
688
|
-
{"role": "user", "content": "Explain the concept of neural networks"}
|
|
689
|
-
])
|
|
690
|
-
print(response)
|
|
691
|
-
|
|
692
|
-
# Vision-language model interaction
|
|
693
|
-
vlm = VLM("cogvlm-grounding-generalist")
|
|
694
|
-
response = vlm.chat([
|
|
695
|
-
{
|
|
696
|
-
"role": "user",
|
|
697
|
-
"content": [
|
|
698
|
-
{"type": "image", "image_url": "path/to/image.jpg"},
|
|
699
|
-
{"type": "text", "text": "Describe what you see in this image"}
|
|
700
|
-
]
|
|
701
|
-
}
|
|
702
|
-
])
|
|
703
|
-
print(response)
|
|
704
|
-
```
|
|
705
|
-
</p>
|
|
706
|
-
</details>
|
|
707
761
|
|
|
708
762
|
<details open>
|
|
709
763
|
<summary><b>GGUF Model Conversion</b></summary>
|
|
Binary file
|