webscout 8.2.8__py3-none-any.whl → 8.3__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.
- webscout/AIauto.py +34 -16
- webscout/AIbase.py +96 -37
- webscout/AIutel.py +491 -87
- webscout/Bard.py +441 -323
- webscout/Extra/GitToolkit/__init__.py +10 -10
- webscout/Extra/YTToolkit/ytapi/video.py +232 -232
- webscout/Litlogger/README.md +10 -0
- webscout/Litlogger/__init__.py +7 -59
- webscout/Litlogger/formats.py +4 -0
- webscout/Litlogger/handlers.py +103 -0
- webscout/Litlogger/levels.py +13 -0
- webscout/Litlogger/logger.py +92 -0
- webscout/Provider/AISEARCH/Perplexity.py +332 -358
- webscout/Provider/AISEARCH/felo_search.py +9 -35
- webscout/Provider/AISEARCH/genspark_search.py +30 -56
- webscout/Provider/AISEARCH/hika_search.py +4 -16
- webscout/Provider/AISEARCH/iask_search.py +410 -436
- webscout/Provider/AISEARCH/monica_search.py +4 -30
- webscout/Provider/AISEARCH/scira_search.py +6 -32
- webscout/Provider/AISEARCH/webpilotai_search.py +38 -64
- webscout/Provider/Blackboxai.py +155 -35
- webscout/Provider/ChatSandbox.py +2 -1
- webscout/Provider/Deepinfra.py +339 -339
- webscout/Provider/ExaChat.py +358 -358
- webscout/Provider/Gemini.py +169 -169
- webscout/Provider/GithubChat.py +1 -2
- webscout/Provider/Glider.py +3 -3
- webscout/Provider/HeckAI.py +172 -82
- webscout/Provider/LambdaChat.py +1 -0
- webscout/Provider/MCPCore.py +7 -3
- webscout/Provider/OPENAI/BLACKBOXAI.py +421 -139
- webscout/Provider/OPENAI/Cloudflare.py +38 -21
- webscout/Provider/OPENAI/FalconH1.py +457 -0
- webscout/Provider/OPENAI/FreeGemini.py +35 -18
- webscout/Provider/OPENAI/NEMOTRON.py +34 -34
- webscout/Provider/OPENAI/PI.py +427 -0
- webscout/Provider/OPENAI/Qwen3.py +304 -0
- webscout/Provider/OPENAI/README.md +952 -1253
- webscout/Provider/OPENAI/TwoAI.py +374 -0
- webscout/Provider/OPENAI/__init__.py +7 -1
- webscout/Provider/OPENAI/ai4chat.py +73 -63
- webscout/Provider/OPENAI/api.py +869 -644
- webscout/Provider/OPENAI/base.py +2 -0
- webscout/Provider/OPENAI/c4ai.py +34 -13
- webscout/Provider/OPENAI/chatgpt.py +575 -556
- webscout/Provider/OPENAI/chatgptclone.py +512 -487
- webscout/Provider/OPENAI/chatsandbox.py +11 -6
- webscout/Provider/OPENAI/copilot.py +258 -0
- webscout/Provider/OPENAI/deepinfra.py +327 -318
- webscout/Provider/OPENAI/e2b.py +140 -104
- webscout/Provider/OPENAI/exaai.py +420 -411
- webscout/Provider/OPENAI/exachat.py +448 -443
- webscout/Provider/OPENAI/flowith.py +7 -3
- webscout/Provider/OPENAI/freeaichat.py +12 -8
- webscout/Provider/OPENAI/glider.py +15 -8
- webscout/Provider/OPENAI/groq.py +5 -2
- webscout/Provider/OPENAI/heckai.py +311 -307
- webscout/Provider/OPENAI/llmchatco.py +9 -7
- webscout/Provider/OPENAI/mcpcore.py +18 -9
- webscout/Provider/OPENAI/multichat.py +7 -5
- webscout/Provider/OPENAI/netwrck.py +16 -11
- webscout/Provider/OPENAI/oivscode.py +290 -0
- webscout/Provider/OPENAI/opkfc.py +507 -496
- webscout/Provider/OPENAI/pydantic_imports.py +172 -0
- webscout/Provider/OPENAI/scirachat.py +29 -17
- webscout/Provider/OPENAI/sonus.py +308 -303
- webscout/Provider/OPENAI/standardinput.py +442 -433
- webscout/Provider/OPENAI/textpollinations.py +18 -11
- webscout/Provider/OPENAI/toolbaz.py +419 -413
- webscout/Provider/OPENAI/typefully.py +17 -10
- webscout/Provider/OPENAI/typegpt.py +21 -11
- webscout/Provider/OPENAI/uncovrAI.py +477 -462
- webscout/Provider/OPENAI/utils.py +90 -79
- webscout/Provider/OPENAI/venice.py +435 -425
- webscout/Provider/OPENAI/wisecat.py +387 -381
- webscout/Provider/OPENAI/writecream.py +166 -163
- webscout/Provider/OPENAI/x0gpt.py +26 -37
- webscout/Provider/OPENAI/yep.py +384 -356
- webscout/Provider/PI.py +2 -1
- webscout/Provider/TTI/README.md +55 -101
- webscout/Provider/TTI/__init__.py +4 -9
- webscout/Provider/TTI/aiarta.py +365 -0
- webscout/Provider/TTI/artbit.py +0 -0
- webscout/Provider/TTI/base.py +64 -0
- webscout/Provider/TTI/fastflux.py +200 -0
- webscout/Provider/TTI/magicstudio.py +201 -0
- webscout/Provider/TTI/piclumen.py +203 -0
- webscout/Provider/TTI/pixelmuse.py +225 -0
- webscout/Provider/TTI/pollinations.py +221 -0
- webscout/Provider/TTI/utils.py +11 -0
- webscout/Provider/TTS/__init__.py +2 -1
- webscout/Provider/TTS/base.py +159 -159
- webscout/Provider/TTS/openai_fm.py +129 -0
- webscout/Provider/TextPollinationsAI.py +308 -308
- webscout/Provider/TwoAI.py +239 -44
- webscout/Provider/UNFINISHED/Youchat.py +330 -330
- webscout/Provider/UNFINISHED/puterjs.py +635 -0
- webscout/Provider/UNFINISHED/test_lmarena.py +119 -119
- webscout/Provider/Writecream.py +246 -246
- webscout/Provider/__init__.py +2 -2
- webscout/Provider/ai4chat.py +33 -8
- webscout/Provider/granite.py +41 -6
- webscout/Provider/koala.py +169 -169
- webscout/Provider/oivscode.py +309 -0
- webscout/Provider/samurai.py +3 -2
- webscout/Provider/scnet.py +1 -0
- webscout/Provider/typegpt.py +3 -3
- webscout/Provider/uncovr.py +368 -368
- webscout/client.py +70 -0
- webscout/litprinter/__init__.py +58 -58
- webscout/optimizers.py +419 -419
- webscout/scout/README.md +3 -1
- webscout/scout/core/crawler.py +134 -64
- webscout/scout/core/scout.py +148 -109
- webscout/scout/element.py +106 -88
- webscout/swiftcli/Readme.md +323 -323
- webscout/swiftcli/plugins/manager.py +9 -2
- webscout/version.py +1 -1
- webscout/zeroart/__init__.py +134 -134
- webscout/zeroart/effects.py +100 -100
- webscout/zeroart/fonts.py +1238 -1238
- {webscout-8.2.8.dist-info → webscout-8.3.dist-info}/METADATA +160 -35
- webscout-8.3.dist-info/RECORD +290 -0
- {webscout-8.2.8.dist-info → webscout-8.3.dist-info}/WHEEL +1 -1
- {webscout-8.2.8.dist-info → webscout-8.3.dist-info}/entry_points.txt +1 -0
- webscout/Litlogger/Readme.md +0 -175
- webscout/Litlogger/core/__init__.py +0 -6
- webscout/Litlogger/core/level.py +0 -23
- webscout/Litlogger/core/logger.py +0 -165
- webscout/Litlogger/handlers/__init__.py +0 -12
- webscout/Litlogger/handlers/console.py +0 -33
- webscout/Litlogger/handlers/file.py +0 -143
- webscout/Litlogger/handlers/network.py +0 -173
- webscout/Litlogger/styles/__init__.py +0 -7
- webscout/Litlogger/styles/colors.py +0 -249
- webscout/Litlogger/styles/formats.py +0 -458
- webscout/Litlogger/styles/text.py +0 -87
- webscout/Litlogger/utils/__init__.py +0 -6
- webscout/Litlogger/utils/detectors.py +0 -153
- webscout/Litlogger/utils/formatters.py +0 -200
- webscout/Provider/ChatGPTGratis.py +0 -194
- webscout/Provider/TTI/AiForce/README.md +0 -159
- webscout/Provider/TTI/AiForce/__init__.py +0 -22
- webscout/Provider/TTI/AiForce/async_aiforce.py +0 -224
- webscout/Provider/TTI/AiForce/sync_aiforce.py +0 -245
- webscout/Provider/TTI/FreeAIPlayground/README.md +0 -99
- webscout/Provider/TTI/FreeAIPlayground/__init__.py +0 -9
- webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +0 -181
- webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +0 -180
- webscout/Provider/TTI/ImgSys/README.md +0 -174
- webscout/Provider/TTI/ImgSys/__init__.py +0 -23
- webscout/Provider/TTI/ImgSys/async_imgsys.py +0 -202
- webscout/Provider/TTI/ImgSys/sync_imgsys.py +0 -195
- webscout/Provider/TTI/MagicStudio/README.md +0 -101
- webscout/Provider/TTI/MagicStudio/__init__.py +0 -2
- webscout/Provider/TTI/MagicStudio/async_magicstudio.py +0 -111
- webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +0 -109
- webscout/Provider/TTI/Nexra/README.md +0 -155
- webscout/Provider/TTI/Nexra/__init__.py +0 -22
- webscout/Provider/TTI/Nexra/async_nexra.py +0 -286
- webscout/Provider/TTI/Nexra/sync_nexra.py +0 -258
- webscout/Provider/TTI/PollinationsAI/README.md +0 -146
- webscout/Provider/TTI/PollinationsAI/__init__.py +0 -23
- webscout/Provider/TTI/PollinationsAI/async_pollinations.py +0 -311
- webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +0 -265
- webscout/Provider/TTI/aiarta/README.md +0 -134
- webscout/Provider/TTI/aiarta/__init__.py +0 -2
- webscout/Provider/TTI/aiarta/async_aiarta.py +0 -482
- webscout/Provider/TTI/aiarta/sync_aiarta.py +0 -440
- webscout/Provider/TTI/artbit/README.md +0 -100
- webscout/Provider/TTI/artbit/__init__.py +0 -22
- webscout/Provider/TTI/artbit/async_artbit.py +0 -155
- webscout/Provider/TTI/artbit/sync_artbit.py +0 -148
- webscout/Provider/TTI/fastflux/README.md +0 -129
- webscout/Provider/TTI/fastflux/__init__.py +0 -22
- webscout/Provider/TTI/fastflux/async_fastflux.py +0 -261
- webscout/Provider/TTI/fastflux/sync_fastflux.py +0 -252
- webscout/Provider/TTI/huggingface/README.md +0 -114
- webscout/Provider/TTI/huggingface/__init__.py +0 -22
- webscout/Provider/TTI/huggingface/async_huggingface.py +0 -199
- webscout/Provider/TTI/huggingface/sync_huggingface.py +0 -195
- webscout/Provider/TTI/piclumen/README.md +0 -161
- webscout/Provider/TTI/piclumen/__init__.py +0 -23
- webscout/Provider/TTI/piclumen/async_piclumen.py +0 -268
- webscout/Provider/TTI/piclumen/sync_piclumen.py +0 -233
- webscout/Provider/TTI/pixelmuse/README.md +0 -79
- webscout/Provider/TTI/pixelmuse/__init__.py +0 -4
- webscout/Provider/TTI/pixelmuse/async_pixelmuse.py +0 -249
- webscout/Provider/TTI/pixelmuse/sync_pixelmuse.py +0 -182
- webscout/Provider/TTI/talkai/README.md +0 -139
- webscout/Provider/TTI/talkai/__init__.py +0 -4
- webscout/Provider/TTI/talkai/async_talkai.py +0 -229
- webscout/Provider/TTI/talkai/sync_talkai.py +0 -207
- webscout/Provider/UNFINISHED/oivscode.py +0 -351
- webscout-8.2.8.dist-info/RECORD +0 -334
- {webscout-8.2.8.dist-info → webscout-8.3.dist-info}/licenses/LICENSE.md +0 -0
- {webscout-8.2.8.dist-info → webscout-8.3.dist-info}/top_level.txt +0 -0
webscout/Provider/OPENAI/base.py
CHANGED
|
@@ -78,6 +78,8 @@ class BaseCompletions(ABC):
|
|
|
78
78
|
top_p: Optional[float] = None,
|
|
79
79
|
tools: Optional[List[Union[Tool, Dict[str, Any]]]] = None, # Support for tool definitions
|
|
80
80
|
tool_choice: Optional[Union[str, Dict[str, Any]]] = None, # Support for tool_choice parameter
|
|
81
|
+
timeout: Optional[int] = None,
|
|
82
|
+
proxies: Optional[dict] = None,
|
|
81
83
|
**kwargs: Any
|
|
82
84
|
) -> Union[ChatCompletion, Generator[ChatCompletionChunk, None, None]]:
|
|
83
85
|
"""
|
webscout/Provider/OPENAI/c4ai.py
CHANGED
|
@@ -10,7 +10,7 @@ from .base import OpenAICompatibleProvider, BaseChat, BaseCompletions
|
|
|
10
10
|
from .utils import (
|
|
11
11
|
ChatCompletionChunk, ChatCompletion, Choice, ChoiceDelta,
|
|
12
12
|
ChatCompletionMessage, CompletionUsage,
|
|
13
|
-
get_system_prompt, get_last_user_message, format_prompt # Import format_prompt
|
|
13
|
+
get_system_prompt, get_last_user_message, format_prompt, count_tokens # Import format_prompt
|
|
14
14
|
)
|
|
15
15
|
|
|
16
16
|
# Attempt to import LitAgent, fallback if not available
|
|
@@ -49,6 +49,8 @@ class Completions(BaseCompletions):
|
|
|
49
49
|
stream: bool = False,
|
|
50
50
|
temperature: Optional[float] = None,
|
|
51
51
|
top_p: Optional[float] = None,
|
|
52
|
+
timeout: Optional[int] = None,
|
|
53
|
+
proxies: Optional[dict] = None,
|
|
52
54
|
**kwargs: Any
|
|
53
55
|
) -> Union[ChatCompletion, Generator[ChatCompletionChunk, None, None]]:
|
|
54
56
|
"""
|
|
@@ -88,14 +90,21 @@ class Completions(BaseCompletions):
|
|
|
88
90
|
|
|
89
91
|
# Pass the formatted conversation prompt
|
|
90
92
|
if stream:
|
|
91
|
-
return self._create_stream(request_id, created_time, model, conversation_id, conversation_prompt, system_prompt)
|
|
93
|
+
return self._create_stream(request_id, created_time, model, conversation_id, conversation_prompt, system_prompt, timeout=timeout, proxies=proxies)
|
|
92
94
|
else:
|
|
93
|
-
return self._create_non_stream(request_id, created_time, model, conversation_id, conversation_prompt, system_prompt)
|
|
95
|
+
return self._create_non_stream(request_id, created_time, model, conversation_id, conversation_prompt, system_prompt, timeout=timeout, proxies=proxies)
|
|
94
96
|
|
|
95
97
|
def _create_stream(
|
|
96
|
-
self, request_id: str, created_time: int, model: str, conversation_id: str, prompt: str, system_prompt: str
|
|
98
|
+
self, request_id: str, created_time: int, model: str, conversation_id: str, prompt: str, system_prompt: str,
|
|
99
|
+
timeout: Optional[int] = None, proxies: Optional[dict] = None
|
|
97
100
|
) -> Generator[ChatCompletionChunk, None, None]:
|
|
101
|
+
original_proxies = self._client.session.proxies
|
|
102
|
+
if proxies is not None:
|
|
103
|
+
self._client.session.proxies = proxies
|
|
104
|
+
else:
|
|
105
|
+
self._client.session.proxies = {}
|
|
98
106
|
try:
|
|
107
|
+
timeout_val = timeout if timeout is not None else self._client.timeout
|
|
99
108
|
message_id = self._client._conversation_data[model]["messageId"]
|
|
100
109
|
url = f"{self._client.url}/api/chat/message"
|
|
101
110
|
payload = {
|
|
@@ -117,7 +126,8 @@ class Completions(BaseCompletions):
|
|
|
117
126
|
headers=self._client.headers,
|
|
118
127
|
json=payload,
|
|
119
128
|
stream=True,
|
|
120
|
-
timeout=
|
|
129
|
+
timeout=timeout_val,
|
|
130
|
+
proxies=proxies or getattr(self._client, "proxies", None)
|
|
121
131
|
)
|
|
122
132
|
response.raise_for_status()
|
|
123
133
|
|
|
@@ -160,11 +170,20 @@ class Completions(BaseCompletions):
|
|
|
160
170
|
except Exception as e:
|
|
161
171
|
print(f"Error during C4AI stream request: {e}")
|
|
162
172
|
raise IOError(f"C4AI request failed: {e}") from e
|
|
173
|
+
finally:
|
|
174
|
+
self._client.session.proxies = original_proxies
|
|
163
175
|
|
|
164
176
|
def _create_non_stream(
|
|
165
|
-
self, request_id: str, created_time: int, model: str, conversation_id: str, prompt: str, system_prompt: str
|
|
177
|
+
self, request_id: str, created_time: int, model: str, conversation_id: str, prompt: str, system_prompt: str,
|
|
178
|
+
timeout: Optional[int] = None, proxies: Optional[dict] = None
|
|
166
179
|
) -> ChatCompletion:
|
|
180
|
+
original_proxies = self._client.session.proxies
|
|
181
|
+
if proxies is not None:
|
|
182
|
+
self._client.session.proxies = proxies
|
|
183
|
+
else:
|
|
184
|
+
self._client.session.proxies = {}
|
|
167
185
|
try:
|
|
186
|
+
timeout_val = timeout if timeout is not None else self._client.timeout
|
|
168
187
|
message_id = self._client._conversation_data[model]["messageId"]
|
|
169
188
|
url = f"{self._client.url}/api/chat/message"
|
|
170
189
|
payload = {
|
|
@@ -185,7 +204,8 @@ class Completions(BaseCompletions):
|
|
|
185
204
|
url,
|
|
186
205
|
headers=self._client.headers,
|
|
187
206
|
json=payload,
|
|
188
|
-
timeout=
|
|
207
|
+
timeout=timeout_val,
|
|
208
|
+
proxies=proxies or getattr(self._client, "proxies", None)
|
|
189
209
|
)
|
|
190
210
|
response.raise_for_status()
|
|
191
211
|
|
|
@@ -194,8 +214,8 @@ class Completions(BaseCompletions):
|
|
|
194
214
|
message = ChatCompletionMessage(role="assistant", content=response_text)
|
|
195
215
|
choice = Choice(index=0, message=message, finish_reason="stop")
|
|
196
216
|
# Estimate tokens based on the formatted prompt
|
|
197
|
-
prompt_tokens =
|
|
198
|
-
completion_tokens =
|
|
217
|
+
prompt_tokens = count_tokens(prompt)
|
|
218
|
+
completion_tokens = count_tokens(response_text)
|
|
199
219
|
usage = CompletionUsage(
|
|
200
220
|
prompt_tokens=prompt_tokens,
|
|
201
221
|
completion_tokens=completion_tokens,
|
|
@@ -213,6 +233,8 @@ class Completions(BaseCompletions):
|
|
|
213
233
|
except Exception as e:
|
|
214
234
|
print(f"Error during C4AI non-stream request: {e}")
|
|
215
235
|
raise IOError(f"C4AI request failed: {e}") from e
|
|
236
|
+
finally:
|
|
237
|
+
self._client.session.proxies = original_proxies
|
|
216
238
|
|
|
217
239
|
class Chat(BaseChat):
|
|
218
240
|
def __init__(self, client: 'C4AI'):
|
|
@@ -242,19 +264,18 @@ class C4AI(OpenAICompatibleProvider):
|
|
|
242
264
|
|
|
243
265
|
def __init__(
|
|
244
266
|
self,
|
|
245
|
-
timeout: Optional[int] = None,
|
|
246
267
|
browser: str = "chrome"
|
|
247
268
|
):
|
|
248
269
|
"""
|
|
249
270
|
Initialize the C4AI client.
|
|
250
271
|
|
|
251
272
|
Args:
|
|
252
|
-
timeout: Request timeout in seconds.
|
|
253
273
|
browser: Browser name for LitAgent to generate User-Agent.
|
|
254
274
|
"""
|
|
255
|
-
self.timeout =
|
|
275
|
+
self.timeout = 30
|
|
256
276
|
self.url = "https://cohereforai-c4ai-command.hf.space"
|
|
257
277
|
self.session = requests.Session()
|
|
278
|
+
self.session.proxies = {}
|
|
258
279
|
self.max_tokens_to_sample = 2000
|
|
259
280
|
|
|
260
281
|
agent = LitAgent()
|
|
@@ -370,4 +391,4 @@ class C4AI(OpenAICompatibleProvider):
|
|
|
370
391
|
class _ModelList:
|
|
371
392
|
def list(inner_self):
|
|
372
393
|
return type(self).AVAILABLE_MODELS
|
|
373
|
-
return _ModelList()
|
|
394
|
+
return _ModelList()
|