webscout 7.8__py3-none-any.whl → 8.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (66) hide show
  1. webscout/Bard.py +5 -25
  2. webscout/DWEBS.py +476 -476
  3. webscout/Extra/GitToolkit/__init__.py +10 -0
  4. webscout/Extra/GitToolkit/gitapi/__init__.py +12 -0
  5. webscout/Extra/GitToolkit/gitapi/repository.py +195 -0
  6. webscout/Extra/GitToolkit/gitapi/user.py +96 -0
  7. webscout/Extra/GitToolkit/gitapi/utils.py +62 -0
  8. webscout/Extra/YTToolkit/ytapi/video.py +232 -103
  9. webscout/Extra/__init__.py +2 -0
  10. webscout/Extra/autocoder/__init__.py +1 -1
  11. webscout/Extra/autocoder/{rawdog.py → autocoder.py} +849 -849
  12. webscout/Extra/tempmail/__init__.py +26 -0
  13. webscout/Extra/tempmail/async_utils.py +141 -0
  14. webscout/Extra/tempmail/base.py +156 -0
  15. webscout/Extra/tempmail/cli.py +187 -0
  16. webscout/Extra/tempmail/mail_tm.py +361 -0
  17. webscout/Extra/tempmail/temp_mail_io.py +292 -0
  18. webscout/Provider/AISEARCH/__init__.py +5 -1
  19. webscout/Provider/AISEARCH/hika_search.py +194 -0
  20. webscout/Provider/AISEARCH/monica_search.py +246 -0
  21. webscout/Provider/AISEARCH/scira_search.py +320 -0
  22. webscout/Provider/AISEARCH/webpilotai_search.py +281 -0
  23. webscout/Provider/AllenAI.py +255 -122
  24. webscout/Provider/DeepSeek.py +1 -2
  25. webscout/Provider/Deepinfra.py +296 -286
  26. webscout/Provider/ElectronHub.py +709 -716
  27. webscout/Provider/ExaAI.py +261 -0
  28. webscout/Provider/ExaChat.py +28 -6
  29. webscout/Provider/Gemini.py +167 -165
  30. webscout/Provider/GithubChat.py +2 -1
  31. webscout/Provider/Groq.py +38 -24
  32. webscout/Provider/LambdaChat.py +2 -1
  33. webscout/Provider/Netwrck.py +3 -2
  34. webscout/Provider/OpenGPT.py +199 -0
  35. webscout/Provider/PI.py +39 -24
  36. webscout/Provider/TextPollinationsAI.py +232 -230
  37. webscout/Provider/Youchat.py +326 -296
  38. webscout/Provider/__init__.py +10 -4
  39. webscout/Provider/ai4chat.py +58 -56
  40. webscout/Provider/akashgpt.py +34 -22
  41. webscout/Provider/copilot.py +427 -427
  42. webscout/Provider/freeaichat.py +9 -2
  43. webscout/Provider/labyrinth.py +121 -20
  44. webscout/Provider/llmchatco.py +306 -0
  45. webscout/Provider/scira_chat.py +271 -0
  46. webscout/Provider/typefully.py +280 -0
  47. webscout/Provider/uncovr.py +312 -299
  48. webscout/Provider/yep.py +64 -12
  49. webscout/__init__.py +38 -36
  50. webscout/cli.py +293 -293
  51. webscout/conversation.py +350 -17
  52. webscout/litprinter/__init__.py +59 -667
  53. webscout/optimizers.py +419 -419
  54. webscout/update_checker.py +14 -12
  55. webscout/version.py +1 -1
  56. webscout/webscout_search.py +1346 -1282
  57. webscout/webscout_search_async.py +877 -813
  58. {webscout-7.8.dist-info → webscout-8.0.dist-info}/METADATA +44 -39
  59. {webscout-7.8.dist-info → webscout-8.0.dist-info}/RECORD +63 -46
  60. webscout/Provider/DARKAI.py +0 -225
  61. webscout/Provider/EDITEE.py +0 -192
  62. webscout/litprinter/colors.py +0 -54
  63. {webscout-7.8.dist-info → webscout-8.0.dist-info}/LICENSE.md +0 -0
  64. {webscout-7.8.dist-info → webscout-8.0.dist-info}/WHEEL +0 -0
  65. {webscout-7.8.dist-info → webscout-8.0.dist-info}/entry_points.txt +0 -0
  66. {webscout-7.8.dist-info → webscout-8.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: webscout
3
- Version: 7.8
3
+ Version: 8.0
4
4
  Summary: Search for anything using Google, DuckDuckGo, phind.com, Contains AI models, can transcribe yt videos, temporary email and phone number generation, has TTS support, webai (terminal gpt and open interpreter) and offline LLMs and more
5
5
  Author: OEvortex
6
6
  Author-email: helpingai5@gmail.com
@@ -59,35 +59,40 @@ Provides-Extra: dev
59
59
  Requires-Dist: ruff>=0.1.6; extra == "dev"
60
60
  Requires-Dist: pytest>=7.4.2; extra == "dev"
61
61
 
62
- <div align="center">
63
- <!-- Replace `#` with your actual links -->
64
- <a href="https://t.me/PyscoutAI"><img alt="Telegram" src="https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
65
- <a href="https://www.instagram.com/oevortex/"><img alt="Instagram" src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white"></a>
66
- <a href="https://www.linkedin.com/in/oe-vortex-29a407265/"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white"></a>
67
- <a href="https://buymeacoffee.com/oevortex"><img alt="Buy Me A Coffee" src="https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=for-the-badge&logo=buymeacoffee&logoColor=black"></a>
68
- </div>
69
62
 
70
63
  <div align="center">
71
- <!-- Replace `#` with your actual links -->
72
- <a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
64
+ <a href="https://github.com/OEvortex/Webscout">
65
+ <!-- Consider adding a dedicated Webscout logo here if you have one -->
66
+ <img src="https://img.shields.io/badge/WebScout-Ultimate%20Toolkit-blue?style=for-the-badge&logo=python&logoColor=white" alt="WebScout Logo">
67
+ </a>
68
+ <br/>
69
+ <h1>Webscout</h1>
70
+ <p><strong>Your All-in-One Python Toolkit for Web Search, AI Interaction, Digital Utilities, and More.</strong></p>
71
+ <p>
72
+ Access diverse search engines, cutting-edge AI models, temporary communication tools, media utilities, developer helpers, and powerful CLI interfaces – all through one unified library.
73
+ </p>
74
+
75
+ <!-- Badges -->
76
+ <p>
77
+ <a href="https://pypi.org/project/webscout/"><img src="https://img.shields.io/pypi/v/webscout.svg?style=flat-square&logo=pypi&label=PyPI" alt="PyPI Version"></a>
78
+ <a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout/month?style=flat-square" alt="Monthly Downloads"></a>
79
+ <a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout?style=flat-square" alt="Total Downloads"></a>
80
+ <a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout?style=flat-square&logo=python" alt="Python Version"></a>
81
+ <!-- Add License Badge if applicable: <a href="LICENSE"><img src="https://img.shields.io/pypi/l/webscout?style=flat-square" alt="License"></a> -->
82
+ <!-- Add Build Status Badge if applicable -->
83
+ </p>
84
+
85
+ <!-- Social/Support Links -->
86
+ <div>
87
+ <a href="https://t.me/PyscoutAI"><img alt="Telegram Group" src="https://img.shields.io/badge/Telegram%20Group-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
88
+ <a href="https://t.me/ANONYMOUS_56788"><img alt="Developer Telegram" src="https://img.shields.io/badge/Developer%20Contact-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
89
+ <a href="https://youtube.com/@OEvortex"><img alt="YouTube" src="https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white"></a>
90
+ <a href="https://www.linkedin.com/in/oe-vortex-29a407265/"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white"></a>
91
+ <a href="https://www.instagram.com/oevortex/"><img alt="Instagram" src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white"></a>
92
+ <a href="https://buymeacoffee.com/oevortex"><img alt="Buy Me A Coffee" src="https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=for-the-badge&logo=buymeacoffee&logoColor=black"></a>
93
+ </div>
73
94
  </div>
74
- <div align="center">
75
- <a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
76
- </div>
77
-
78
- <p align="center">
79
- <strong>Webscout</strong> is the all-in-one search and AI toolkit you need.
80
- <br>
81
- Discover insights with Yep.com, DuckDuckGo, and Phind; access cutting-edge AI models; transcribe YouTube videos; generate temporary emails and phone numbers; perform text-to-speech conversions; and much more!
82
- </p>
83
95
 
84
- <div align="center">
85
- <img src="https://img.shields.io/badge/WebScout-API-blue?style=for-the-badge&logo=WebScout" alt="WebScout API Badge">
86
- <a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout" alt="Python Version"></a>
87
- <a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout" alt="Downloads"></a>
88
- </div>
89
-
90
- ---
91
96
 
92
97
  ## 🚀 Features
93
98
 
@@ -95,7 +100,7 @@ Requires-Dist: pytest>=7.4.2; extra == "dev"
95
100
  * **AI Powerhouse:** Access and interact with various AI models, including OpenAI, Cohere, and more.
96
101
  * **[YouTube Toolkit](webscout/Extra/YTToolkit):** Advanced YouTube video and transcript management with multi-language support, versatile downloading, and intelligent data extraction
97
102
  * **[GitAPI](webscout/Extra/GitToolkit/gitapi):** Powerful GitHub data extraction toolkit for seamless repository and user information retrieval, featuring commit tracking, issue management, and comprehensive user analytics - all without authentication requirements for public data
98
- * **Tempmail & Temp Number:** Generate temporary email addresses and phone numbers for enhanced privacy.
103
+ * **[Tempmail](webscout/Extra/tempmail/README.md) & Temp Number:** Generate temporary email addresses and phone numbers for enhanced privacy.
99
104
  * **[Text-to-Speech (TTS)](webscout/Provider/TTS/README.md):** Convert text into natural-sounding speech using multiple AI-powered providers like ElevenLabs, StreamElements, and Voicepods.
100
105
  * **GGUF Conversion & Quantization:** Convert and quantize Hugging Face models to GGUF format.
101
106
  * **[SwiftCLI](webscout/swiftcli/Readme.md):** A powerful and elegant CLI framework that makes it easy to create beautiful command-line interfaces.
@@ -151,13 +156,13 @@ async def main():
151
156
  if numbers:
152
157
  number = numbers[0]['full_number']
153
158
  inbox = vn.get_number_inbox(country, number)
154
-
159
+
155
160
  # Serialize inbox data to JSON string
156
161
  json_data = json.dumps(inbox, ensure_ascii=False, indent=4)
157
-
162
+
158
163
  # Print with UTF-8 encoding
159
164
  print(json_data)
160
-
165
+
161
166
  async with TempMail() as client:
162
167
  domains = await client.get_domains()
163
168
  print("Available Domains:", domains)
@@ -333,7 +338,7 @@ await main()
333
338
  ```python
334
339
  from webscout import WEBS
335
340
 
336
- # Text search for 'live free or die' using DuckDuckGo.com
341
+ # Text search for 'live free or die' using DuckDuckGo.com
337
342
  with WEBS() as WEBS:
338
343
  for r in WEBS.text('live free or die', region='wt-wt', safesearch='off', timelimit='y', max_results=10):
339
344
  print(r)
@@ -347,7 +352,7 @@ with WEBS() as WEBS:
347
352
  ```python
348
353
  from webscout import WEBS
349
354
 
350
- # Instant answers for the query "sun" using DuckDuckGo.com
355
+ # Instant answers for the query "sun" using DuckDuckGo.com
351
356
  with WEBS() as WEBS:
352
357
  for r in WEBS.answers("sun"):
353
358
  print(r)
@@ -358,7 +363,7 @@ with WEBS() as WEBS:
358
363
  ```python
359
364
  from webscout import WEBS
360
365
 
361
- # Image search for the keyword 'butterfly' using DuckDuckGo.com
366
+ # Image search for the keyword 'butterfly' using DuckDuckGo.com
362
367
  with WEBS() as WEBS:
363
368
  keywords = 'butterfly'
364
369
  WEBS_images_gen = WEBS.images(
@@ -380,7 +385,7 @@ with WEBS() as WEBS:
380
385
  ```python
381
386
  from webscout import WEBS
382
387
 
383
- # Video search for the keyword 'tesla' using DuckDuckGo.com
388
+ # Video search for the keyword 'tesla' using DuckDuckGo.com
384
389
  with WEBS() as WEBS:
385
390
  keywords = 'tesla'
386
391
  WEBS_videos_gen = WEBS.videos(
@@ -711,7 +716,7 @@ print(response["message"]) # Access the text message
711
716
  print("Sources:", response["sources"]) # Access sources (if any)
712
717
 
713
718
  # Image generation
714
- response = meta_ai.ask("Create an image of a cat wearing a hat.")
719
+ response = meta_ai.ask("Create an image of a cat wearing a hat.")
715
720
  print(response["message"]) # Print the text message from the response
716
721
  for media in response["media"]:
717
722
  print(media["url"]) # Access image URLs
@@ -896,7 +901,7 @@ a = AndiSearch()
896
901
  print(a.chat("HelpingAI-9B"))
897
902
  ```
898
903
 
899
- ### `LLAMA`, `C4ai`, `Venice`, `Copilot`, `HuggingFaceChat`, `TwoAI`, `HeckAI`, `AllenAI`, `PerplexityLabs`, `AkashGPT`, `DeepSeek`, `WiseCat`, `IBMGranite`, `QwenLM`, `ChatGPTGratis`, `TextPollinationsAI`, `GliderAI`, `Cohere`, `REKA`, `GROQ`, `AsyncGROQ`, `OPENAI`, `AsyncOPENAI`, `KOBOLDAI`, `AsyncKOBOLDAI`, `BLACKBOXAI`, `PhindSearch`, `GEMINI`, `DeepInfra`, `AI4Chat`, `Phindv2`, `OLLAMA`, `AndiSearch`, `PIZZAGPT`, `Sambanova`, `DARKAI`, `KOALA`, `Meta`, `AskMyAI`, `PiAI`, `Julius`, `YouChat`, `YEPCHAT`, `Cloudflare`, `TurboSeek`, `Editee`, `TeachAnything`, `AI21`, `Chatify`, `X0GPT`, `Cerebras`, `Lepton`, `GEMINIAPI`, `Cleeai`, `Elmo`, `Free2GPT`, `GPTWeb`, `Netwrck`, `LlamaTutor`, `PromptRefine`, `TutorAI`, `ChatGPTES`, `Bagoodex`, `AIMathGPT`, `GaurishCerebras`, `GeminiPro`, `LLMChat`, `Talkai`, `Llama3Mitril`, `Marcus`, `TypeGPT`, `Netwrck`, `MultiChatAI`, `JadveOpenAI`, `ChatGLM`, `NousHermes`, `FreeAIChat`, `ElectronHub`, `GithubChat`, `Flowith`, `SonusAI`, `UncovrAI`, `LabyrinthAI`, `WebSim`, `LambdaChat`, `ChatGPTClone`, `VercelAI`, `ExaChat`, `AskSteve`, `Aitopia`, `SearchChatAI`
904
+ ### `LLAMA`, `C4ai`, `Venice`, `Copilot`, `HuggingFaceChat`, `TwoAI`, `HeckAI`, `AllenAI`, `PerplexityLabs`, `AkashGPT`, `DeepSeek`, `WiseCat`, `IBMGranite`, `QwenLM`, `ChatGPTGratis`, `TextPollinationsAI`, `GliderAI`, `Cohere`, `REKA`, `GROQ`, `AsyncGROQ`, `OPENAI`, `AsyncOPENAI`, `KOBOLDAI`, `AsyncKOBOLDAI`, `BLACKBOXAI`, `PhindSearch`, `GEMINI`, `DeepInfra`, `AI4Chat`, `Phindv2`, `OLLAMA`, `AndiSearch`, `PIZZAGPT`, `Sambanova`, `KOALA`, `Meta`, `AskMyAI`, `PiAI`, `Julius`, `YouChat`, `YEPCHAT`, `Cloudflare`, `TurboSeek`, `TeachAnything`, `AI21`, `Chatify`, `X0GPT`, `Cerebras`, `Lepton`, `GEMINIAPI`, `Cleeai`, `Elmo`, `Free2GPT`, `GPTWeb`, `Netwrck`, `LlamaTutor`, `PromptRefine`, `TutorAI`, `ChatGPTES`, `Bagoodex`, `AIMathGPT`, `GaurishCerebras`, `GeminiPro`, `LLMChat`, `Talkai`, `Llama3Mitril`, `Marcus`, `TypeGPT`, `Netwrck`, `MultiChatAI`, `JadveOpenAI`, `ChatGLM`, `NousHermes`, `FreeAIChat`, `ElectronHub`, `GithubChat`, `Flowith`, `SonusAI`, `UncovrAI`, `LabyrinthAI`, `WebSim`, `LambdaChat`, `ChatGPTClone`, `VercelAI`, `ExaChat`, `AskSteve`, `Aitopia`, `SearchChatAI`, `LLMChatCo`, `TypefullyAI`, `ExaAI`, `OpenGPT`, `SciraAI`
900
905
 
901
906
  Code is similar to other providers.
902
907
 
@@ -930,9 +935,9 @@ Webscout provides tools to convert and quantize Hugging Face models into the GGU
930
935
  from webscout.Extra.gguf import ModelConverter
931
936
  """
932
937
  Valid quantization methods:
933
- "q2_k", "q3_k_l", "q3_k_m", "q3_k_s",
934
- "q4_0", "q4_1", "q4_k_m", "q4_k_s",
935
- "q5_0", "q5_1", "q5_k_m", "q5_k_s",
938
+ "q2_k", "q3_k_l", "q3_k_m", "q3_k_s",
939
+ "q4_0", "q4_1", "q4_k_m", "q4_k_s",
940
+ "q5_0", "q5_1", "q5_k_m", "q5_k_s",
936
941
  "q6_k", "q8_0"
937
942
  """
938
943
  # Create a converter instance
@@ -1,28 +1,33 @@
1
1
  webscout/AIauto.py,sha256=7zf3YHvSItQwKvfbS3Nl1sGdaqha5mjaQOizdFNcMlQ,4928
2
2
  webscout/AIbase.py,sha256=gksLU3cxp_GnbUqD4mX58tlr4-e6_rqdwVhTUXmJncM,3762
3
3
  webscout/AIutel.py,sha256=3o3tc2-0ro9ITTozFuA35oe0aPKwgm8DtzSSPKmpAYg,4046
4
- webscout/Bard.py,sha256=TsEl0uUG8Qljm9dfSHn0Rr-frl4Rpv0NNUsaqFujSNo,21424
5
- webscout/DWEBS.py,sha256=HxcVGTdG8o_sLdXWMBwpu_Ys7gRXifjAobAFmgpIAOw,15803
4
+ webscout/Bard.py,sha256=WIquaAjoDck5XTq27uT6YVyA5RKTdF8xQ9YNFrLrj1w,20503
5
+ webscout/DWEBS.py,sha256=UvUlOfoGN9DcVXFlWC6QKCRGtKYr5f2YTqLiIwBNDFs,16279
6
6
  webscout/LLM.py,sha256=p8Zq5P8lCcg98R1b6YQeUIzmf0b6pJDX_QDjwOXl870,16788
7
- webscout/__init__.py,sha256=qvwr3d01AAJtSHa1EE287Ru1nakoVqvEARrrg3Sb8ug,901
7
+ webscout/__init__.py,sha256=Ce-d49C2BuIRwp4I_Cwl9D0AZxfHFZkYXZqBUkw44NI,1060
8
8
  webscout/__main__.py,sha256=qtkMZK5jzQ79ZkFAuZBxMgayuhmw3aRDj1F8Pt06NW4,108
9
- webscout/cli.py,sha256=9AoW6FvJYj4hlrZW0gHdIMi0qVqtN-rGfpDKlHc2V7I,11813
10
- webscout/conversation.py,sha256=95GHElLxqdId_cuM43RX7P240DM8xqSknwcccmBCjbo,8636
9
+ webscout/cli.py,sha256=JRuln7gu7E3-8-CgYcZZwJu4Q-1K2xl55hG_jKW_L9k,12106
10
+ webscout/conversation.py,sha256=wmRZ1xvlx9L1gdOnSSQlxze1cSbFwgm6TEBykNOh2QI,21829
11
11
  webscout/exceptions.py,sha256=9rSq7sUFgZYe9UJ6qOlC20xowfzHDTghwGCS6osA8hM,12007
12
12
  webscout/models.py,sha256=C7QY-KDkqFCI698t9pvTHQ27rYadPIvwaYHJ3-AOCJI,6566
13
- webscout/optimizers.py,sha256=Ji4vyy0eXXoLu6SsXeyKL0WdvBbWwwBpeS9DK__rpZc,10710
13
+ webscout/optimizers.py,sha256=NlnxWCav7cTyjfeLHuq2pUCgqgW1pljWbMTklHYMGwo,9954
14
14
  webscout/prompt_manager.py,sha256=F42AiUIqYIcB-8HNE6VznFwfddAw6DBtfQnGqlDtkMQ,9642
15
15
  webscout/tempid.py,sha256=lqTTOjVSwDMmC0UoThdyshFyIAxTikVaN613-6K3g_s,4968
16
- webscout/update_checker.py,sha256=LguHgBAf7Qi0eNcS5-eLeWWs2U7xn-bcjO2ad4kZoL0,4152
16
+ webscout/update_checker.py,sha256=5FCr6p1zLVASXcXkxKEgR7bFvICbpzJdgRTr3teKFCs,4217
17
17
  webscout/utils.py,sha256=o2hU3qaVPk25sog3e4cyVZO3l8xwaZpYRziZPotEzNo,3075
18
- webscout/version.py,sha256=zJHHhjGs6QuLNLqekFDYOSowGKFb3-QuqbOAXD9dv4U,44
19
- webscout/webscout_search.py,sha256=Hy3fDov2qAr5mZIT1RS1eFErWRqgTYZLJeWZUeRhCeI,51613
20
- webscout/webscout_search_async.py,sha256=Li2FrEzU00pKYHWwgv9x4nLsWfMNX5O-jwhXOGw2xhI,31983
18
+ webscout/version.py,sha256=KvGXoGG6jrzbUov_tC_VLoK4WigD9MM5LDFtVtgAdvQ,44
19
+ webscout/webscout_search.py,sha256=rTqQO1e8S8i9okFO5y_2lznyh4BQ4AEzTTcM-70TWTc,55674
20
+ webscout/webscout_search_async.py,sha256=fKQ01dBCJoHmB47QJoAoTz5mns9lb0V_jgbHY2NpVnk,35680
21
21
  webscout/yep_search.py,sha256=4jIn9KKXD6zJMdg302o4rzHQwFAy4haWoIagFn1XjLM,10429
22
- webscout/Extra/__init__.py,sha256=g7u9cqdBuZszi6VvbpYUfKWY2W3_0PE9ozmzJzEt-Cw,127
22
+ webscout/Extra/__init__.py,sha256=KvJRsRBRO-fZp2jSCl6KQnPppi93hriA6O_U1O1s31c,177
23
23
  webscout/Extra/gguf.py,sha256=KpkKIIQf2wtCrWuAdqThLQjQGPziPsGzgcSVuNhObfk,29220
24
24
  webscout/Extra/weather.py,sha256=Xfxzt43U5m7qpK3h4pzQ55Zh9JVu5HS6XUeLJccASkE,7841
25
25
  webscout/Extra/weather_ascii.py,sha256=k6U0F9w5xXPvYK-Wq3pjUh7W0gGJG4e_YhxeUI65Vpk,2612
26
+ webscout/Extra/GitToolkit/__init__.py,sha256=S8clC97xkihcsxfbAO9QOmSO2ljLOiQFoUh_klhp2zw,146
27
+ webscout/Extra/GitToolkit/gitapi/__init__.py,sha256=e3Vu2X8qwOEpNBIbVONhJhhFtu1_3c3ylFAxi1VO_2g,265
28
+ webscout/Extra/GitToolkit/gitapi/repository.py,sha256=nbagmnp9fiEfGnseelCpSGc0xS5k3TguhkRB1y0O0Xg,7319
29
+ webscout/Extra/GitToolkit/gitapi/user.py,sha256=Hto5xZojqDfphWR62yXVYwqeDZqLJEFTfbRqaPg6_kk,3630
30
+ webscout/Extra/GitToolkit/gitapi/utils.py,sha256=Qku8PVk5aRQXLc4GJhnDgoPnMNVgR00hxgWizZVDoM8,1896
26
31
  webscout/Extra/YTToolkit/YTdownloader.py,sha256=xnGPCBmMwjjb-x7cTOiR01scufNq4I8gnAct4qKUpoI,33051
27
32
  webscout/Extra/YTToolkit/__init__.py,sha256=xuEyGmDWvtI62R7EtChdphavQzLn_2AknVUVWlY0ssY,77
28
33
  webscout/Extra/YTToolkit/transcriber.py,sha256=Nta6hVqQr4fIkJwcq6y3fQiE0jeOOZG1w6NSkrf_KLQ,19050
@@ -37,10 +42,16 @@ webscout/Extra/YTToolkit/ytapi/pool.py,sha256=7sM_ncFqmkcPzqMY8O9dAeJsxO1eYU49HU
37
42
  webscout/Extra/YTToolkit/ytapi/query.py,sha256=A5WJv3ZCz-s_92PFjJwRnmYFv6T7N39daZysdiKavGU,1545
38
43
  webscout/Extra/YTToolkit/ytapi/stream.py,sha256=yjIrAFgSNN0Ba8JxwN3M85EgrAMnknZp631w_udAiJ8,2101
39
44
  webscout/Extra/YTToolkit/ytapi/utils.py,sha256=mmmUCDMXy3TKauPj6T7PWfEYBAcQ8WiR13xspmlT_SM,2028
40
- webscout/Extra/YTToolkit/ytapi/video.py,sha256=8KBUDgC4bTpFCANSdexGqbTJOzT95wmaqg5cLortR-c,4050
41
- webscout/Extra/autocoder/__init__.py,sha256=6cQVutEnH53SQ_5OrvT-ZPheCaEZZ5qqkT9Oq4-Nhss,227
45
+ webscout/Extra/YTToolkit/ytapi/video.py,sha256=rP4dGzi6QkdB7oHaQU_HGb_auKW8NnuMq2diaBCkSzE,8912
46
+ webscout/Extra/autocoder/__init__.py,sha256=Py5-Lq6xLwzp4odeJdGVJ91EgKpPLRMcNyX6jAZpOvQ,230
47
+ webscout/Extra/autocoder/autocoder.py,sha256=ifyaG0uf5ahOZ-2jBpsj19yf55xiEvU6SXKsnJD1N7I,33332
42
48
  webscout/Extra/autocoder/autocoder_utiles.py,sha256=JNdeuoo6SmfH5KOOOvklb1jdfNNTmJ8tTyQhRnEtHdM,20574
43
- webscout/Extra/autocoder/rawdog.py,sha256=R0LPxzXfFUuWOIXFItNbVfpGlBGADjpVMHBR2S0xUI0,32482
49
+ webscout/Extra/tempmail/__init__.py,sha256=f8zICH2hUG7unTX0qelHNJYRnOaPWc6Ws4KZEEglIQo,570
50
+ webscout/Extra/tempmail/async_utils.py,sha256=2IB6OY8NcfYPTqjWd_RLOk1lzYsuzWeJHlmbtWA-E10,4415
51
+ webscout/Extra/tempmail/base.py,sha256=WNUE5VwObXatGMe0QtloQgbqsqv5Y-58fLWLLH4cwew,5211
52
+ webscout/Extra/tempmail/cli.py,sha256=7KBMVodQtN2vM17WMo3OkGesNId6Vch0twjkyB122NY,7017
53
+ webscout/Extra/tempmail/mail_tm.py,sha256=yDGZjVcMU_gJsXJKs3ceLULoon71QZBt4HS26DdDIro,12966
54
+ webscout/Extra/tempmail/temp_mail_io.py,sha256=CrF7VERHqxdgAUHDmhijko3DzaWbsoQsem2DhNotUSM,9715
44
55
  webscout/Litlogger/__init__.py,sha256=0lHzxdl5CpGBAABvW4YqVb1-FOibEvTe4SOx8ORHmzs,1568
45
56
  webscout/Litlogger/core/__init__.py,sha256=zgZvP-lBrspukBu8LhQb7SUkSIh9HdsVbzpoZyaq110,130
46
57
  webscout/Litlogger/core/level.py,sha256=fe0Lz5G-gMpsKAzoLgTUJ53IaFaa5ruXiw4q1ritGI4,584
@@ -58,7 +69,7 @@ webscout/Litlogger/utils/detectors.py,sha256=VvpiL1baVrxN6XwksoKG1Z0hiuISwCpwQ8Y
58
69
  webscout/Litlogger/utils/formatters.py,sha256=MdgaCavaF7OKIo3b3c8BCyyvvskcNKhFQygnhoEY3R4,6100
59
70
  webscout/Provider/AI21.py,sha256=kyr07xbalGQuR-wP9L5W7c_ri5-PEEvyj42jLV56XaE,6225
60
71
  webscout/Provider/Aitopia.py,sha256=Gu0NvNVAHFHajSu1Ox4WxE8mhS_5eMOPyK5NqgRWpbk,12024
61
- webscout/Provider/AllenAI.py,sha256=nnCquJugsqKcj3rbQf8mkowYzQzRFwK1Ld2knfteLE0,10813
72
+ webscout/Provider/AllenAI.py,sha256=-vVnEPxEc1SV_RBgMgwdoWQFmNYsefNVLBYh3onI6fM,15886
62
73
  webscout/Provider/Andi.py,sha256=-Pf3ptSL7PMpVzj2WawopKNFKCC5ZhhH0e5kUFNiIb4,8778
63
74
  webscout/Provider/Blackboxai.py,sha256=al72E9hK1bpIYx7zLTkLMMRBw3CeE7GPvUZ8hh9oLVk,8130
64
75
  webscout/Provider/C4ai.py,sha256=dUcURjgCYkZ65Zc6cAom-7PRbL2H8dzX0N6SRhLzH4g,18109
@@ -68,58 +79,58 @@ webscout/Provider/ChatGPTGratis.py,sha256=HgqvYSfSvbfqG-nh3vpBWj9TweWn-yrOzoV3MN
68
79
  webscout/Provider/Chatify.py,sha256=_NoYKkz4kBZNx6n0UZ6_DouYJ1TAbUHPbug0_nAjeJg,6300
69
80
  webscout/Provider/Cloudflare.py,sha256=6pUZjdO6c63CLR9NG55Y7lJN8aWnGavsdWv4I9eQzsw,11497
70
81
  webscout/Provider/Cohere.py,sha256=oL9kAv--RSkEQxwkPTq1Wi57Wkgg0WNvL82CpTj22YY,8264
71
- webscout/Provider/DARKAI.py,sha256=Q-t6ti96cGNyAzibj5pMiU5GyU82cxvWsUWPRDf6Qv8,8981
72
- webscout/Provider/DeepSeek.py,sha256=8NmP3QaD1sjoyWCejd5PcYTdqI7SL79Fa4Icc4DUPjw,7540
73
- webscout/Provider/Deepinfra.py,sha256=B8WXayxCh94G6uLWapv_nMuuK3ecSeE3aOygrODXOxM,12728
74
- webscout/Provider/EDITEE.py,sha256=fKKp_SNI-m1NL6ULpZ9hNVrxnSYSaVwZHnDYmbwIPR0,7749
75
- webscout/Provider/ElectronHub.py,sha256=QopwJhRtmfUkFtgYA1TkcF85S17ynFFKPry31L6vI9k,23093
76
- webscout/Provider/ExaChat.py,sha256=2V9YUWEJ9S_WuWFZ68AmLUTMUDPvvuzQNFLvEukX5nQ,10851
82
+ webscout/Provider/DeepSeek.py,sha256=Hdy47w_K9YBH5s2EgU_XrLxYET7L2pr35fCCb9JxYeM,7475
83
+ webscout/Provider/Deepinfra.py,sha256=-U994bHrHTiiUkZWHTxYQ88-hOIArP5eW9oaeKsAc5E,12739
84
+ webscout/Provider/ElectronHub.py,sha256=nKfLw9HwYd6K9p-sDEl_dud4mPnqzOD9VKSJ3gXIXQI,24372
85
+ webscout/Provider/ExaAI.py,sha256=fkMw4CFCY_mLhzLK4_cygk3ah9amoV4LvsgOXw8IK1k,9738
86
+ webscout/Provider/ExaChat.py,sha256=javk0MaTYPFQouviZSC2MuA9Wiu_8-fsJkQMsnf-t1U,11549
77
87
  webscout/Provider/Free2GPT.py,sha256=FJLn2Ho5oC1bJ2syDfIVvMpMwyFJu32S0ls1rAyr-R0,9213
78
88
  webscout/Provider/GPTWeb.py,sha256=xh_mnBko6RDyz2v3KhMux-yIipipkZfVVVoUJWkbzcQ,7466
79
- webscout/Provider/Gemini.py,sha256=_8DMSU8tq4WOnEvtcEI992Hyvk3HuBn4FG2Glygy6Lk,6626
80
- webscout/Provider/GithubChat.py,sha256=jHwLPR7o8iRaL5KsRIS5suBnTtjx6wVvg1RjJtFBaX4,13856
89
+ webscout/Provider/Gemini.py,sha256=8RQPrxJ58mpSEpbo9mCn5tlo6z7krH8igqSNmHxhkbs,6558
90
+ webscout/Provider/GithubChat.py,sha256=y5xp4d125_6hp4qnoSCiiuy4eJCVSR-dLfqHihoU8ko,13883
81
91
  webscout/Provider/Glider.py,sha256=q2c6uFNMyKT6qsovZt0KHehXL7LJ1CSrplIGckEFTUA,8475
82
- webscout/Provider/Groq.py,sha256=QS0CnqZW1X0IhS3vsAy2l7iIcwwk-7wyavzfXrxteP4,29081
92
+ webscout/Provider/Groq.py,sha256=jlhbTsx32OAb1fiyxN6ypJYLYTvOpJsRPSOrvqruVYo,29563
83
93
  webscout/Provider/HeckAI.py,sha256=yihna7seFQ6vMqL6t28KNha3Wz1K0BnmZ4BzN57i_Nw,8869
84
94
  webscout/Provider/HuggingFaceChat.py,sha256=iyyDMIJUthdq0P6uv8J-oyMb60C1xLQkYOHw4A71TmQ,19412
85
95
  webscout/Provider/Hunyuan.py,sha256=45wHp9OR8iD_r5B8bLgRY7LhtevzAFQ-WXBZ44Ro8dE,11419
86
96
  webscout/Provider/Jadve.py,sha256=F4wM1LbCawZVX6040DDCPmJdXdRvHpmp9TS0QWuQths,10820
87
97
  webscout/Provider/Koboldai.py,sha256=0mnpya8GBbmBf8s2qAl88h2PjqavwbRab8G6l5mbJlU,15204
88
- webscout/Provider/LambdaChat.py,sha256=5dk29pIWlOB-_EcLIVgov90SdrKxshLwM5Sj9rGIjKU,15961
98
+ webscout/Provider/LambdaChat.py,sha256=Eg_lJ6ywC8cUohTNxR70S1idn60uN-O0xRS7Ces1qyg,15999
89
99
  webscout/Provider/Llama.py,sha256=ySwmr3drK58bekE8nxMma7U5kViYW7_WrbqXhOpn5TM,7718
90
100
  webscout/Provider/Llama3.py,sha256=aaW0jT403a4KJw07Dogp1jDMuWcDEbsSEA3qdikk2Aw,7671
91
101
  webscout/Provider/Marcus.py,sha256=Zhbu8JX-Q8-WmQ8CyBMeX3R7tpZ-BUyGsEEeQiVfhBc,5285
92
- webscout/Provider/Netwrck.py,sha256=o5FkTdqJ7CXFBdB9euMHGwuCiG_KrHgv5vpaM84opao,8612
102
+ webscout/Provider/Netwrck.py,sha256=Ef7urR4k7tEUtib-5jmEpRrS2qjtGR-bpZ011hSvrYE,8636
93
103
  webscout/Provider/OLLAMA.py,sha256=k8EbK_EqH02xiTtqubViKsHebyJFLUwug5zeP1HkDa4,15155
104
+ webscout/Provider/OpenGPT.py,sha256=gFL_FPBobLeiNAUgOBSowm1crVByHPS9neB4_XzCE1I,7595
94
105
  webscout/Provider/Openai.py,sha256=TC4BkezoLqimaqOwzX-nYC9w7hXbDCajm-bzkdyl-gA,20433
95
- webscout/Provider/PI.py,sha256=5jQ-au7VLU1iG48rDmLD-pqKnhZl42aBm0SZmNvkW-E,12156
106
+ webscout/Provider/PI.py,sha256=W-hjyJo6JykUyssisqsx5azZqdhhAPsyl6MfBWkGYSo,12608
96
107
  webscout/Provider/Perplexitylabs.py,sha256=e0k7tuh99dedBTkQxytvfwPS6x6hlaFVpZyrpvy4_Xs,16621
97
108
  webscout/Provider/Phind.py,sha256=IQGKGpPC_ODP0P2UnUZFKl1gIhAFUWc7ZB_MHdpd00c,20196
98
109
  webscout/Provider/PizzaGPT.py,sha256=8iSPQgFpev4JEtoIREs2A5L5xATTUS-hWKVMmm75mW0,7192
99
110
  webscout/Provider/QwenLM.py,sha256=lxnSF38wrupb1e7XhN8f0py8v6efwOndFh2SwvIy7Sc,10430
100
111
  webscout/Provider/Reka.py,sha256=dWw4vX91nJhAn-X1SXK72gttRaTqWNGUBFaeRJobTJg,8519
101
112
  webscout/Provider/TeachAnything.py,sha256=3hmi94hgu9lDmjxRWQgQFMK5xvJumzKBsquObpI-SnE,7176
102
- webscout/Provider/TextPollinationsAI.py,sha256=3fziAL8_OxrKe_9pbZgo5JhXgjeEIBPBYttqUZap-og,9024
113
+ webscout/Provider/TextPollinationsAI.py,sha256=kAFXJGgAItBE6Ilc31PSM4_NODArrBuoaaJTjUKuFmE,8885
103
114
  webscout/Provider/TwoAI.py,sha256=6-JZ1rxoZY3cgXpK__y4LhbUrptgzMxALef5q5NLKm0,7247
104
115
  webscout/Provider/Venice.py,sha256=64qSUwlz-zdw6sSizaZF-5Rg-lPT592P3M2oFjLS0FA,8347
105
116
  webscout/Provider/VercelAI.py,sha256=Gqn_TLBwSIgWEHqz612NSy1Dm8PdzMWCgwANR33K7OY,8462
106
117
  webscout/Provider/WebSim.py,sha256=8Ea1rKV-LCOL6H6ffgNeS2Vr70rslQUd0yVVtKRjUHA,8819
107
118
  webscout/Provider/WiseCat.py,sha256=qYffSfSbgSbERYzkQ4W8YqREMY0AFhh6h8dxT54XPIg,6997
108
- webscout/Provider/Youchat.py,sha256=PllEeJrUnj9O--ZmZNkaY5zZxhH1P0FrDjh_2pwh9dU,11501
109
- webscout/Provider/__init__.py,sha256=XDi3qAhg40Sa3JjA9wcr1cKoaZO6ndTr1CfWHsoYTVI,3941
110
- webscout/Provider/ai4chat.py,sha256=mcVr9Q6rni4DPfD7m6poibGhnyOnL3i_4ilxfyVf3fU,8147
119
+ webscout/Provider/Youchat.py,sha256=tVgyUK7cXAsQX3JBCJikxmxsH1QBm-B076pRCjsyHfM,12664
120
+ webscout/Provider/__init__.py,sha256=Vne743v4Dr2fMepbN6orgmwEgrJtorixFKoyNntmQCA,4123
121
+ webscout/Provider/ai4chat.py,sha256=S6DfY1bfZuFT2OBt2o9dDUF8clyzMlOEzNTzt6aMbro,8436
111
122
  webscout/Provider/aimathgpt.py,sha256=X1dPGdJ-Jc-6nQOnm-Bivzlo0B_n_j2A5cQK1bNrDlA,7176
112
- webscout/Provider/akashgpt.py,sha256=3FUT3Fj0mK0JdYFWKDMMVIAjNR_OB0FrL1prOXFsry4,12425
123
+ webscout/Provider/akashgpt.py,sha256=fswzQktBU2dnD0b-kZjlB_yygFxk3xSIWnrSk_8Nino,13087
113
124
  webscout/Provider/askmyai.py,sha256=b300MrPkjRebccZimZe3C0FttySwbMf6rVjTqlJQEy8,5920
114
125
  webscout/Provider/asksteve.py,sha256=_HYSNxs6A5S6QwwHl10Iq5E1xHZ1NXiQeuwRYUzZi-w,7736
115
126
  webscout/Provider/bagoodex.py,sha256=XOmIvOn_P7dpNBgylCveaCIXpAU6awGkvEphZZHrYCM,5063
116
127
  webscout/Provider/cerebras.py,sha256=cloRZdjz6ZfdPJJD_narRsJac9fZgoPMugheajkev1s,8595
117
128
  webscout/Provider/chatglm.py,sha256=0pOS8HQ5bnUjY5E7yjenLLycpQVieNZmD06Wm4KhiwI,8220
118
129
  webscout/Provider/cleeai.py,sha256=lgIBs5JpNaY-gfwUBorZdSeA_Q7tawfTvkWWTg7EfuI,7981
119
- webscout/Provider/copilot.py,sha256=TxGWSDG8kpkzEAk-mdpJzD81rqFfMBfzJU0_L9SZpQc,18579
130
+ webscout/Provider/copilot.py,sha256=Au04Xw0VW5LJB6ODuO7qt097qr7jxG9C4UpoVyfTlNI,19006
120
131
  webscout/Provider/elmo.py,sha256=5myTgfEuZTtFHw5C2NT7iY2BjPUwEEkdLlo1m3Nhygc,9317
121
132
  webscout/Provider/flowith.py,sha256=o5V7DCeS7ysZ-Ttm9OtmmvYm9_3V-kUFPChga0Of6DE,7719
122
- webscout/Provider/freeaichat.py,sha256=C1lnbbh5Rymxg1ZaP-3zTnCMdbqBCjl93tO7B5gVcuY,9553
133
+ webscout/Provider/freeaichat.py,sha256=waRu1GiRTUDJFmpsesknqU8Fk7omUIIiNh_QS3KlLGY,9744
123
134
  webscout/Provider/gaurish.py,sha256=-OVX6STSjt0pYn6lH5RiJZ5YPsYtWEorjBgENEsvsAQ,9998
124
135
  webscout/Provider/geminiapi.py,sha256=-_QbDBF_IiYyOJ0_uAIcE-gfzIs8H86nA5VWX52SRoY,8505
125
136
  webscout/Provider/geminiprorealtime.py,sha256=2ThViylzCGgKl7UfdFQoPdcsYJKIvf4t4wU0cXXQ43I,5775
@@ -127,29 +138,36 @@ webscout/Provider/granite.py,sha256=FuRO4msa5WRd5Wpy1zNvLJtHmBkG-IV9cLBSdZwI3iM,
127
138
  webscout/Provider/hermes.py,sha256=QYvzwhdOPYykGyWl4NVLnV5bxrqYTb19lu0OFN2dADE,8404
128
139
  webscout/Provider/julius.py,sha256=ra20kGPafLDgV8gd2Z-Yce5eKlgSjFl4CpyHtEmHIlg,8583
129
140
  webscout/Provider/koala.py,sha256=C1Mxj2hawrUfo_CYC_hjzZPH6ruQSl1Vbg3B93SR-v8,11045
130
- webscout/Provider/labyrinth.py,sha256=fREg50o1UUJhkR0AYsELyqu4g3jTCb9NJz46GTM73Qc,11135
141
+ webscout/Provider/labyrinth.py,sha256=jX7w-ueTxZv3J0Vhes8vnPZEsGUPP_RwrdGE3GIG36E,14912
131
142
  webscout/Provider/learnfastai.py,sha256=luHIgnzYrdwI3ZhTTR4-B1XQDFTgxHO2CnZ3w97Fp3M,10377
132
143
  webscout/Provider/lepton.py,sha256=Q-hbKwaDbRCvSFbDWqUPxir0dkiufx6eQt6hFeLaWVU,7522
133
144
  webscout/Provider/llama3mitril.py,sha256=0sTD6mtVT1SwTPPyhTdPg592Wf39DHum20vThinP5Eg,6641
134
145
  webscout/Provider/llamatutor.py,sha256=94LSHZI8GrColyum_diVZTolFUB27gqh-EsSlz8qsqI,6791
135
146
  webscout/Provider/llmchat.py,sha256=lel0r3OZKSm1HPDBvwkjUI_pEU36gYC-vGWzr-6xhPY,7831
147
+ webscout/Provider/llmchatco.py,sha256=Mqe2SG3yGZVOFhOFXu3XkE7-ATAmzzB_s9hPJQrCbRs,11848
136
148
  webscout/Provider/meta.py,sha256=qWpVmSACYkEKsW8wRpm-rnlFJoOyku-WkfPGgGjUUYY,30717
137
149
  webscout/Provider/multichat.py,sha256=tsEudoeTFk30l9m8CRS0QVnK0jdceS1BPktcxmIqwdo,12419
138
150
  webscout/Provider/promptrefine.py,sha256=et8bNFf74Bn06SG0-3o8XNE5cJC_mRr5tTI3dqZAbE8,7731
151
+ webscout/Provider/scira_chat.py,sha256=x4GZdIOGlPbWvd2zrqT7SSzecEQbXdOFSCVIb2DTr6U,10638
139
152
  webscout/Provider/searchchat.py,sha256=0heQnkBBsqRSnKurblPOXZ0hEPILs91VtXUG-QbsYik,11933
140
153
  webscout/Provider/sonus.py,sha256=d2UUuD1ooxoQYXiJUsEctU2sBKZpWveIvxixgKlsP3M,8394
141
154
  webscout/Provider/talkai.py,sha256=18EB9FPx2rOWdnuqMtBZc_QbLWKNFj06n1Xdtm6npwg,7613
142
155
  webscout/Provider/turboseek.py,sha256=R2vbYHU7vJyhjRKHpPYfVl7P6V23_WuZSL5vlxuKnFA,8563
143
156
  webscout/Provider/tutorai.py,sha256=d__8jPhXtJKeOGlqwlxqW3f5meRDi2e3vNWVrOhEMrs,11278
157
+ webscout/Provider/typefully.py,sha256=loOxnRPRv920yoHYKn1RgY61teEvA9_zhchvuLNiWLU,10766
144
158
  webscout/Provider/typegpt.py,sha256=ET-tUh3p-72sY6F39aMwVi5k1PGwjBjhanlXhhMGdxY,17369
145
- webscout/Provider/uncovr.py,sha256=20PYmtiSBDShxrKria8bZOGEti64A4P6X4xUuyTbHLA,12703
159
+ webscout/Provider/uncovr.py,sha256=0-OlppjOjKO5_ozzYtzUtut2CbReAlv3bXG4GpuVdH0,13393
146
160
  webscout/Provider/x0gpt.py,sha256=5THMLSDxTOzIXh4ZJFnBTxp1uU-6ospTo_u9vrThJ1Y,9459
147
- webscout/Provider/yep.py,sha256=150faJvEVdqhZyvL-TeqVN0KmqUV1sAk1XuFjTo1Uhw,13734
161
+ webscout/Provider/yep.py,sha256=Hul4EtWM9kqx_mYaLdoVdyYqGydta4tNrJUffY0fgKU,16957
148
162
  webscout/Provider/AISEARCH/DeepFind.py,sha256=WF9y92ep-1Vlxd0TRlOOqrUK7-0ACmpJLV65PjYDG7s,10315
149
163
  webscout/Provider/AISEARCH/ISou.py,sha256=CWKq0YE0Qt0e5J2MPjlCNgll7k_-5GrK1UI0r-kZZ_M,9982
150
- webscout/Provider/AISEARCH/__init__.py,sha256=mO1mvCXUK7pAkjD7LAg3CFqqr0TbiX_B72e7P7niGIo,104
164
+ webscout/Provider/AISEARCH/__init__.py,sha256=dDtbVv97VPHOddXTIc1umcb2LqqkKH9xyb0fNyV2IWI,225
151
165
  webscout/Provider/AISEARCH/felo_search.py,sha256=qIk6SarmfTtohU4ouCOgO31zngK3DeYJzDpv7cvhFxE,8959
152
166
  webscout/Provider/AISEARCH/genspark_search.py,sha256=tr8C5OtI_Z6_sU41vSqSP2buIY4BOlacS2gNaR7o-C8,8154
167
+ webscout/Provider/AISEARCH/hika_search.py,sha256=zvNZKqL5JVn5wcplK03_1mdGo-If1_GdSzOaYp9qXAc,6756
168
+ webscout/Provider/AISEARCH/monica_search.py,sha256=G8buO5HfKTt_Yj5CQ6RGzhCtifYF17ocK7_PcdbFD-c,9217
169
+ webscout/Provider/AISEARCH/scira_search.py,sha256=fTCaRvH24KtSkcrHj-t0NbMgKkRfvHIU1O_oM40t6ZI,11283
170
+ webscout/Provider/AISEARCH/webpilotai_search.py,sha256=SV9jkKQf5HorQiI_UH_XXaHipqLa1IOuPztsmtVtT_A,11895
153
171
  webscout/Provider/HF_space/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
172
  webscout/Provider/HF_space/qwen_qwen2.py,sha256=IulE7bAMSbR530pFTanWzMFb4UJ9qF_NKoGiHkXxcjc,7612
155
173
  webscout/Provider/TTI/__init__.py,sha256=K6J27GHg3Fv9xB13dGwgLWIow_EbZY1yKEAxohaoaKU,309
@@ -204,8 +222,7 @@ webscout/Provider/TTS/utils.py,sha256=pO3GsBmIZ7CHywjOGyrdpHdvch40QMvfAfvAeRBp-O
204
222
  webscout/litagent/__init__.py,sha256=2HydGSdDVBZ7SRNgGzXX-TJiuol1sxzNJBw7wVAFueo,882
205
223
  webscout/litagent/agent.py,sha256=1ZXAYjADlRQw5FKz9vVy9qryNJUFvS6WRFBsIX6EtSY,19101
206
224
  webscout/litagent/constants.py,sha256=3_3tWXhmyZ2dFIO8f0YWL4CRkoFoL18h0_jNttTN7mk,2175
207
- webscout/litprinter/__init__.py,sha256=c1d4CHJHMIp7FEfY0Gl8Z9B9Msi5AgAAkJT1ROSuTUY,26787
208
- webscout/litprinter/colors.py,sha256=5L_WmYFcp2JoX1rCS4GvFCNCOlj2EhEJRGWvqvs8M54,1247
225
+ webscout/litprinter/__init__.py,sha256=iBYLF0IapDD7piPbNsBHWshg0WQWyP4EvodEPrP3lwI,2452
209
226
  webscout/scout/__init__.py,sha256=1dy8mhj4d-X_RDnb3Ip2LKC-2fqgP5zRsHkhdQjAGzE,333
210
227
  webscout/scout/core.py,sha256=vOBK8AOBmmdXf5jLeYpbO-qBDsdL0M5Kz3bhj8VLiQ8,29585
211
228
  webscout/scout/element.py,sha256=5s_eSY4TbwM-4zLN5rBEHMA5U4rgeyd-z1tGstsUhco,15300
@@ -237,9 +254,9 @@ webstoken/sentiment.py,sha256=yHtaHXJNS_sH1UTHZsOIgyhdijr8oi1pMlg_QE2wtxw,8202
237
254
  webstoken/stemmer.py,sha256=VXWkBpPaH328WEQxw9e9ff-p2e27xDdbpVSy0nTnXYE,2624
238
255
  webstoken/tagger.py,sha256=p4ScFnxn5sShYDVRoHK5pn_mzaDTsEtx3EHRvuvOlfE,2306
239
256
  webstoken/tokenizer.py,sha256=XJ-d1MFRp0Trw6gtOtZ8_wAcaSQidnSCHLNpV1-OFJc,6016
240
- webscout-7.8.dist-info/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
241
- webscout-7.8.dist-info/METADATA,sha256=0DfzZPEFlxzvW_EgCtBs8J6xjRbjpcFYVlkIlZzWr5M,31820
242
- webscout-7.8.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
243
- webscout-7.8.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
244
- webscout-7.8.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
245
- webscout-7.8.dist-info/RECORD,,
257
+ webscout-8.0.dist-info/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
258
+ webscout-8.0.dist-info/METADATA,sha256=eo0NKxybz5lX7tGn7PLvgQR53MyjfjhRQkHrFMLn_xY,32756
259
+ webscout-8.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
260
+ webscout-8.0.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
261
+ webscout-8.0.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
262
+ webscout-8.0.dist-info/RECORD,,
@@ -1,225 +0,0 @@
1
- import json
2
- from typing import Union, Any, Dict, Optional
3
- from webscout.AIutel import Optimizers
4
- from webscout.AIutel import Conversation
5
- from webscout.AIutel import AwesomePrompts, sanitize_stream
6
- from webscout.AIbase import Provider
7
- from webscout import exceptions
8
- from webscout.litagent import LitAgent
9
- import requests
10
-
11
- class DARKAI(Provider):
12
- """
13
- A class to interact with the DarkAI API.
14
- """
15
-
16
- AVAILABLE_MODELS = [
17
- "llama-3-70b", # Uncensored
18
- "llama-3-405b",
19
- "gpt-3.5-turbo",
20
- "gpt-4o"
21
- ]
22
-
23
- def __init__(
24
- self,
25
- is_conversation: bool = True,
26
- max_tokens: int = 600,
27
- timeout: int = 30,
28
- intro: str = None,
29
- filepath: str = None,
30
- update_file: bool = True,
31
- proxies: dict = {},
32
- history_offset: int = 10250,
33
- act: str = None,
34
- model: str = "gpt-4o",
35
- ) -> None:
36
- """
37
- Initializes the DARKAI API with given parameters.
38
-
39
- Args:
40
- is_conversation (bool, optional): Flag for chatting conversationally. Defaults to True.
41
- max_tokens (int, optional): Maximum number of tokens to be generated upon completion.
42
- Defaults to 600.
43
- timeout (int, optional): Http request timeout. Defaults to 30.
44
- intro (str, optional): Conversation introductory prompt. Defaults to None.
45
- filepath (str, optional): Path to file containing conversation history. Defaults to None.
46
- update_file (bool, optional): Add new prompts and responses to the file. Defaults to True.
47
- proxies (dict, optional): Http request proxies. Defaults to {}.
48
- history_offset (int, optional): Limit conversation history to this number of last texts.
49
- Defaults to 10250.
50
- act (str|int, optional): Awesome prompt key or index. (Used as intro). Defaults to None.
51
- model (str, optional): AI model to use. Defaults to "gpt-4o".
52
- Options: "llama-3-70b" (uncensored), "llama-3-405b", "gpt-3.5-turbo", "gpt-4o"
53
- """
54
- if model not in self.AVAILABLE_MODELS:
55
- raise ValueError(f"Invalid model: {model}. Choose from: {self.AVAILABLE_MODELS}")
56
-
57
- self.session = requests.Session()
58
- self.is_conversation = is_conversation
59
- self.max_tokens_to_sample = max_tokens
60
- self.api_endpoint = "https://darkai.foundation/chat"
61
- self.stream_chunk_size = 64
62
- self.timeout = timeout
63
- self.last_response = {}
64
- self.model = model
65
- self.headers = {
66
- "accept": "text/event-stream",
67
- "accept-encoding": "gzip, deflate, br, zstd",
68
- "accept-language": "en-US,en;q=0.9,en-IN;q=0.8",
69
- "content-type": "application/json",
70
- "dnt": "1",
71
- "origin": "https://www.aiuncensored.info",
72
- "referer": "https://www.aiuncensored.info/",
73
- "sec-ch-ua": '"Not)A;Brand";v="99", "Microsoft Edge";v="127", "Chromium";v="127"',
74
- "sec-ch-ua-mobile": "?0",
75
- "sec-ch-ua-platform": '"Windows"',
76
- "sec-fetch-dest": "empty",
77
- "sec-fetch-mode": "cors",
78
- "sec-fetch-site": "cross-site",
79
- "user-agent": LitAgent().random(),
80
- }
81
-
82
- self.__available_optimizers = (
83
- method
84
- for method in dir(Optimizers)
85
- if callable(getattr(Optimizers, method)) and not method.startswith("__")
86
- )
87
- self.session.headers.update(self.headers)
88
- Conversation.intro = (
89
- AwesomePrompts().get_act(
90
- act, raise_not_found=True, default=None, case_insensitive=True
91
- )
92
- if act
93
- else intro or Conversation.intro
94
- )
95
- self.conversation = Conversation(
96
- is_conversation, self.max_tokens_to_sample, filepath, update_file
97
- )
98
- self.conversation.history_offset = history_offset
99
- self.session.proxies = proxies
100
-
101
- def ask(
102
- self,
103
- prompt: str,
104
- stream: bool = False,
105
- raw: bool = False,
106
- optimizer: str = None,
107
- conversationally: bool = False,
108
- ) -> Dict[str, Any]:
109
- """
110
- Sends a prompt to the DarkAI API and returns the response.
111
-
112
- Args:
113
- prompt: The text prompt to generate text from.
114
- stream (bool, optional): Whether to stream the response. Defaults to False.
115
- raw (bool, optional): Whether to return the raw response. Defaults to False.
116
- optimizer (str, optional): The name of the optimizer to use. Defaults to None.
117
- conversationally (bool, optional): Whether to chat conversationally. Defaults to False.
118
-
119
- Returns:
120
- The response from the API.
121
- """
122
- conversation_prompt = self.conversation.gen_complete_prompt(prompt)
123
- if optimizer:
124
- if optimizer in self.__available_optimizers:
125
- conversation_prompt = getattr(Optimizers, optimizer)(
126
- conversation_prompt if conversationally else prompt
127
- )
128
- else:
129
- raise Exception(
130
- f"Optimizer is not one of {self.__available_optimizers}"
131
- )
132
-
133
- payload = {
134
- "query": conversation_prompt,
135
- "model": self.model
136
- }
137
-
138
- def for_stream():
139
- response = self.session.post(
140
- self.api_endpoint, json=payload, headers=self.headers, stream=True, timeout=self.timeout
141
- )
142
-
143
- if not response.ok:
144
- raise exceptions.FailedToGenerateResponseError(
145
- f"Failed to generate response - ({response.status_code}, {response.reason})"
146
- )
147
-
148
- streaming_response = ""
149
- for line in response.iter_lines():
150
- if line:
151
- decoded_line = line.decode('utf-8')
152
- if decoded_line.startswith("data:"):
153
- data = decoded_line[len("data:"):].strip()
154
- if data:
155
- try:
156
- event = json.loads(data)
157
- if event.get("event") == "final-response":
158
- message = event['data'].get('message', '')
159
- streaming_response += message
160
- yield message if raw else dict(text=message)
161
- except json.decoder.JSONDecodeError:
162
- continue
163
- self.last_response.update(dict(text=streaming_response))
164
- self.conversation.update_chat_history(
165
- prompt, self.get_message(self.last_response)
166
- )
167
- def for_non_stream():
168
- for _ in for_stream():
169
- pass
170
- return self.last_response
171
-
172
- return for_stream() if stream else for_non_stream()
173
-
174
- def chat(
175
- self,
176
- prompt: str,
177
- stream: bool = False,
178
- optimizer: str = None,
179
- conversationally: bool = False,
180
- ) -> str:
181
- """Generate response `str`
182
- Args:
183
- prompt (str): Prompt to be send.
184
- stream (bool, optional): Flag for streaming response. Defaults to False.
185
- optimizer (str, optional): Prompt optimizer name - `[code, shell_command]`. Defaults to None.
186
- conversationally (bool, optional): Chat conversationally when using optimizer. Defaults to False.
187
- Returns:
188
- str: Response generated
189
- """
190
-
191
- def for_stream():
192
- for response in self.ask(
193
- prompt, True, optimizer=optimizer, conversationally=conversationally
194
- ):
195
- yield self.get_message(response)
196
-
197
- def for_non_stream():
198
- return self.get_message(
199
- self.ask(
200
- prompt,
201
- False,
202
- optimizer=optimizer,
203
- conversationally=conversationally,
204
- )
205
- )
206
-
207
- return for_stream() if stream else for_non_stream()
208
-
209
- def get_message(self, response: dict) -> str:
210
- """Retrieves message only from response
211
-
212
- Args:
213
- response (dict): Response generated by `self.ask`
214
-
215
- Returns:
216
- str: Message extracted
217
- """
218
- assert isinstance(response, dict), "Response should be of dict data-type only"
219
- return response["text"]
220
- if __name__ == '__main__':
221
- from rich import print
222
- ai = DARKAI()
223
- response = ai.chat("tell me about india")
224
- for chunk in response:
225
- print(chunk, end="", flush=True)