webscout 7.9__py3-none-any.whl → 8.1__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 (69) hide show
  1. webscout/Extra/GitToolkit/__init__.py +10 -0
  2. webscout/Extra/GitToolkit/gitapi/__init__.py +12 -0
  3. webscout/Extra/GitToolkit/gitapi/repository.py +195 -0
  4. webscout/Extra/GitToolkit/gitapi/user.py +96 -0
  5. webscout/Extra/GitToolkit/gitapi/utils.py +62 -0
  6. webscout/Extra/YTToolkit/ytapi/video.py +232 -103
  7. webscout/Provider/AISEARCH/DeepFind.py +1 -1
  8. webscout/Provider/AISEARCH/ISou.py +1 -1
  9. webscout/Provider/AISEARCH/__init__.py +6 -1
  10. webscout/Provider/AISEARCH/felo_search.py +1 -1
  11. webscout/Provider/AISEARCH/genspark_search.py +1 -1
  12. webscout/Provider/AISEARCH/hika_search.py +194 -0
  13. webscout/Provider/AISEARCH/iask_search.py +436 -0
  14. webscout/Provider/AISEARCH/monica_search.py +246 -0
  15. webscout/Provider/AISEARCH/scira_search.py +320 -0
  16. webscout/Provider/AISEARCH/webpilotai_search.py +281 -0
  17. webscout/Provider/AllenAI.py +255 -122
  18. webscout/Provider/DeepSeek.py +1 -2
  19. webscout/Provider/Deepinfra.py +17 -9
  20. webscout/Provider/ExaAI.py +261 -0
  21. webscout/Provider/ExaChat.py +8 -1
  22. webscout/Provider/GithubChat.py +2 -1
  23. webscout/Provider/Jadve.py +2 -2
  24. webscout/Provider/Netwrck.py +3 -2
  25. webscout/Provider/OPENAI/__init__.py +17 -0
  26. webscout/Provider/OPENAI/base.py +46 -0
  27. webscout/Provider/OPENAI/c4ai.py +347 -0
  28. webscout/Provider/OPENAI/chatgptclone.py +460 -0
  29. webscout/Provider/OPENAI/deepinfra.py +284 -0
  30. webscout/Provider/OPENAI/exaai.py +419 -0
  31. webscout/Provider/OPENAI/exachat.py +421 -0
  32. webscout/Provider/OPENAI/freeaichat.py +355 -0
  33. webscout/Provider/OPENAI/glider.py +314 -0
  34. webscout/Provider/OPENAI/heckai.py +337 -0
  35. webscout/Provider/OPENAI/llmchatco.py +325 -0
  36. webscout/Provider/OPENAI/netwrck.py +348 -0
  37. webscout/Provider/OPENAI/scirachat.py +459 -0
  38. webscout/Provider/OPENAI/sonus.py +294 -0
  39. webscout/Provider/OPENAI/typegpt.py +361 -0
  40. webscout/Provider/OPENAI/utils.py +211 -0
  41. webscout/Provider/OPENAI/venice.py +428 -0
  42. webscout/Provider/OPENAI/wisecat.py +381 -0
  43. webscout/Provider/OPENAI/x0gpt.py +389 -0
  44. webscout/Provider/OPENAI/yep.py +329 -0
  45. webscout/Provider/OpenGPT.py +199 -0
  46. webscout/Provider/PI.py +39 -24
  47. webscout/Provider/Venice.py +1 -1
  48. webscout/Provider/Youchat.py +326 -296
  49. webscout/Provider/__init__.py +16 -6
  50. webscout/Provider/ai4chat.py +58 -56
  51. webscout/Provider/akashgpt.py +34 -22
  52. webscout/Provider/freeaichat.py +1 -1
  53. webscout/Provider/labyrinth.py +121 -20
  54. webscout/Provider/llmchatco.py +306 -0
  55. webscout/Provider/scira_chat.py +274 -0
  56. webscout/Provider/typefully.py +280 -0
  57. webscout/Provider/typegpt.py +3 -184
  58. webscout/prompt_manager.py +2 -1
  59. webscout/version.py +1 -1
  60. webscout/webscout_search.py +118 -54
  61. webscout/webscout_search_async.py +109 -45
  62. webscout-8.1.dist-info/METADATA +683 -0
  63. {webscout-7.9.dist-info → webscout-8.1.dist-info}/RECORD +67 -33
  64. webscout/Provider/flowith.py +0 -207
  65. webscout-7.9.dist-info/METADATA +0 -995
  66. {webscout-7.9.dist-info → webscout-8.1.dist-info}/LICENSE.md +0 -0
  67. {webscout-7.9.dist-info → webscout-8.1.dist-info}/WHEEL +0 -0
  68. {webscout-7.9.dist-info → webscout-8.1.dist-info}/entry_points.txt +0 -0
  69. {webscout-7.9.dist-info → webscout-8.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,280 @@
1
+ from typing import Union, Any, Dict
2
+ import requests
3
+ import re
4
+ from uuid import uuid4
5
+
6
+ from webscout.AIutel import Optimizers
7
+ from webscout.AIutel import Conversation
8
+ from webscout.AIutel import AwesomePrompts
9
+ from webscout.AIbase import Provider
10
+ from webscout import exceptions
11
+ from webscout.litagent import LitAgent
12
+
13
+ class TypefullyAI(Provider):
14
+ """
15
+ A class to interact with the Typefully AI API.
16
+
17
+ Attributes:
18
+ system_prompt (str): The system prompt to define the assistant's role.
19
+ model (str): The model identifier to use for completions.
20
+ output_length (int): Maximum length of the generated output.
21
+
22
+ Examples:
23
+ >>> from webscout.Provider.typefully import TypefullyAI
24
+ >>> ai = TypefullyAI()
25
+ >>> response = ai.chat("What's the weather today?")
26
+ >>> print(response)
27
+ 'The weather today is sunny with a high of 75°F.'
28
+ """
29
+ AVAILABLE_MODELS = ["openai:gpt-4o-mini", "openai:gpt-4o", "anthropic:claude-3-5-haiku-20241022", "groq:llama-3.3-70b-versatile"]
30
+
31
+ def __init__(
32
+ self,
33
+ is_conversation: bool = True,
34
+ max_tokens: int = 600,
35
+ timeout: int = 30,
36
+ intro: str = None,
37
+ filepath: str = None,
38
+ update_file: bool = True,
39
+ proxies: dict = {},
40
+ history_offset: int = 10250,
41
+ act: str = None,
42
+ system_prompt: str = "You're a helpful assistant.",
43
+ model: str = "openai:gpt-4o-mini",
44
+ ):
45
+ """
46
+ Initializes the TypefullyAI API with given parameters.
47
+
48
+ Args:
49
+ is_conversation (bool): Whether the provider is in conversation mode.
50
+ max_tokens (int): Maximum number of tokens to sample.
51
+ timeout (int): Timeout for API requests.
52
+ intro (str): Introduction message for the conversation.
53
+ filepath (str): Filepath for storing conversation history.
54
+ update_file (bool): Whether to update the conversation history file.
55
+ proxies (dict): Proxies for the API requests.
56
+ history_offset (int): Offset for conversation history.
57
+ act (str): Act for the conversation.
58
+ system_prompt (str): The system prompt to define the assistant's role.
59
+ model (str): The model identifier to use.
60
+
61
+ Examples:
62
+ >>> ai = TypefullyAI(system_prompt="You are a friendly assistant.")
63
+ >>> print(ai.system_prompt)
64
+ 'You are a friendly assistant.'
65
+ """
66
+ self.session = requests.Session()
67
+ self.is_conversation = is_conversation
68
+ self.max_tokens_to_sample = max_tokens
69
+ self.api_endpoint = "https://typefully.com/tools/ai/api/completion"
70
+ self.timeout = timeout
71
+ self.last_response = {}
72
+ self.system_prompt = system_prompt
73
+ self.model = model
74
+ self.output_length = max_tokens
75
+
76
+ # Initialize LitAgent for user agent generation
77
+ self.agent = LitAgent()
78
+
79
+ self.headers = {
80
+ "authority": "typefully.com",
81
+ "accept": "*/*",
82
+ "accept-encoding": "gzip, deflate, br, zstd",
83
+ "accept-language": "en-US,en;q=0.9",
84
+ "content-type": "application/json",
85
+ "dnt": "1",
86
+ "origin": "https://typefully.com",
87
+ "referer": "https://typefully.com/tools/ai/chat-gpt-alternative",
88
+ "sec-ch-ua": '"Microsoft Edge";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',
89
+ "sec-ch-ua-mobile": "?0",
90
+ "sec-ch-ua-platform": '"Windows"',
91
+ "user-agent": self.agent.random() # Use LitAgent to generate a random user agent
92
+ }
93
+
94
+ self.__available_optimizers = (
95
+ method
96
+ for method in dir(Optimizers)
97
+ if callable(getattr(Optimizers, method)) and not method.startswith("__")
98
+ )
99
+ self.session.headers.update(self.headers)
100
+ Conversation.intro = (
101
+ AwesomePrompts().get_act(
102
+ act, raise_not_found=True, default=None, case_insensitive=True
103
+ )
104
+ if act
105
+ else intro or Conversation.intro
106
+ )
107
+ self.conversation = Conversation(
108
+ is_conversation, self.max_tokens_to_sample, filepath, update_file
109
+ )
110
+ self.conversation.history_offset = history_offset
111
+ self.session.proxies = proxies
112
+
113
+ def ask(
114
+ self,
115
+ prompt: str,
116
+ stream: bool = False,
117
+ raw: bool = False,
118
+ optimizer: str = None,
119
+ conversationally: bool = False,
120
+ ) -> Dict[str, Any]:
121
+ """
122
+ Sends a prompt to the Typefully AI API and returns the response.
123
+
124
+ Args:
125
+ prompt (str): The prompt to send to the API.
126
+ stream (bool): Whether to stream the response.
127
+ raw (bool): Whether to return the raw response.
128
+ optimizer (str): Optimizer to use for the prompt.
129
+ conversationally (bool): Whether to generate the prompt conversationally.
130
+
131
+ Returns:
132
+ Dict[str, Any]: The API response.
133
+
134
+ Examples:
135
+ >>> ai = TypefullyAI()
136
+ >>> response = ai.ask("Tell me a joke!")
137
+ >>> print(response)
138
+ {'text': 'Why did the scarecrow win an award? Because he was outstanding in his field!'}
139
+ """
140
+ conversation_prompt = self.conversation.gen_complete_prompt(prompt)
141
+ if optimizer:
142
+ if optimizer in self.__available_optimizers:
143
+ conversation_prompt = getattr(Optimizers, optimizer)(
144
+ conversation_prompt if conversationally else prompt
145
+ )
146
+ else:
147
+ raise Exception(
148
+ f"Optimizer is not one of {self.__available_optimizers}"
149
+ )
150
+
151
+ payload = {
152
+ "prompt": conversation_prompt,
153
+ "systemPrompt": self.system_prompt,
154
+ "modelIdentifier": self.model,
155
+ "outputLength": self.output_length
156
+ }
157
+
158
+ def for_stream():
159
+ response = self.session.post(self.api_endpoint, headers=self.headers, json=payload, stream=True, timeout=self.timeout)
160
+ if not response.ok:
161
+ raise exceptions.FailedToGenerateResponseError(
162
+ f"Failed to generate response - ({response.status_code}, {response.reason}) - {response.text}"
163
+ )
164
+ streaming_response = ""
165
+ for line in response.iter_lines(decode_unicode=True):
166
+ if line:
167
+ match = re.search(r'0:"(.*?)"', line)
168
+ if match:
169
+ content = match.group(1)
170
+ streaming_response += content
171
+ yield content if raw else dict(text=content)
172
+ elif line.startswith('e:') or line.startswith('d:'):
173
+ # End of response
174
+ break
175
+ self.last_response.update(dict(text=streaming_response))
176
+ self.conversation.update_chat_history(
177
+ prompt, self.get_message(self.last_response)
178
+ )
179
+
180
+ def for_non_stream():
181
+ for _ in for_stream():
182
+ pass
183
+ return self.last_response
184
+
185
+ return for_stream() if stream else for_non_stream()
186
+
187
+ def chat(
188
+ self,
189
+ prompt: str,
190
+ stream: bool = False,
191
+ optimizer: str = None,
192
+ conversationally: bool = False,
193
+ ) -> str:
194
+ """
195
+ Generates a response from the Typefully AI API.
196
+
197
+ Args:
198
+ prompt (str): The prompt to send to the API.
199
+ stream (bool): Whether to stream the response.
200
+ optimizer (str): Optimizer to use for the prompt.
201
+ conversationally (bool): Whether to generate the prompt conversationally.
202
+
203
+ Returns:
204
+ str: The API response.
205
+
206
+ Examples:
207
+ >>> ai = TypefullyAI()
208
+ >>> response = ai.chat("What's the weather today?")
209
+ >>> print(response)
210
+ 'The weather today is sunny with a high of 75°F.'
211
+ """
212
+
213
+ def for_stream():
214
+ for response in self.ask(
215
+ prompt, True, optimizer=optimizer, conversationally=conversationally
216
+ ):
217
+ yield self.get_message(response)
218
+
219
+ def for_non_stream():
220
+ return self.get_message(
221
+ self.ask(
222
+ prompt,
223
+ False,
224
+ optimizer=optimizer,
225
+ conversationally=conversationally,
226
+ )
227
+ )
228
+
229
+ return for_stream() if stream else for_non_stream()
230
+
231
+ def get_message(self, response: dict) -> str:
232
+ """
233
+ Extracts the message from the API response.
234
+
235
+ Args:
236
+ response (dict): The API response.
237
+
238
+ Returns:
239
+ str: The message content.
240
+
241
+ Examples:
242
+ >>> ai = TypefullyAI()
243
+ >>> response = ai.ask("Tell me a joke!")
244
+ >>> message = ai.get_message(response)
245
+ >>> print(message)
246
+ 'Why did the scarecrow win an award? Because he was outstanding in his field!'
247
+ """
248
+ assert isinstance(response, dict), "Response should be of dict data-type only"
249
+ formatted_text = response["text"].replace('\\n', '\n').replace('\\n\\n', '\n\n')
250
+ return formatted_text
251
+
252
+ if __name__ == "__main__":
253
+ print("-" * 80)
254
+ print(f"{'Model':<50} {'Status':<10} {'Response'}")
255
+ print("-" * 80)
256
+
257
+ # Test all available models
258
+ working = 0
259
+ total = len(TypefullyAI.AVAILABLE_MODELS)
260
+
261
+ for model in TypefullyAI.AVAILABLE_MODELS:
262
+ try:
263
+ test_ai = TypefullyAI(model=model, timeout=60)
264
+ response = test_ai.chat("Say 'Hello' in one word", stream=True)
265
+ response_text = ""
266
+ for chunk in response:
267
+ response_text += chunk
268
+ print(f"\r{model:<50} {'Testing...':<10}", end="", flush=True)
269
+
270
+ if response_text and len(response_text.strip()) > 0:
271
+ status = "✓"
272
+ # Truncate response if too long
273
+ display_text = response_text.strip()[:50] + "..." if len(response_text.strip()) > 50 else response_text.strip()
274
+ else:
275
+ status = "✗"
276
+ display_text = "Empty or invalid response"
277
+ print(f"\r{model:<50} {status:<10} {display_text}")
278
+ except Exception as e:
279
+ print(f"\r{model:<50} {'✗':<10} {str(e)}")
280
+
@@ -14,195 +14,14 @@ class TypeGPT(Provider):
14
14
  """
15
15
  A class to interact with the TypeGPT.net API. Improved to match webscout standards.
16
16
  """
17
- url = "https://chat.typegpt.net"
18
-
19
17
  AVAILABLE_MODELS = [
20
- # OpenAI Models
21
- "gpt-3.5-turbo",
22
- "gpt-3.5-turbo-202201",
23
- "gpt-4o",
24
- "gpt-4o-2024-05-13",
25
- "gpt-4o-2024-11-20",
26
- "gpt-4o-mini",
18
+ # Working Models (based on testing)
27
19
  "gpt-4o-mini-2024-07-18",
28
- # "gpt-4o-mini-ddg", >>>> NOT WORKING
29
- "o1",
30
- # "o1-mini-2024-09-12", >>>> NOT WORKING
31
- "o1-preview",
32
- "o3-mini",
33
20
  "chatgpt-4o-latest",
34
-
35
- # Claude Models
36
- # "claude", >>>> NOT WORKING
37
- "claude-3-5-sonnet",
38
- "claude-3-5-sonnet-20240620",
39
- "claude-3-5-sonnet-x",
40
- # "claude-3-haiku-ddg", >>>> NOT WORKING
41
- "claude-hybridspace",
42
- "claude-sonnet-3.5",
43
- "Claude-sonnet-3.7",
44
- "anthropic/claude-3.5-sonnet",
45
- "anthropic/claude-3.7-sonnet",
46
-
47
- # Meta/LLaMA Models
48
- "@cf/meta/llama-2-7b-chat-fp16",
49
- "@cf/meta/llama-2-7b-chat-int8",
50
- "@cf/meta/llama-3-8b-instruct",
51
- "@cf/meta/llama-3.1-8b-instruct",
52
- "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
53
- # "@cf/meta-llama/llama-2-7b-chat-hf-lora", >>>> NOT WORKING
54
- "llama-3.1-405b",
55
- "llama-3.1-70b",
56
- # "llama-3.1-70b-ddg", >>>> NOT WORKING
57
- "llama-3.1-8b",
58
- # "llama-scaleway", >>>> NOT WORKING
59
- "llama3.1-8b", # >>>> NOT WORKING
60
- "llama3.3-70b",
61
- # "llamalight", >>>> NOT WORKING
62
- "Meta-Llama-3.1-405B-Instruct-Turbo",
63
- "Meta-Llama-3.3-70B-Instruct-Turbo",
64
- # "meta-llama/Llama-2-7b-chat-hf", >>>> NOT WORKING
65
- # "meta-llama/Llama-3.1-70B-Instruct", >>>> NOT WORKING
66
- # "meta-llama/Llama-3.1-8B-Instruct", >>>> NOT WORKING
67
- "meta-llama/Llama-3.2-11B-Vision-Instruct",
68
- # "meta-llama/Llama-3.2-1B-Instruct", >>>> NOT WORKING
69
- # "meta-llama/Llama-3.2-3B-Instruct", >>>> NOT WORKING
70
- "meta-llama/Llama-3.2-90B-Vision-Instruct",
71
- "meta-llama/Llama-3.3-70B-Instruct",
72
- "meta-llama/Llama-3.3-70B-Instruct-Turbo",
73
- # "meta-llama/Llama-Guard-3-8B", >>>> NOT WORKING
74
- # "meta-llama/Meta-Llama-3-70B-Instruct", >>>> NOT WORKING
75
- # "meta-llama/Meta-Llama-3-8B-Instruct", >>>> NOT WORKING
76
- "meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo",
77
- "meta-llama/Meta-Llama-3.1-8B-Instruct",
78
- "meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
79
-
80
- # Mistral Models
81
- "mistral",
82
- "mistral-large",
83
- "@cf/mistral/mistral-7b-instruct-v0.1",
84
- # "@cf/mistral/mistral-7b-instruct-v0.2-lora", >>>> NOT WORKING
85
- "@hf/mistralai/mistral-7b-instruct-v0.2",
86
- "mistralai/Mistral-7B-Instruct-v0.2",
87
- "mistralai/Mistral-7B-Instruct-v0.3",
88
- "mistralai/Mixtral-8x22B-Instruct-v0.1",
89
- "mistralai/Mixtral-8x7B-Instruct-v0.1",
90
- # "mixtral-8x7b-ddg", >>>> NOT WORKING
91
- "Mistral-7B-Instruct-v0.2",
92
-
93
- # Qwen Models
94
- "@cf/qwen/qwen1.5-0.5b-chat",
95
- "@cf/qwen/qwen1.5-1.8b-chat",
96
- "@cf/qwen/qwen1.5-14b-chat-awq",
97
- "@cf/qwen/qwen1.5-7b-chat-awq",
98
- "Qwen/Qwen2.5-3B-Instruct",
99
- "Qwen/Qwen2.5-72B-Instruct",
100
- "Qwen/Qwen2.5-Coder-32B-Instruct",
101
- "Qwen/Qwen2-72B-Instruct",
102
- "Qwen/QwQ-32B",
103
- "Qwen/QwQ-32B-Preview",
104
- "Qwen2.5-72B-Instruct",
105
- "qwen",
106
- "qwen-coder",
107
- # "Qwen-QwQ-32B-Preview", >>>> NOT WORKING
108
-
109
- # Google/Gemini Models
110
- # "@cf/google/gemma-2b-it-lora", >>>> NOT WORKING
111
- # "@cf/google/gemma-7b-it-lora", >>>> NOT WORKING
112
- "@hf/google/gemma-7b-it",
113
- "google/gemma-1.1-2b-it",
114
- "google/gemma-1.1-7b-it",
115
- "gemini-pro",
116
- "gemini-1.5-pro",
117
- "gemini-1.5-pro-latest",
118
- "gemini-1.5-flash",
119
- "gemini-flash-2.0",
120
- "gemini-thinking",
121
-
122
- # Microsoft Models
123
- "@cf/microsoft/phi-2",
124
- "microsoft/DialoGPT-medium",
125
- "microsoft/Phi-3-medium-4k-instruct",
126
- "microsoft/Phi-3-mini-4k-instruct",
127
- "microsoft/Phi-3.5-mini-instruct",
128
- "microsoft/phi-4",
129
- "microsoft/WizardLM-2-8x22B",
130
-
131
- # Yi Models
132
- "01-ai/Yi-1.5-34B-Chat",
133
- # "01-ai/Yi-34B-Chat", >>>> NOT WORKING
134
-
135
- # DeepSeek Models
136
- "@cf/deepseek-ai/deepseek-math-7b-base",
137
- "@cf/deepseek-ai/deepseek-math-7b-instruct",
138
- "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",
139
- "deepseek",
140
- "deepseek-ai/DeepSeek-R1",
141
- "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
142
- # "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", >>>> NOT WORKING
143
- # "deepseek-ai/DeepSeek-V2.5", >>>> NOT WORKING
144
- "deepseek-llm-67b-chat",
145
21
  "deepseek-r1",
146
- "deepseek-r1-distill-llama-70b",
147
- # "deepseek-reasoner", >>>> NOT WORKING
148
22
  "deepseek-v3",
149
- "uncensored-r1",
150
-
151
- # Specialized Models and Tools
152
- "@cf/defog/sqlcoder-7b-2",
153
- "@cf/thebloke/discolm-german-7b-v1-awq",
154
- "@cf/tiiuae/falcon-7b-instruct",
155
- # "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", >>>> NOT WORKING
156
- # "@hf/nexusflow/starling-lm-7b-beta", >>>> NOT WORKING
157
- # "@hf/nousresearch/hermes-2-pro-mistral-7b", >>>> NOT WORKING
158
- # "@hf/thebloke/deepseek-coder-6.7b-base-awq", >>>> NOT WORKING
159
- # "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", >>>> NOT WORKING
160
- # "@hf/thebloke/llama-2-13b-chat-awq", >>>> NOT WORKING
161
- # "@hf/thebloke/llamaguard-7b-awq", >>>> NOT WORKING
162
- # "@hf/thebloke/mistral-7b-instruct-v0.1-awq", >>>> NOT WORKING
163
- # "@hf/thebloke/neural-chat-7b-v3-1-awq", >>>> NOT WORKING
164
- # "@hf/thebloke/openhermes-2.5-mistral-7b-awq", >>>> NOT WORKING
165
- # "@hf/thebloke/zephyr-7b-beta-awq", >>>> NOT WORKING
23
+ "uncensored-r1",
166
24
  "Image-Generator",
167
- # "flux-1-schnell", >>>> NOT WORKING
168
- # "HelpingAI-15B", >>>> NOT WORKING
169
- # "HelpingAI2-3b", >>>> NOT WORKING
170
- # "HelpingAI2-6B", >>>> NOT WORKING
171
- # "HelpingAI2-9B", >>>> NOT WORKING
172
- # "HelpingAI2.5-10B", >>>> NOT WORKING
173
- # "Helpingai2.5-10b-1m", >>>> NOT WORKING
174
- # "HelpingAI2.5-2B", >>>> NOT WORKING
175
- # "HELVETE", >>>> NOT WORKING
176
- # "HELVETE-X", >>>> NOT WORKING
177
- # "evil", >>>> NOT WORKING
178
- # "Image-Generator", >>>> NOT WORKING
179
- # "Image-Generator-NSFW", >>>> NOT WORKING
180
- # "midijourney", >>>> NOT WORKING
181
- # "Niansuh", >>>> NOT WORKING
182
- # "niansuh-t1", >>>> NOT WORKING
183
- # "Nous-Hermes-2-Mixtral-8x7B-DPO", >>>> NOT WORKING
184
- # "NousResearch/Hermes-3-Llama-3.1-8B", >>>> NOT WORKING
185
- # "NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO", >>>> NOT WORKING
186
- # "nvidia/Llama-3.1-Nemotron-70B-Instruct", >>>> NOT WORKING
187
- # "openai", >>>> NOT WORKING
188
- # "openai-audio", >>>> NOT WORKING
189
- # "openai-large", >>>> NOT WORKING
190
- # "openai-reasoning", >>>> NOT WORKING
191
- # "openai/whisper-large-v3", >>>> NOT WORKING
192
- # "openai/whisper-large-v3-turbo", >>>> NOT WORKING
193
- # "openbmb/MiniCPM-Llama3-V-2_5", >>>> NOT WORKING
194
- # "openchat/openchat-3.6-8b", >>>> NOT WORKING
195
- # "p1", >>>> NOT WORKING
196
- # "phi", >>>> NOT WORKING
197
- # "Phi-4-multilmodal-instruct", >>>> NOT WORKING
198
- # "Priya-3B", >>>> NOT WORKING
199
- # "rtist", >>>> NOT WORKING
200
- # "searchgpt", >>>> NOT WORKING
201
- # "sur", >>>> NOT WORKING
202
- # "sur-mistral", >>>> NOT WORKING
203
- # "tiiuae/falcon-7b-instruct", >>>> NOT WORKING
204
- # "TirexAi", >>>> NOT WORKING
205
- # "unity", >>>> NOT WORKING
206
25
  ]
207
26
 
208
27
  def __init__(
@@ -230,7 +49,7 @@ class TypeGPT(Provider):
230
49
  self.session = requests.Session()
231
50
  self.is_conversation = is_conversation
232
51
  self.max_tokens_to_sample = max_tokens
233
- self.api_endpoint = "https://chat.typegpt.net/api/openai/typegpt/v1/chat/completions"
52
+ self.api_endpoint = "https://chat.typegpt.net/api/openai/v1/chat/completions"
234
53
  self.timeout = timeout
235
54
  self.last_response = {}
236
55
  self.model = model
@@ -110,7 +110,8 @@ class AwesomePrompts:
110
110
  self,
111
111
  key: Union[str, int],
112
112
  default: Optional[str] = None,
113
- case_insensitive: bool = True
113
+ case_insensitive: bool = True,
114
+ raise_not_found: bool = False # currently unused
114
115
  ) -> Optional[str]:
115
116
  """Get that perfect prompt! 🎯
116
117
 
webscout/version.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = "7.9"
1
+ __version__ = "8.1"
2
2
  __prog__ = "webscout"