webscout 6.7__py3-none-any.whl → 6.8__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.

@@ -1,4 +1,4 @@
1
- import requests
1
+ import cloudscraper
2
2
  import json
3
3
  from typing import Any, Dict, Optional
4
4
 
@@ -30,6 +30,7 @@ class RUBIKSAI(Provider):
30
30
  history_offset: int = 10250,
31
31
  act: str = None,
32
32
  model: str = "gpt-4o-mini",
33
+ temperature: float = 0.6,
33
34
  ) -> None:
34
35
  """
35
36
  Initializes the RUBIKSAI API with given parameters.
@@ -48,25 +49,54 @@ class RUBIKSAI(Provider):
48
49
  act (str|int, optional): Awesome prompt key or index. (Used as intro). Defaults to None.
49
50
  model (str, optional): AI model to use. Defaults to "gpt-4o-mini".
50
51
  Available models: "gpt-4o-mini", "gemini-1.5-pro"
52
+ temperature (float, optional): Sampling temperature. Defaults to 0.6.
51
53
  """
52
54
  if model not in self.AVAILABLE_MODELS:
53
55
  raise ValueError(f"Invalid model: {model}. Choose from: {self.AVAILABLE_MODELS}")
54
56
 
55
- self.session = requests.Session()
57
+ self.temperature = temperature
58
+ self.session = cloudscraper.create_scraper()
59
+ self.api_endpoint = "https://rubiks.ai/search/api/"
60
+
61
+ # Updated headers with all necessary fields
62
+ self.headers = {
63
+ "authority": "rubiks.ai",
64
+ "accept": "*/*",
65
+ "accept-encoding": "gzip, deflate, br, zstd",
66
+ "accept-language": "en-US,en;q=0.9,en-IN;q=0.8",
67
+ "content-type": "application/json",
68
+ "dnt": "1",
69
+ "origin": "https://rubiks.ai",
70
+ "referer": f"https://rubiks.ai/search/?q=&model={model}",
71
+ "sec-ch-ua": '"Microsoft Edge";v="131", "Chromium";v="131", "Not_A Brand";v="24"',
72
+ "sec-ch-ua-mobile": "?0",
73
+ "sec-ch-ua-platform": '"Windows"',
74
+ "sec-fetch-dest": "empty",
75
+ "sec-fetch-mode": "cors",
76
+ "sec-fetch-site": "same-origin",
77
+ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
78
+ }
79
+
80
+ # Get initial cookies
81
+ init_response = self.session.get("https://rubiks.ai/search/")
82
+ if not init_response.ok:
83
+ raise exceptions.FailedToGenerateResponseError("Failed to initialize session")
84
+
85
+ # Extract cf_clearance and other cookies
86
+ self.cookies = {
87
+ 'cf_clearance': init_response.cookies.get('cf_clearance', ''),
88
+ }
89
+
90
+ # Update session with cookies and headers
91
+ self.session.headers.update(self.headers)
92
+ self.session.cookies.update(self.cookies)
93
+
56
94
  self.is_conversation = is_conversation
57
95
  self.max_tokens_to_sample = max_tokens
58
- self.api_endpoint = "https://rubiks.ai/search/api.php"
59
96
  self.stream_chunk_size = 64
60
97
  self.timeout = timeout
61
98
  self.last_response = {}
62
99
  self.model = model
63
- self.headers = {
64
- "accept": "text/event-stream",
65
- "accept-encoding": "gzip, deflate, br, zstd",
66
- "accept-language": "en-US,en;q=0.9,en-IN;q=0.8",
67
- "cache-control": "no-cache",
68
- "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 Edg/127.0.0.0"
69
- }
70
100
 
71
101
  self.__available_optimizers = (
72
102
  method
@@ -119,41 +149,66 @@ class RUBIKSAI(Provider):
119
149
  f"Optimizer is not one of {self.__available_optimizers}"
120
150
  )
121
151
 
122
- params = {
123
- "q": conversation_prompt,
152
+ payload = {
124
153
  "model": self.model,
154
+ "stream": True,
155
+ "messages": [{"role": "user", "content": conversation_prompt}],
156
+ "temperature": self.temperature,
157
+ "search": ""
125
158
  }
126
159
 
127
160
  def for_stream():
128
- response = self.session.get(
129
- self.api_endpoint, params=params, headers=self.headers, stream=True, timeout=self.timeout
130
- )
161
+ try:
162
+ response = self.session.post(
163
+ self.api_endpoint,
164
+ json=payload,
165
+ stream=True,
166
+ timeout=self.timeout
167
+ )
168
+
169
+ if response.status_code == 403:
170
+ # Try to refresh the session
171
+ init_response = self.session.get("https://rubiks.ai/search/")
172
+ self.cookies['cf_clearance'] = init_response.cookies.get('cf_clearance', '')
173
+ self.session.cookies.update(self.cookies)
174
+
175
+ # Retry the request
176
+ response = self.session.post(
177
+ self.api_endpoint,
178
+ json=payload,
179
+ stream=True,
180
+ timeout=self.timeout
181
+ )
182
+
183
+ if not response.ok:
184
+ raise exceptions.FailedToGenerateResponseError(
185
+ f"Failed to generate response - ({response.status_code}, {response.reason})"
186
+ )
131
187
 
132
- if not response.ok:
133
- raise exceptions.FailedToGenerateResponseError(
134
- f"Failed to generate response - ({response.status_code}, {response.reason})"
188
+ # ...rest of the streaming code...
189
+ streaming_response = ""
190
+ for line in response.iter_lines(decode_unicode=True):
191
+ if line:
192
+ if line.startswith("data: "):
193
+ json_data = line[6:]
194
+ if json_data == "[DONE]":
195
+ break
196
+ try:
197
+ data = json.loads(json_data)
198
+ if "choices" in data and len(data["choices"]) > 0:
199
+ content = data["choices"][0]["delta"].get("content", "")
200
+ streaming_response += content
201
+ yield content if raw else dict(text=content)
202
+ except json.decoder.JSONDecodeError:
203
+ continue
204
+
205
+ self.last_response.update(dict(text=streaming_response))
206
+ self.conversation.update_chat_history(
207
+ prompt, self.get_message(self.last_response)
135
208
  )
136
209
 
137
- streaming_response = ""
138
- for line in response.iter_lines(decode_unicode=True):
139
- if line:
140
- if line.startswith("data: "):
141
- json_data = line[6:]
142
- if json_data == "[DONE]":
143
- break
144
- try:
145
- data = json.loads(json_data)
146
- if "choices" in data and len(data["choices"]) > 0:
147
- content = data["choices"][0]["delta"].get("content", "")
148
- streaming_response += content
149
- yield content if raw else dict(text=content)
150
- except json.decoder.JSONDecodeError:
151
- continue
152
-
153
- self.last_response.update(dict(text=streaming_response))
154
- self.conversation.update_chat_history(
155
- prompt, self.get_message(self.last_response)
156
- )
210
+ except Exception as e:
211
+ raise exceptions.FailedToGenerateResponseError(f"Request failed: {str(e)}")
157
212
 
158
213
  def for_non_stream():
159
214
  for _ in for_stream():
@@ -16,7 +16,6 @@ from .ai4chat import *
16
16
  from .Gemini import GEMINI
17
17
  from .Deepseek import DeepSeek
18
18
  from .Deepinfra import DeepInfra
19
- from .Farfalle import *
20
19
  from .cleeai import *
21
20
  from .OLLAMA import OLLAMA
22
21
  from .Andi import AndiSearch
@@ -54,18 +53,15 @@ from .bagoodex import *
54
53
  from .aimathgpt import *
55
54
  from .gaurish import *
56
55
  from .geminiprorealtime import *
57
- from .NinjaChat import *
58
56
  from .llmchat import *
59
57
  from .talkai import *
60
58
  from .askmyai import *
61
59
  from .llama3mitril import *
62
60
  from .Marcus import *
63
61
  from .typegpt import *
64
- from .mhystical import *
65
62
  from .multichat import *
66
63
  from .Jadve import *
67
64
  __all__ = [
68
- 'Farfalle',
69
65
  'LLAMA',
70
66
  'Cohere',
71
67
  'REKA',
@@ -121,13 +117,11 @@ __all__ = [
121
117
  'AIMathGPT',
122
118
  'GaurishCerebras',
123
119
  'GeminiPro',
124
- 'NinjaChat',
125
120
  'LLMChat',
126
121
  'Talkai',
127
122
  'Llama3Mitril',
128
123
  'Marcus',
129
124
  'TypeGPT',
130
- 'Mhystical',
131
125
  'Netwrck',
132
126
  'MultiChatAI',
133
127
  'JadveOpenAI',
@@ -6,7 +6,7 @@ from webscout.AIutel import Optimizers
6
6
  from webscout.AIutel import Conversation
7
7
  from webscout.AIutel import AwesomePrompts
8
8
  from webscout.AIbase import Provider
9
-
9
+ import webscout
10
10
  class Cleeai(Provider):
11
11
  """
12
12
  A class to interact with the Cleeai.com API.
@@ -59,7 +59,7 @@ class Cleeai(Provider):
59
59
  "sec-fetch-dest": "empty",
60
60
  "sec-fetch-mode": "cors",
61
61
  "sec-fetch-site": "same-site",
62
- "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0",
62
+ "user-agent": webscout.LitAgent().random()
63
63
  }
64
64
 
65
65
  self.__available_optimizers = (
webscout/Provider/elmo.py CHANGED
@@ -3,7 +3,7 @@ from webscout.AIutel import Optimizers
3
3
  from webscout.AIutel import Conversation
4
4
  from webscout.AIutel import AwesomePrompts
5
5
  from webscout.AIbase import Provider
6
-
6
+ from webscout import LitAgent
7
7
 
8
8
  class Elmo(Provider):
9
9
  """
@@ -62,7 +62,7 @@ class Elmo(Provider):
62
62
  "sec-fetch-dest": "empty",
63
63
  "sec-fetch-mode": "cors",
64
64
  "sec-fetch-site": "cross-site",
65
- "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0",
65
+ "user-agent": LitAgent().random(),
66
66
  }
67
67
 
68
68
  self.__available_optimizers = (
@@ -10,7 +10,7 @@ from webscout.AIutel import AwesomePrompts, sanitize_stream
10
10
  from webscout.AIbase import Provider, AsyncProvider
11
11
  from webscout import exceptions
12
12
 
13
-
13
+ from webscout import LitAgent
14
14
  class GaurishCerebras(Provider):
15
15
  """
16
16
  A class to interact with the Gaurish Cerebras API.
@@ -65,7 +65,7 @@ class GaurishCerebras(Provider):
65
65
  "sec-fetch-dest": "empty",
66
66
  "sec-fetch-mode": "cors",
67
67
  "sec-fetch-site": "same-site",
68
- "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0",
68
+ "user-agent": LitAgent().random(),
69
69
  "x-stainless-arch": "unknown",
70
70
  "x-stainless-lang": "js",
71
71
  "x-stainless-os": "Unknown",
@@ -9,7 +9,7 @@ from webscout.AIutel import Conversation
9
9
  from webscout.AIutel import AwesomePrompts, sanitize_stream
10
10
  from webscout.AIbase import Provider, AsyncProvider
11
11
  from webscout import exceptions
12
-
12
+ from webscout import LitAgent
13
13
 
14
14
  class GeminiPro(Provider):
15
15
  """
@@ -47,7 +47,7 @@ class GeminiPro(Provider):
47
47
  'sec-fetch-dest': 'empty',
48
48
  'sec-fetch-mode': 'cors',
49
49
  'sec-fetch-site': 'same-origin',
50
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0',
50
+ 'user-agent': LitAgent().random(),
51
51
  'x-requested-with': 'XMLHttpRequest'
52
52
  }
53
53
  self.session = requests.Session()
@@ -6,7 +6,7 @@ from webscout.AIutel import Optimizers
6
6
  from webscout.AIutel import Conversation
7
7
  from webscout.AIutel import AwesomePrompts
8
8
  from webscout.AIbase import Provider
9
-
9
+ from webscout import LitAgent as Lit
10
10
  class Lepton(Provider):
11
11
  """
12
12
  A class to interact with the Lepton.run API.
@@ -58,7 +58,7 @@ class Lepton(Provider):
58
58
  "sec-fetch-dest": "empty",
59
59
  "sec-fetch-mode": "cors",
60
60
  "sec-fetch-site": "same-origin",
61
- "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0",
61
+ "user-agent": Lit().random(),
62
62
  }
63
63
 
64
64
  self.__available_optimizers = (
@@ -7,7 +7,7 @@ from webscout.AIutel import Conversation
7
7
  from webscout.AIutel import AwesomePrompts
8
8
  from webscout.AIbase import Provider
9
9
  from webscout import exceptions
10
-
10
+ from webscout import LitAgent as Lit
11
11
 
12
12
  class Llama3Mitril(Provider):
13
13
  """
@@ -40,7 +40,7 @@ class Llama3Mitril(Provider):
40
40
  self.headers = {
41
41
  "Content-Type": "application/json",
42
42
  "DNT": "1",
43
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0"
43
+ "User-Agent": Lit().random(),
44
44
  }
45
45
  self.__available_optimizers = (
46
46
  method
@@ -177,4 +177,4 @@ if __name__ == "__main__":
177
177
  )
178
178
 
179
179
  for response in ai.chat("Hello", stream=True):
180
- print(response)
180
+ print(response, end="", flush=True)
@@ -6,7 +6,7 @@ from webscout.AIutel import Conversation
6
6
  from webscout.AIutel import AwesomePrompts
7
7
  from webscout.AIbase import Provider
8
8
  from webscout import exceptions
9
-
9
+ from webscout import LitAgent as Lit
10
10
  class LlamaTutor(Provider):
11
11
  """
12
12
  A class to interact with the LlamaTutor API (Together.ai).
@@ -63,7 +63,7 @@ class LlamaTutor(Provider):
63
63
  "Sec-Fetch-Dest": "empty",
64
64
  "Sec-Fetch-Mode": "cors",
65
65
  "Sec-Fetch-Site": "same-origin",
66
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0"
66
+ "User-Agent": Lit().random(),
67
67
  }
68
68
 
69
69
  self.__available_optimizers = (
@@ -7,7 +7,7 @@ from webscout.AIutel import Conversation
7
7
  from webscout.AIutel import AwesomePrompts
8
8
  from webscout.AIbase import Provider
9
9
  from webscout import exceptions
10
-
10
+ from webscout import LitAgent as Lit
11
11
  class LLMChat(Provider):
12
12
  """
13
13
  A class to interact with the LLMChat API.
@@ -18,6 +18,7 @@ class LLMChat(Provider):
18
18
  "@cf/meta/llama-3.1-8b-instruct",
19
19
  "@cf/meta/llama-3.2-3b-instruct",
20
20
  "@cf/meta/llama-3.2-1b-instruct"
21
+ "@cf/meta/llama-3.3-70b-instruct-fp8-fast"
21
22
  ]
22
23
 
23
24
  def __init__(
@@ -51,7 +52,7 @@ class LLMChat(Provider):
51
52
  self.headers = {
52
53
  "Content-Type": "application/json",
53
54
  "Accept": "*/*",
54
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0",
55
+ "User-Agent": Lit().random(),
55
56
  "Origin": "https://llmchat.in",
56
57
  "Referer": "https://llmchat.in/"
57
58
  }
webscout/Provider/meta.py CHANGED
@@ -14,7 +14,7 @@ from webscout.AIutel import Conversation
14
14
  from webscout.AIutel import AwesomePrompts, sanitize_stream
15
15
  from webscout.AIbase import Provider
16
16
  from webscout import exceptions
17
-
17
+ from webscout import LitAgent as Lit
18
18
  MAX_RETRIES = 3
19
19
 
20
20
  def generate_offline_threading_id() -> str:
@@ -103,7 +103,7 @@ def get_fb_session(email, password, proxies=None):
103
103
  "sec-fetch-site": "none",
104
104
  "sec-fetch-user": "?1",
105
105
  "upgrade-insecure-requests": "1",
106
- "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
106
+ "user-agent": Lit().random(),
107
107
  }
108
108
  # Send the GET request
109
109
  response = requests.get(login_url, headers=headers, proxies=proxies)
@@ -48,7 +48,7 @@ class TutorAI(Provider):
48
48
  self.session = requests.Session()
49
49
  self.is_conversation = is_conversation
50
50
  self.max_tokens_to_sample = max_tokens
51
- self.api_endpoint = "https://tutorai.me/api/generate-homeworkify-response"
51
+ self.api_endpoint = "https://ai-tutor.ai/api/generate-homeworkify-response"
52
52
  self.stream_chunk_size = 1024
53
53
  self.timeout = timeout
54
54
  self.last_response = {}
webscout/version.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = "6.7"
1
+ __version__ = "6.8"
2
2
  __prog__ = "webscout"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: webscout
3
- Version: 6.7
3
+ Version: 6.8
4
4
  Summary: Search for anything using Google, DuckDuckGo, phind.com, Contains AI models, can transcribe yt videos, temporary email and phone number generation, has TTS support, webai (terminal gpt and open interpreter) and offline LLMs and more
5
5
  Author: OEvortex
6
6
  Author-email: helpingai5@gmail.com
@@ -14,7 +14,7 @@ webscout/prompt_manager.py,sha256=Jc0demWN6M6QcwRp14aHZR05r_PVPOaG8PnQkO7pDZ4,98
14
14
  webscout/tempid.py,sha256=7ZTN2eAYqUO2deSdzzhZfgDRxE65OOhGuTBD7f8bTCM,5004
15
15
  webscout/update_checker.py,sha256=mLFD_OYjtEdUvXUiNt8wSbspmkFRmNlULf5sVyVZi60,5129
16
16
  webscout/utils.py,sha256=LVW7U0XcGYqigqxV6D5YXeGMrc_mt7PnNG_YnKf9bBM,3059
17
- webscout/version.py,sha256=2LxYXNP6zbhOX47Xl9v4Dpp05K2LUel-8-Ayyzbaw-c,44
17
+ webscout/version.py,sha256=1gVsVcJ03O4Y3s8qiPAxRk25y5GbcsNFvUMWB6cFi_E,44
18
18
  webscout/webscout_search.py,sha256=kFdcr3-2LaksTbFy9Pmrs_Gfi9XwtfxKKk5_H0hBa80,44748
19
19
  webscout/webscout_search_async.py,sha256=2-RCa9Deahhw3Bti78kXfVaX8y3Aygy4L7HeCaITk9M,14519
20
20
  webscout/Extra/__init__.py,sha256=FbDnwI3zZdoQFosA5Q2bIYpJlHUKFWiFmFKvnk9xWKY,153
@@ -57,15 +57,14 @@ webscout/Provider/Bing.py,sha256=zxIzq7dlqaLskx9LsYppbMJuwfGtYid3Uh0gIhZ0hps,900
57
57
  webscout/Provider/Blackboxai.py,sha256=KntNTWHHEmXegKFxm79_2tX_FLQF-_7xssrB6T0nCgM,8841
58
58
  webscout/Provider/ChatGPTES.py,sha256=t_Qjn1ShNX0uYp5dJzv6Y7DPQM8HUTgvcBauhFz0-Io,8815
59
59
  webscout/Provider/Chatify.py,sha256=QYgZAEmhLkEnR7oyr-qUs6OSHoNJm2BgMr41f84Ntbg,6370
60
- webscout/Provider/Cloudflare.py,sha256=KZ2aZj-K5se_Xn8GPozJ3xRx2lJhf36uIu0Tyx-jH54,10801
60
+ webscout/Provider/Cloudflare.py,sha256=dPBrB1NO1KrJMK4nFhqlZcYXQvcElgb4W3TdWXCJV9c,10718
61
61
  webscout/Provider/Cohere.py,sha256=oL9kAv--RSkEQxwkPTq1Wi57Wkgg0WNvL82CpTj22YY,8264
62
- webscout/Provider/DARKAI.py,sha256=Bn2p5yU1MMiaS-meQySCVPjtc0uOfjJyxXA0kSaO_P0,9041
62
+ webscout/Provider/DARKAI.py,sha256=kVElPYVh_VchfGylR4YzC3orrPJPyPoOpSolc62b5eY,8944
63
63
  webscout/Provider/Deepinfra.py,sha256=djm8LSDj6aummNSym4HrJHZD2CCVJ_er1oxiFLiq1N4,6389
64
64
  webscout/Provider/Deepseek.py,sha256=axBNDR_5N_Ge9iDopLHhR0kCAD0meq787UNh8oLqqGI,9142
65
65
  webscout/Provider/DiscordRocks.py,sha256=fRkVBCyDMZf0SoaNPK7KXAsh8mQj0JWDb7ifYpL9PQQ,11372
66
66
  webscout/Provider/EDITEE.py,sha256=9rq7c84XoIoRBqd0qgW-Ebu3lyffhicSOtUvMtAjO0s,7742
67
- webscout/Provider/Farfalle.py,sha256=eVmSB4Dq6P2epo8dd6CyCtyxvOMFwvk6f0Ikb9nZ2d0,9017
68
- webscout/Provider/Free2GPT.py,sha256=Lf8dd9iacry_GRr6CT86Cjcp-oNzLyw1O_TWIPDFDxk,9037
67
+ webscout/Provider/Free2GPT.py,sha256=WQOURmq7MciW9Imh-cMSkQgxsuE8cmxs85aBONtv1Rw,8953
69
68
  webscout/Provider/GPTWeb.py,sha256=xh_mnBko6RDyz2v3KhMux-yIipipkZfVVVoUJWkbzcQ,7466
70
69
  webscout/Provider/Gemini.py,sha256=Vg2MLqQ_qxHkcN7Zikife1dyVK-y94ik8y6MAu-VzUI,7801
71
70
  webscout/Provider/Groq.py,sha256=iqyewnxWwN7fMG-dqAR_SyUqImfyZS880lO5iaXso9c,28636
@@ -73,43 +72,41 @@ webscout/Provider/Jadve.py,sha256=_8qlC0oWjGlJAUL6yH__cd6NSGkT0mcLdEZHixFlp-M,93
73
72
  webscout/Provider/Koboldai.py,sha256=gpRgyDe4OQWwNqT7MWnNrJx4dnFmCW23KUx0Ezjgchk,15185
74
73
  webscout/Provider/Llama.py,sha256=N01p3ZVD1HgRnNNxhjRhBVD4m_qiextdyF1KDfJlqbE,7703
75
74
  webscout/Provider/Llama3.py,sha256=fU1iyKflFHDeSqa32M6UE2JtADZB0B7rcG5HYj5MWSQ,7581
76
- webscout/Provider/Marcus.py,sha256=6LvBYnAcbwVYiXoQ8ZrprefJ6zS2KdveiEZauClNtSE,5045
75
+ webscout/Provider/Marcus.py,sha256=lxD8Ti6O2KjmRegAidJcKiC247jVULWHL-hXzlNzySs,5003
77
76
  webscout/Provider/Netwrck.py,sha256=TtW-W4oSGwf8JiMBXN6EBttQMA0tMaYvuYnRs0YNI68,9482
78
- webscout/Provider/NinjaChat.py,sha256=tMja5xItus6WoKJm_fhILLoGyPdplikqr-nxtuUziNU,8617
79
77
  webscout/Provider/OLLAMA.py,sha256=RQXJt-PJYnA15_IXhUy4mM9qwm4PcBMfINaZm2KG6zE,7018
80
78
  webscout/Provider/Openai.py,sha256=mpJ9VgIyvW6uo0-jIcx5Qcz4PIUAj3xVLOgKrB1z9pU,20074
81
- webscout/Provider/PI.py,sha256=Z2yXXCv84AUbvNNaBQHkJ-Hgp-oc8sPfcvWytYwISVc,12781
82
- webscout/Provider/Phind.py,sha256=NA_b3B4h-kutX6wdoEg4THPfZggl2UeXPbramzZ6oiU,19297
83
- webscout/Provider/PizzaGPT.py,sha256=GkyvWvs_aIcXSpM-j-CfH7Jsft2vU1IUxXmyZ-Z23kI,7120
84
- webscout/Provider/RUBIKSAI.py,sha256=fHCOAFWGXIESA05Bmuqtx6ZChnWomHOMwndfTLv1Hg8,8517
79
+ webscout/Provider/PI.py,sha256=rBxICAtQFP-XglVRXnm6VtShikrEQBMaqh7rhzCloIo,13989
80
+ webscout/Provider/Phind.py,sha256=FaE10xQJ_TluRnzA_t7SxXsqgKzTfXR5lLGla2DQVBM,19467
81
+ webscout/Provider/PizzaGPT.py,sha256=uJDpdkD9yN3n_s7egkipFmvPSBuf312Vy55opkdT3No,6899
82
+ webscout/Provider/RUBIKSAI.py,sha256=EwynOsqHrxk3dNP-hIMn7AO3MkA-RwNHPzA64Ola5Mo,10940
85
83
  webscout/Provider/Reka.py,sha256=dWw4vX91nJhAn-X1SXK72gttRaTqWNGUBFaeRJobTJg,8519
86
84
  webscout/Provider/TeachAnything.py,sha256=6scp1tzcc5z_TKUALArQ4APCNElHJ7SzsJoiB71o0V0,7169
87
85
  webscout/Provider/Youchat.py,sha256=hwm16gmyvMrRseFHl7nrcaHzGlY8BUx3y0KD-YQjTnc,10082
88
- webscout/Provider/__init__.py,sha256=rns4O8C6Thft04CCq9OgAGl1GE8n-ofsvjcyt8CfGfc,2715
86
+ webscout/Provider/__init__.py,sha256=oKmt-p8K3p53Dh9CX_aLYOWz7CKpBY1dOBZjc81YF2M,2591
89
87
  webscout/Provider/ai4chat.py,sha256=av96iS4QPt9IzhcswowmDY2F8IUSLl1YVHZ4bAbfO-s,8140
90
88
  webscout/Provider/aimathgpt.py,sha256=BdXNxEHQP11p6m0wl2Q-uben46A6lMKOg89utV1S7aI,7320
91
89
  webscout/Provider/askmyai.py,sha256=XDxLQfIztI-jwergalUfNiMOwNEw62jGTN4yTlar8Po,5895
92
90
  webscout/Provider/bagoodex.py,sha256=OdYIyvypX-Vkok9zAr6F5NwFQx_z0bKhiw8U4tTFw5o,5023
93
91
  webscout/Provider/cerebras.py,sha256=cyUIgGdVMAmBgTifwuPW-XGC2SKGL2CbTKxY8al9ji4,7986
94
- webscout/Provider/cleeai.py,sha256=tXs_XuYZ2ZGmSOSTS0yJ59qbvFCJusE7yZkIqALwUbE,8064
95
- webscout/Provider/elmo.py,sha256=6C-j8xLfgyMjmv8jdjey0BPzl_UwEFpMEbBtYobfPd0,9387
96
- webscout/Provider/gaurish.py,sha256=yKV4MvOvjMEsXY2fQXDc0YHyFBtW2sh-pA4YNdY--wE,8472
92
+ webscout/Provider/cleeai.py,sha256=ZIPm2dT8H8BxGSLHsgp6aDWn3DVOxAOcFfkMNH1UK0I,7979
93
+ webscout/Provider/elmo.py,sha256=I7qq2YvKht28Z2KFTxj3wNyekJM6gAJCExilB-_UkzQ,9308
94
+ webscout/Provider/gaurish.py,sha256=5FGlc6Ps0hz4AHyXgAreleoeSdfrRJLFUTPyhm-H68A,8393
97
95
  webscout/Provider/geminiapi.py,sha256=c2zvwqkRgscI8vU1FU4qb_4fPe374LIQJ_uHNM9lmF8,8297
98
- webscout/Provider/geminiprorealtime.py,sha256=unQRqHkDt_gkZ_Ls0qBb73d6YTtqYwd1uhYW0RrXKI0,5845
96
+ webscout/Provider/geminiprorealtime.py,sha256=DQdChZRryg9bvXiKpos7wFlu0Q6QNq9lYkbb-FJubWk,5766
99
97
  webscout/Provider/julius.py,sha256=unD3UUnW8-Bie4o0__Vn7cXfqnaVvlE3MWI-LYGb5VE,8576
100
98
  webscout/Provider/koala.py,sha256=qBtqjTvhoMQdDE8qUH0XuNa_x2bic77d7CUjIVboask,10106
101
99
  webscout/Provider/learnfastai.py,sha256=xANWSHF3e6kTKgwbAHYdjNWIwYvr5Bin0NDENmJvruE,9763
102
- webscout/Provider/lepton.py,sha256=4RiQ4YNJljX558yhSUqws6pf1Yhf7pWIesa4SRQCry8,7590
103
- webscout/Provider/llama3mitril.py,sha256=3Ur3GMkmSSTmyxJh1u9fF0xlZ7ssFF6Jxuoi587N1lw,6501
104
- webscout/Provider/llamatutor.py,sha256=DijA4Y1CVDz-Ks8pACTSb6hnOxdQD2IHw-_ztRqhyPQ,8871
105
- webscout/Provider/llmchat.py,sha256=gr7ewEPWWIfjhmpQXTOZJxQffol8MA1yWAIXdG3VZZo,7944
106
- webscout/Provider/meta.py,sha256=3LkGoiGtorc28aURqIpdbMdrDt7QfdARpl1Fp7XNSIg,30460
107
- webscout/Provider/mhystical.py,sha256=W3j28XOnVGlRPCSYrjA5N7okYEdTVeOw41HdocfvzqE,6555
100
+ webscout/Provider/lepton.py,sha256=ocex934Pb0AXiDrTLh67KhouoHh4EIl5giQbW6cgeDQ,7513
101
+ webscout/Provider/llama3mitril.py,sha256=ykVZxFI-PJL9pASogjuAw9yRRuC7hjKoV8VPdV6ma_0,6445
102
+ webscout/Provider/llamatutor.py,sha256=UdmzgNLflIM1rfD_gL1bIyeS0cmhYSPZC2QmkNPuOK4,8795
103
+ webscout/Provider/llmchat.py,sha256=CFDuISSj8Wj7Vq82stpQodVJLUXlLB-8smcZNKVuOKk,7947
104
+ webscout/Provider/meta.py,sha256=Rn8ixYG2HvHEwkopy7MLGX8qyXjo5Ue0Qfv3hay-ejA,30391
108
105
  webscout/Provider/multichat.py,sha256=c1TFCGv3Ds06mO5eYl_6YmUjGkg_dkqh2weQpYYsc08,8415
109
106
  webscout/Provider/promptrefine.py,sha256=W0Ka59yRRKCOBXfF_hF-iF30F0AR45OPxgCCZ6mZzuA,7722
110
107
  webscout/Provider/talkai.py,sha256=FHBZzBdHrOVn41nkhhJmjhHuR1NKTOBE7lGgYDV-0dk,7598
111
108
  webscout/Provider/turboseek.py,sha256=uEoL5eJFvnpDCymTufrC8O9Ni3i8acb0GBy4JweFeIE,8474
112
- webscout/Provider/tutorai.py,sha256=qBwo53bNtCumFonF43m0RCOQx6dU6t869Cnhw3H6qSM,11204
109
+ webscout/Provider/tutorai.py,sha256=hgjYrI1zqNRhHEoi8t1OU8m9i80EQCay5UtmKqbNS9w,11205
113
110
  webscout/Provider/typegpt.py,sha256=TMNu1h8pyiTqynJoZXi150TjGzGkyZzYGvFKiXnZM3g,12700
114
111
  webscout/Provider/x0gpt.py,sha256=eKDEbUIkY1Cc8mCad-CFA4ZgBXOmR7T7rKf89lh16-8,9383
115
112
  webscout/Provider/yep.py,sha256=uor5RXrEjdoTsEvAROnAa6cZnW2Zlpm382AoltGkvRg,9926
@@ -186,12 +183,11 @@ webstoken/normalizer.py,sha256=-raK5_VMyyeXxEYF7panghYejeQkhKJqxqdhDCX1zwI,1110
186
183
  webstoken/processor.py,sha256=szBNJNFjAjSOHoH4Q2h_MugE_AOnj-QoZwS83sn68Gg,2369
187
184
  webstoken/sentiment.py,sha256=Bivwm9Wmo2GMXvKYxPxd1vrnyDwDywyjxmOIe6jP6NM,7996
188
185
  webstoken/stemmer.py,sha256=AYg1frOaS2CWF-KvFwh3_s-VMZUa0olM7CN1UaEpc-8,2551
189
- webstoken/t.py,sha256=jrgacr0xK8Xbc9BZNtMknZv2xQagg9eMO3MXwCvIIFE,2558
190
186
  webstoken/tagger.py,sha256=RgDxPw0E6VgeXTrAFnnOb4X2J2Hu3snafr-MJeWtHlc,2246
191
187
  webstoken/tokenizer.py,sha256=RAaihP3Yq4OFHcXrTNUGBDLbq1-ti_lVUEw0CIPPCww,5858
192
- webscout-6.7.dist-info/LICENSE.md,sha256=5mkWS6cgjGxJClmN7n--h0beF3uFAOV_Ngr1YTK33Tk,9203
193
- webscout-6.7.dist-info/METADATA,sha256=NaQoy4zNP_3FPsgqqCkP1FzMoy5KsUS9vb5TjSP38Sc,40718
194
- webscout-6.7.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
195
- webscout-6.7.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
196
- webscout-6.7.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
197
- webscout-6.7.dist-info/RECORD,,
188
+ webscout-6.8.dist-info/LICENSE.md,sha256=5mkWS6cgjGxJClmN7n--h0beF3uFAOV_Ngr1YTK33Tk,9203
189
+ webscout-6.8.dist-info/METADATA,sha256=SXpZgppl5DVTdkX3rw9kjQjn66pxaVQq3VOu90gopOM,40718
190
+ webscout-6.8.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
191
+ webscout-6.8.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
192
+ webscout-6.8.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
193
+ webscout-6.8.dist-info/RECORD,,