webscout 2025.10.19.1__tar.gz → 2025.10.19.3__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-2025.10.19.1/webscout.egg-info → webscout-2025.10.19.3}/PKG-INFO +1 -2
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/pyproject.toml +0 -1
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/DeepAI.py +145 -57
- webscout-2025.10.19.3/webscout/version.py +2 -0
- webscout-2025.10.19.3/webscout/version.py.bak +2 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3/webscout.egg-info}/PKG-INFO +1 -2
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout.egg-info/requires.txt +0 -1
- webscout-2025.10.19.1/webscout/version.py +0 -2
- webscout-2025.10.19.1/webscout/version.py.bak +0 -2
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/LEGAL_NOTICE.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/LICENSE.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/MANIFEST.in +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/changelog.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/setup.cfg +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/AIauto.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/AIbase.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/AIutel.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Bard.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/Act.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/GitToolkit/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/GitToolkit/gitapi/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/GitToolkit/gitapi/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/GitToolkit/gitapi/repository.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/GitToolkit/gitapi/user.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/GitToolkit/gitapi/utils.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/YTdownloader.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/transcriber.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/channel.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/errors.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/extras.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/https.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/patterns.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/playlist.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/pool.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/query.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/stream.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/utils.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/YTToolkit/ytapi/video.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/autocoder/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/autocoder/autocoder.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/autocoder/autocoder_utiles.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/gguf.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/gguf.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/tempmail/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/tempmail/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/tempmail/async_utils.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/tempmail/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/tempmail/cli.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/tempmail/emailnator.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/tempmail/mail_tm.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/tempmail/temp_mail_io.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/weather.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/weather_ascii.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Litlogger/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Litlogger/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Litlogger/formats.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Litlogger/handlers.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Litlogger/levels.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Litlogger/logger.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/PERPLEXED_search.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/Perplexity.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/felo_search.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/genspark_search.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/hika_search.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/iask_search.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/monica_search.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/scira_search.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/stellar_search.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/webpilotai_search.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Aitopia.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Andi.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Apriel.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/ChatGPTClone.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/ChatSandbox.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/ClaudeOnline.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Cloudflare.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Cohere.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/DeepAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Deepinfra.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/ExaAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/ExaChat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Flowith.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/GMI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Gemini.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/GeminiProxy.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/GithubChat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Gradient.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Groq.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/HeckAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Jadve.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/K2Think.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Koboldai.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/LambdaChat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Nemotron.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Netwrck.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OLLAMA.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/Cloudflare.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/FalconH1.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/FreeGemini.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/GeminiProxy.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/K2Think.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/NEMOTRON.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/PI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/TogetherAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/TwoAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/ai4chat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/chatglm.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/chatgpt.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/chatgptclone.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/chatsandbox.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/deepinfra.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/e2b.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/exaai.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/exachat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/flowith.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/friendli.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/generate_api_key.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/gmi.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/groq.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/heckai.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/llmchatco.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/netwrck.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/oivscode.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/opkfc.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/pydantic_imports.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/scirachat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/sonus.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/standardinput.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/textpollinations.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/toolbaz.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/typefully.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/utils.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/venice.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/wisecat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/writecream.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/x0gpt.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OPENAI/yep.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/OpenGPT.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Openai.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/PI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Perplexitylabs.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/QwenLM.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/STT/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/STT/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/STT/elevenlabs.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Sambanova.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/StandardInput.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/aiarta.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/bing.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/claudeonline.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/gpt1image.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/imagen.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/infip.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/magicstudio.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/monochat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/piclumen.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/pixelmuse.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/pollinations.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/together.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/utils.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTI/venice.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/deepgram.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/elevenlabs.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/freetts.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/gesserit.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/murfai.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/openai_fm.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/parler.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/speechma.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/streamElements.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TTS/utils.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TeachAnything.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TextPollinationsAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TogetherAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TwoAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/TypliAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/ChatHub.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/ChutesAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/GizAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/Marcus.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/Qodo.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/VercelAIGateway.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/XenAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/Youchat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/liner.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/liner_api_request.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/puterjs.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/samurai.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/UNFINISHED/test_lmarena.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/Venice.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/VercelAI.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/WiseCat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/WrDoChat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/ai4chat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/akashgpt.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/cerebras.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/chatglm.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/cleeai.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/deepseek_assistant.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/elmo.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/geminiapi.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/granite.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/hermes.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/julius.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/learnfastai.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/llama3mitril.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/llmchat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/llmchatco.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/meta.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/oivscode.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/scira_chat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/searchchat.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/sonus.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/toolbaz.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/turboseek.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/typefully.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/x0gpt.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/yep.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/__main__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/cli.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/client.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/conversation.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/exceptions.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/litagent/Readme.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/litagent/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/litagent/agent.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/litagent/constants.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/litprinter/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/models.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/optimizers.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/prompt_manager.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/sanitize.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/core/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/core/crawler.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/core/scout.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/core/search_result.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/core/text_analyzer.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/core/text_utils.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/core/web_analyzer.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/element.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/parsers/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/parsers/html5lib_parser.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/parsers/html_parser.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/parsers/lxml_parser.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/scout/utils.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/bing_main.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/duckduckgo_main.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/bing/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/bing/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/bing/images.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/bing/news.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/bing/suggestions.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/bing/text.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/brave.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/duckduckgo/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/duckduckgo/answers.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/duckduckgo/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/duckduckgo/images.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/duckduckgo/maps.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/duckduckgo/news.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/duckduckgo/suggestions.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/duckduckgo/text.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/duckduckgo/translate.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/duckduckgo/videos.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/duckduckgo/weather.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/mojeek.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/wikipedia.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yahoo/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yahoo/answers.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yahoo/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yahoo/images.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yahoo/maps.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yahoo/news.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yahoo/suggestions.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yahoo/text.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yahoo/translate.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yahoo/videos.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yahoo/weather.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yandex.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yep/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yep/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yep/images.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yep/suggestions.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/engines/yep/text.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/http_client.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/results.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/yahoo_main.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/search/yep_main.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/server/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/server/config.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/server/exceptions.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/server/providers.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/server/request_models.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/server/request_processing.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/server/routes.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/server/schemas.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/server/server.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/server/simple_logger.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/Readme.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/core/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/core/cli.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/core/context.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/core/group.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/decorators/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/decorators/command.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/decorators/options.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/decorators/output.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/exceptions.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/plugins/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/plugins/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/plugins/manager.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/utils/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/utils/formatting.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/swiftcli/utils/parsing.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/update_checker.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/utils.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/zeroart/README.md +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/zeroart/__init__.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/zeroart/base.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/zeroart/effects.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/zeroart/fonts.py +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout.egg-info/SOURCES.txt +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout.egg-info/dependency_links.txt +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout.egg-info/entry_points.txt +0 -0
- {webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: webscout
|
|
3
|
-
Version: 2025.10.19.
|
|
3
|
+
Version: 2025.10.19.3
|
|
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
|
|
@@ -58,7 +58,6 @@ Requires-Dist: gradio_client
|
|
|
58
58
|
Requires-Dist: psutil
|
|
59
59
|
Requires-Dist: aiohttp
|
|
60
60
|
Requires-Dist: zstandard
|
|
61
|
-
Requires-Dist: brotli
|
|
62
61
|
Requires-Dist: litproxy
|
|
63
62
|
Provides-Extra: dev
|
|
64
63
|
Requires-Dist: ruff>=0.1.6; extra == "dev"
|
|
@@ -1,45 +1,36 @@
|
|
|
1
|
-
"""
|
|
2
|
-
DeepAI Chat Provider for webscout
|
|
3
|
-
|
|
4
|
-
This provider implements the DeepAI chat API discovered through reverse engineering.
|
|
5
|
-
The API uses a POST endpoint with multipart/form-data containing chat history and parameters.
|
|
6
|
-
|
|
7
|
-
API Details:
|
|
8
|
-
- Endpoint: https://api.deepai.org/hacking_is_a_serious_crime
|
|
9
|
-
- Method: POST
|
|
10
|
-
- Authentication: api-key header (trial key provided)
|
|
11
|
-
- Content-Type: multipart/form-data
|
|
12
|
-
- Response: Plain text AI response
|
|
13
|
-
|
|
14
|
-
Features:
|
|
15
|
-
- Streaming and non-streaming support
|
|
16
|
-
- Conversation history management
|
|
17
|
-
- Error handling and retries
|
|
18
|
-
- Configurable model and chat style
|
|
19
|
-
"""
|
|
20
1
|
|
|
2
|
+
from curl_cffi.requests import Session, RequestsError
|
|
21
3
|
from typing import List, Dict, Optional, Union, Generator, Any
|
|
22
4
|
|
|
23
|
-
# Import
|
|
24
|
-
import
|
|
5
|
+
# Import base classes and utility structures
|
|
6
|
+
from webscout.Provider.OPENAI.base import OpenAICompatibleProvider, BaseChat, BaseCompletions
|
|
7
|
+
from webscout.Provider.OPENAI.utils import (
|
|
8
|
+
ChatCompletionChunk, ChatCompletion, Choice, ChoiceDelta,
|
|
9
|
+
ChatCompletionMessage, CompletionUsage, format_prompt, count_tokens
|
|
10
|
+
)
|
|
25
11
|
|
|
26
12
|
# Standard library imports
|
|
27
13
|
import json
|
|
28
14
|
import time
|
|
29
15
|
import uuid
|
|
30
16
|
|
|
31
|
-
# Import base classes and utility structures
|
|
32
|
-
from .base import OpenAICompatibleProvider, BaseChat, BaseCompletions
|
|
33
|
-
from .utils import (
|
|
34
|
-
ChatCompletionChunk, ChatCompletion, Choice, ChoiceDelta,
|
|
35
|
-
ChatCompletionMessage, CompletionUsage
|
|
36
|
-
)
|
|
37
|
-
|
|
38
17
|
# Attempt to import LitAgent, fallback if not available
|
|
39
18
|
try:
|
|
40
19
|
from webscout.litagent import LitAgent
|
|
41
20
|
except ImportError:
|
|
42
|
-
LitAgent
|
|
21
|
+
# Define a dummy LitAgent if webscout is not installed or accessible
|
|
22
|
+
class LitAgent:
|
|
23
|
+
def generate_fingerprint(self, browser: str = "chrome") -> Dict[str, Any]:
|
|
24
|
+
# Return minimal default headers if LitAgent is unavailable
|
|
25
|
+
print("Warning: LitAgent not found. Using default minimal headers.")
|
|
26
|
+
return {
|
|
27
|
+
"accept": "*/*",
|
|
28
|
+
"accept_language": "en-US,en;q=0.9",
|
|
29
|
+
"platform": "Windows",
|
|
30
|
+
"sec_ch_ua": '"Not/A)Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"',
|
|
31
|
+
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",
|
|
32
|
+
"browser_type": browser,
|
|
33
|
+
}
|
|
43
34
|
|
|
44
35
|
# --- DeepAI Client ---
|
|
45
36
|
|
|
@@ -91,20 +82,27 @@ class Completions(BaseCompletions):
|
|
|
91
82
|
created_time = int(time.time())
|
|
92
83
|
|
|
93
84
|
if stream:
|
|
94
|
-
return self._create_stream(request_id, created_time, model, payload)
|
|
85
|
+
return self._create_stream(request_id, created_time, model, payload, timeout=timeout, proxies=proxies)
|
|
95
86
|
else:
|
|
96
|
-
return self._create_non_stream(request_id, created_time, model, payload)
|
|
87
|
+
return self._create_non_stream(request_id, created_time, model, payload, timeout=timeout, proxies=proxies)
|
|
97
88
|
|
|
98
89
|
def _create_stream(
|
|
99
|
-
self, request_id: str, created_time: int, model: str, payload: Dict[str, Any]
|
|
90
|
+
self, request_id: str, created_time: int, model: str, payload: Dict[str, Any],
|
|
91
|
+
timeout: Optional[int] = None, proxies: Optional[Dict[str, str]] = None
|
|
100
92
|
) -> Generator[ChatCompletionChunk, None, None]:
|
|
101
93
|
# DeepAI doesn't actually support streaming, but we'll implement it for compatibility
|
|
102
94
|
# For now, just yield the non-stream response as a single chunk
|
|
95
|
+
original_proxies = self._client.session.proxies
|
|
96
|
+
if proxies is not None:
|
|
97
|
+
self._client.session.proxies = proxies
|
|
98
|
+
else:
|
|
99
|
+
self._client.session.proxies = {}
|
|
103
100
|
try:
|
|
101
|
+
timeout_val = timeout if timeout is not None else self._client.timeout
|
|
104
102
|
response = self._client.session.post(
|
|
105
103
|
"https://api.deepai.org/hacking_is_a_serious_crime",
|
|
106
104
|
data=payload,
|
|
107
|
-
timeout=
|
|
105
|
+
timeout=timeout_val
|
|
108
106
|
)
|
|
109
107
|
|
|
110
108
|
if response.status_code != 200:
|
|
@@ -113,6 +111,11 @@ class Completions(BaseCompletions):
|
|
|
113
111
|
# Get response text
|
|
114
112
|
content = response.text.strip()
|
|
115
113
|
|
|
114
|
+
# Estimate token usage
|
|
115
|
+
prompt_tokens = count_tokens(payload.get("chatHistory", ""))
|
|
116
|
+
completion_tokens = count_tokens(content)
|
|
117
|
+
total_tokens = prompt_tokens + completion_tokens
|
|
118
|
+
|
|
116
119
|
# Create the delta object
|
|
117
120
|
delta = ChoiceDelta(
|
|
118
121
|
content=content,
|
|
@@ -137,28 +140,40 @@ class Completions(BaseCompletions):
|
|
|
137
140
|
system_fingerprint=None
|
|
138
141
|
)
|
|
139
142
|
|
|
140
|
-
# Set usage directly on the chunk object
|
|
143
|
+
# Set usage directly on the chunk object
|
|
141
144
|
chunk.usage = {
|
|
142
|
-
"prompt_tokens":
|
|
143
|
-
"completion_tokens":
|
|
144
|
-
"total_tokens":
|
|
145
|
+
"prompt_tokens": prompt_tokens,
|
|
146
|
+
"completion_tokens": completion_tokens,
|
|
147
|
+
"total_tokens": total_tokens,
|
|
145
148
|
"estimated_cost": None
|
|
146
149
|
}
|
|
147
150
|
|
|
148
151
|
yield chunk
|
|
149
152
|
|
|
150
|
-
except
|
|
153
|
+
except RequestsError as e:
|
|
151
154
|
print(f"Error during DeepAI stream request: {e}")
|
|
152
155
|
raise IOError(f"DeepAI request failed: {e}") from e
|
|
156
|
+
except Exception as e:
|
|
157
|
+
print(f"Unexpected error during DeepAI stream request: {e}")
|
|
158
|
+
raise IOError(f"DeepAI request failed: {e}") from e
|
|
159
|
+
finally:
|
|
160
|
+
self._client.session.proxies = original_proxies
|
|
153
161
|
|
|
154
162
|
def _create_non_stream(
|
|
155
|
-
self, request_id: str, created_time: int, model: str, payload: Dict[str, Any]
|
|
163
|
+
self, request_id: str, created_time: int, model: str, payload: Dict[str, Any],
|
|
164
|
+
timeout: Optional[int] = None, proxies: Optional[Dict[str, str]] = None
|
|
156
165
|
) -> ChatCompletion:
|
|
166
|
+
original_proxies = self._client.session.proxies
|
|
167
|
+
if proxies is not None:
|
|
168
|
+
self._client.session.proxies = proxies
|
|
169
|
+
else:
|
|
170
|
+
self._client.session.proxies = {}
|
|
157
171
|
try:
|
|
172
|
+
timeout_val = timeout if timeout is not None else self._client.timeout
|
|
158
173
|
response = self._client.session.post(
|
|
159
174
|
"https://api.deepai.org/hacking_is_a_serious_crime",
|
|
160
175
|
data=payload,
|
|
161
|
-
timeout=
|
|
176
|
+
timeout=timeout_val
|
|
162
177
|
)
|
|
163
178
|
|
|
164
179
|
if response.status_code != 200:
|
|
@@ -167,6 +182,11 @@ class Completions(BaseCompletions):
|
|
|
167
182
|
# Get response text
|
|
168
183
|
content = response.text.strip()
|
|
169
184
|
|
|
185
|
+
# Estimate token usage
|
|
186
|
+
prompt_tokens = count_tokens(payload.get("chatHistory", ""))
|
|
187
|
+
completion_tokens = count_tokens(content)
|
|
188
|
+
total_tokens = prompt_tokens + completion_tokens
|
|
189
|
+
|
|
170
190
|
# Create the message object
|
|
171
191
|
message = ChatCompletionMessage(
|
|
172
192
|
role="assistant",
|
|
@@ -180,11 +200,11 @@ class Completions(BaseCompletions):
|
|
|
180
200
|
finish_reason="stop"
|
|
181
201
|
)
|
|
182
202
|
|
|
183
|
-
# Create the usage object
|
|
203
|
+
# Create the usage object
|
|
184
204
|
usage = CompletionUsage(
|
|
185
|
-
prompt_tokens=
|
|
186
|
-
completion_tokens=
|
|
187
|
-
total_tokens=
|
|
205
|
+
prompt_tokens=prompt_tokens,
|
|
206
|
+
completion_tokens=completion_tokens,
|
|
207
|
+
total_tokens=total_tokens
|
|
188
208
|
)
|
|
189
209
|
|
|
190
210
|
# Create the completion object
|
|
@@ -197,15 +217,31 @@ class Completions(BaseCompletions):
|
|
|
197
217
|
)
|
|
198
218
|
return completion
|
|
199
219
|
|
|
200
|
-
except
|
|
220
|
+
except RequestsError as e:
|
|
201
221
|
print(f"Error during DeepAI non-stream request: {e}")
|
|
202
222
|
raise IOError(f"DeepAI request failed: {e}") from e
|
|
223
|
+
except Exception as e:
|
|
224
|
+
print(f"Unexpected error during DeepAI non-stream request: {e}")
|
|
225
|
+
raise IOError(f"DeepAI request failed: {e}") from e
|
|
226
|
+
finally:
|
|
227
|
+
self._client.session.proxies = original_proxies
|
|
203
228
|
|
|
204
229
|
class Chat(BaseChat):
|
|
205
230
|
def __init__(self, client: 'DeepAI'):
|
|
206
231
|
self.completions = Completions(client)
|
|
207
232
|
|
|
208
233
|
class DeepAI(OpenAICompatibleProvider):
|
|
234
|
+
"""
|
|
235
|
+
OpenAI-compatible client for DeepAI API.
|
|
236
|
+
|
|
237
|
+
Usage:
|
|
238
|
+
client = DeepAI()
|
|
239
|
+
response = client.chat.completions.create(
|
|
240
|
+
model="standard",
|
|
241
|
+
messages=[{"role": "user", "content": "Hello!"}]
|
|
242
|
+
)
|
|
243
|
+
"""
|
|
244
|
+
|
|
209
245
|
AVAILABLE_MODELS = [
|
|
210
246
|
"standard",
|
|
211
247
|
"genius",
|
|
@@ -233,7 +269,6 @@ class DeepAI(OpenAICompatibleProvider):
|
|
|
233
269
|
"gemini-2.5-pro",
|
|
234
270
|
"grok-code-fast-1",
|
|
235
271
|
"gpt-4.1",
|
|
236
|
-
|
|
237
272
|
]
|
|
238
273
|
|
|
239
274
|
def __init__(
|
|
@@ -244,31 +279,84 @@ class DeepAI(OpenAICompatibleProvider):
|
|
|
244
279
|
model: str = "standard",
|
|
245
280
|
chat_style: str = "chat",
|
|
246
281
|
enabled_tools: Optional[List[str]] = None,
|
|
282
|
+
proxies: Optional[Dict[str, str]] = None,
|
|
247
283
|
**kwargs
|
|
248
284
|
):
|
|
285
|
+
"""
|
|
286
|
+
Initialize the DeepAI client.
|
|
287
|
+
|
|
288
|
+
Args:
|
|
289
|
+
api_key: DeepAI API key
|
|
290
|
+
timeout: Request timeout in seconds
|
|
291
|
+
browser: Browser type for fingerprinting
|
|
292
|
+
model: Default model to use
|
|
293
|
+
chat_style: Chat style parameter
|
|
294
|
+
enabled_tools: List of enabled tools
|
|
295
|
+
proxies: Optional proxy configuration
|
|
296
|
+
"""
|
|
297
|
+
super().__init__(proxies=proxies)
|
|
249
298
|
self.timeout = timeout
|
|
250
299
|
self.api_key = api_key
|
|
251
300
|
self.model = model
|
|
252
301
|
self.chat_style = chat_style
|
|
253
302
|
self.enabled_tools = enabled_tools or ["image_generator"]
|
|
254
303
|
|
|
255
|
-
#
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
304
|
+
# Use LitAgent for fingerprint if available, else fallback
|
|
305
|
+
agent = LitAgent()
|
|
306
|
+
self.fingerprint = agent.generate_fingerprint(browser)
|
|
307
|
+
|
|
308
|
+
# Use the fingerprint for headers
|
|
259
309
|
self.headers = {
|
|
260
310
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
261
311
|
"api-key": self.api_key,
|
|
262
|
-
"Accept": "
|
|
263
|
-
"Accept-Encoding": "gzip, deflate, br",
|
|
264
|
-
"Accept-Language":
|
|
265
|
-
"User-Agent":
|
|
312
|
+
"Accept": self.fingerprint["accept"],
|
|
313
|
+
"Accept-Encoding": "gzip, deflate, br, zstd",
|
|
314
|
+
"Accept-Language": self.fingerprint["accept_language"],
|
|
315
|
+
"User-Agent": self.fingerprint["user_agent"],
|
|
316
|
+
"DNT": "1",
|
|
317
|
+
"Sec-CH-UA": self.fingerprint["sec_ch_ua"] or '"Not/A)Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"',
|
|
318
|
+
"Sec-CH-UA-Mobile": "?0",
|
|
319
|
+
"Sec-CH-UA-Platform": f'"{self.fingerprint["platform"]}"',
|
|
266
320
|
}
|
|
267
|
-
|
|
268
|
-
#
|
|
269
|
-
self.session.
|
|
321
|
+
|
|
322
|
+
# Create session cookies with unique identifiers
|
|
323
|
+
self.cookies = {"__Host-session": uuid.uuid4().hex, '__cf_bm': uuid.uuid4().hex}
|
|
324
|
+
|
|
325
|
+
# Set consistent headers for the scraper session
|
|
326
|
+
self.session = Session()
|
|
327
|
+
for header, value in self.headers.items():
|
|
328
|
+
self.session.headers.update({header: value})
|
|
329
|
+
|
|
330
|
+
# Set cookies
|
|
331
|
+
self.session.cookies.update(self.cookies)
|
|
332
|
+
|
|
333
|
+
# Initialize the chat interface
|
|
270
334
|
self.chat = Chat(self)
|
|
271
335
|
|
|
336
|
+
def refresh_identity(self, browser: str = None, impersonate: str = "chrome120"):
|
|
337
|
+
"""Refreshes the browser identity fingerprint and curl_cffi session."""
|
|
338
|
+
browser = browser or self.fingerprint.get("browser_type", "chrome")
|
|
339
|
+
self.fingerprint = LitAgent().generate_fingerprint(browser)
|
|
340
|
+
self.session = Session(impersonate=impersonate)
|
|
341
|
+
# Update headers with new fingerprint
|
|
342
|
+
self.headers.update({
|
|
343
|
+
"Accept": self.fingerprint["accept"],
|
|
344
|
+
"Accept-Language": self.fingerprint["accept_language"],
|
|
345
|
+
"Sec-CH-UA": self.fingerprint["sec_ch_ua"] or self.headers["Sec-CH-UA"],
|
|
346
|
+
"Sec-CH-UA-Platform": f'"{self.fingerprint["platform"]}"',
|
|
347
|
+
"User-Agent": self.fingerprint["user_agent"],
|
|
348
|
+
})
|
|
349
|
+
|
|
350
|
+
# Update session headers
|
|
351
|
+
for header, value in self.headers.items():
|
|
352
|
+
self.session.headers.update({header: value})
|
|
353
|
+
|
|
354
|
+
# Generate new cookies
|
|
355
|
+
self.cookies = {"__Host-session": uuid.uuid4().hex, '__cf_bm': uuid.uuid4().hex}
|
|
356
|
+
self.session.cookies.update(self.cookies)
|
|
357
|
+
|
|
358
|
+
return self.fingerprint
|
|
359
|
+
|
|
272
360
|
@classmethod
|
|
273
361
|
def get_models(cls, api_key: str = None):
|
|
274
362
|
"""Fetch available models from DeepAI API.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: webscout
|
|
3
|
-
Version: 2025.10.19.
|
|
3
|
+
Version: 2025.10.19.3
|
|
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
|
|
@@ -58,7 +58,6 @@ Requires-Dist: gradio_client
|
|
|
58
58
|
Requires-Dist: psutil
|
|
59
59
|
Requires-Dist: aiohttp
|
|
60
60
|
Requires-Dist: zstandard
|
|
61
|
-
Requires-Dist: brotli
|
|
62
61
|
Requires-Dist: litproxy
|
|
63
62
|
Provides-Extra: dev
|
|
64
63
|
Requires-Dist: ruff>=0.1.6; extra == "dev"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/GitToolkit/gitapi/__init__.py
RENAMED
|
File without changes
|
{webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/GitToolkit/gitapi/repository.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Extra/autocoder/autocoder_utiles.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/PERPLEXED_search.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/genspark_search.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/stellar_search.py
RENAMED
|
File without changes
|
{webscout-2025.10.19.1 → webscout-2025.10.19.3}/webscout/Provider/AISEARCH/webpilotai_search.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|