webscout 8.3.3__py3-none-any.whl → 8.3.4__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/AIutel.py +221 -4
- webscout/Bard.py +2 -22
- webscout/Provider/AISEARCH/scira_search.py +24 -11
- webscout/Provider/Deepinfra.py +75 -57
- webscout/Provider/ExaChat.py +9 -5
- webscout/Provider/Flowith.py +1 -1
- webscout/Provider/FreeGemini.py +2 -2
- webscout/Provider/Gemini.py +3 -10
- webscout/Provider/GeminiProxy.py +31 -5
- webscout/Provider/LambdaChat.py +39 -31
- webscout/Provider/Netwrck.py +5 -8
- webscout/Provider/OLLAMA.py +8 -9
- webscout/Provider/OPENAI/README.md +1 -1
- webscout/Provider/OPENAI/__init__.py +1 -1
- webscout/Provider/OPENAI/autoproxy.py +1 -1
- webscout/Provider/OPENAI/copilot.py +73 -26
- webscout/Provider/OPENAI/deepinfra.py +54 -24
- webscout/Provider/OPENAI/exachat.py +9 -5
- webscout/Provider/OPENAI/monochat.py +3 -3
- webscout/Provider/OPENAI/netwrck.py +4 -7
- webscout/Provider/OPENAI/qodo.py +630 -0
- webscout/Provider/OPENAI/scirachat.py +82 -49
- webscout/Provider/OPENAI/textpollinations.py +13 -12
- webscout/Provider/OPENAI/typegpt.py +3 -3
- webscout/Provider/Qodo.py +454 -0
- webscout/Provider/TTI/monochat.py +3 -3
- webscout/Provider/TextPollinationsAI.py +13 -12
- webscout/Provider/__init__.py +4 -4
- webscout/Provider/copilot.py +58 -61
- webscout/Provider/freeaichat.py +64 -55
- webscout/Provider/monochat.py +275 -0
- webscout/Provider/scira_chat.py +111 -21
- webscout/Provider/typegpt.py +2 -2
- webscout/Provider/x0gpt.py +325 -315
- webscout/__init__.py +7 -2
- webscout/auth/routes.py +20 -3
- webscout/version.py +1 -1
- {webscout-8.3.3.dist-info → webscout-8.3.4.dist-info}/METADATA +1 -2
- {webscout-8.3.3.dist-info → webscout-8.3.4.dist-info}/RECORD +43 -43
- webscout/Provider/AI21.py +0 -177
- webscout/Provider/HuggingFaceChat.py +0 -469
- webscout/Provider/OPENAI/freeaichat.py +0 -363
- {webscout-8.3.3.dist-info → webscout-8.3.4.dist-info}/WHEEL +0 -0
- {webscout-8.3.3.dist-info → webscout-8.3.4.dist-info}/entry_points.txt +0 -0
- {webscout-8.3.3.dist-info → webscout-8.3.4.dist-info}/licenses/LICENSE.md +0 -0
- {webscout-8.3.3.dist-info → webscout-8.3.4.dist-info}/top_level.txt +0 -0
webscout/__init__.py
CHANGED
|
@@ -17,8 +17,13 @@ from .litagent import LitAgent
|
|
|
17
17
|
from .scout import *
|
|
18
18
|
from .zeroart import *
|
|
19
19
|
from .yep_search import *
|
|
20
|
-
|
|
20
|
+
|
|
21
|
+
# Import litprinter components for direct access from webscout (uncomment if needed)
|
|
21
22
|
# from .litprinter import lit, litprint, ic, install, uninstall
|
|
23
|
+
|
|
24
|
+
# Import sanitize_stream and lit_streamer for easy access
|
|
25
|
+
from .AIutel import sanitize_stream, lit_streamer, LITSTREAM
|
|
26
|
+
|
|
22
27
|
agent = LitAgent()
|
|
23
28
|
|
|
24
29
|
__repo__ = "https://github.com/OE-LUCIFER/Webscout"
|
|
@@ -30,7 +35,7 @@ try:
|
|
|
30
35
|
if update_message:
|
|
31
36
|
print(update_message)
|
|
32
37
|
except Exception:
|
|
33
|
-
pass # Silently handle any update check
|
|
38
|
+
pass # Silently handle any update check errors
|
|
34
39
|
|
|
35
40
|
import logging
|
|
36
41
|
logging.getLogger("webscout").addHandler(logging.NullHandler())
|
webscout/auth/routes.py
CHANGED
|
@@ -44,6 +44,7 @@ from .auth_system import get_auth_components
|
|
|
44
44
|
from webscout.DWEBS import GoogleSearch
|
|
45
45
|
from webscout.yep_search import YepSearch
|
|
46
46
|
from webscout.webscout_search import WEBS
|
|
47
|
+
from webscout.Bing_search import BingSearch
|
|
47
48
|
|
|
48
49
|
# Setup logger
|
|
49
50
|
logger = Logger(
|
|
@@ -483,11 +484,11 @@ class Api:
|
|
|
483
484
|
@self.app.get(
|
|
484
485
|
"/search",
|
|
485
486
|
tags=["Web search"],
|
|
486
|
-
description="Unified web search endpoint supporting Google, Yep, and
|
|
487
|
+
description="Unified web search endpoint supporting Google, Yep, DuckDuckGo, and Bing with text, news, images, and suggestions search types."
|
|
487
488
|
)
|
|
488
489
|
async def websearch(
|
|
489
490
|
q: str = Query(..., description="Search query"),
|
|
490
|
-
engine: str = Query("google", description="Search engine: google, yep, duckduckgo"),
|
|
491
|
+
engine: str = Query("google", description="Search engine: google, yep, duckduckgo, bing"),
|
|
491
492
|
max_results: int = Query(10, description="Maximum number of results"),
|
|
492
493
|
region: str = Query("all", description="Region code (optional)"),
|
|
493
494
|
safesearch: str = Query("moderate", description="Safe search: on, moderate, off"),
|
|
@@ -532,8 +533,24 @@ class Api:
|
|
|
532
533
|
return {"engine": "duckduckgo", "type": "suggestions", "results": results}
|
|
533
534
|
else:
|
|
534
535
|
return {"error": "DuckDuckGo only supports text and suggestions in this API.", "footer": github_footer}
|
|
536
|
+
elif engine == "bing":
|
|
537
|
+
bs = BingSearch()
|
|
538
|
+
if type == "text":
|
|
539
|
+
results = bs.text(keywords=q, region=region, safesearch=safesearch, max_results=max_results)
|
|
540
|
+
return {"engine": "bing", "type": "text", "results": [r.__dict__ for r in results]}
|
|
541
|
+
elif type == "news":
|
|
542
|
+
results = bs.news(keywords=q, region=region, safesearch=safesearch, max_results=max_results)
|
|
543
|
+
return {"engine": "bing", "type": "news", "results": [r.__dict__ for r in results]}
|
|
544
|
+
elif type == "images":
|
|
545
|
+
results = bs.images(keywords=q, region=region, safesearch=safesearch, max_results=max_results)
|
|
546
|
+
return {"engine": "bing", "type": "images", "results": [r.__dict__ for r in results]}
|
|
547
|
+
elif type == "suggestions":
|
|
548
|
+
results = bs.suggestions(q, region=region)
|
|
549
|
+
return {"engine": "bing", "type": "suggestions", "results": results}
|
|
550
|
+
else:
|
|
551
|
+
return {"error": "Bing only supports text, news, images, and suggestions in this API.", "footer": github_footer}
|
|
535
552
|
else:
|
|
536
|
-
return {"error": "Unknown engine. Use one of: google, yep, duckduckgo.", "footer": github_footer}
|
|
553
|
+
return {"error": "Unknown engine. Use one of: google, yep, duckduckgo, bing.", "footer": github_footer}
|
|
537
554
|
except Exception as e:
|
|
538
555
|
# Special handling for rate limit errors
|
|
539
556
|
msg = str(e)
|
webscout/version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = "8.3.
|
|
1
|
+
__version__ = "8.3.4"
|
|
2
2
|
__prog__ = "webscout"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: webscout
|
|
3
|
-
Version: 8.3.
|
|
3
|
+
Version: 8.3.4
|
|
4
4
|
Summary: Search for anything using Google, DuckDuckGo, phind.com, Contains AI models, can transcribe yt videos, temporary email and phone number generation, has TTS support, webai (terminal gpt and open interpreter) and offline LLMs and more
|
|
5
5
|
Author-email: OEvortex <helpingai5@gmail.com>
|
|
6
6
|
License: HelpingAI
|
|
@@ -50,7 +50,6 @@ Requires-Dist: google-generativeai
|
|
|
50
50
|
Requires-Dist: lxml>=5.2.2
|
|
51
51
|
Requires-Dist: orjson
|
|
52
52
|
Requires-Dist: PyYAML
|
|
53
|
-
Requires-Dist: ollama
|
|
54
53
|
Requires-Dist: pillow
|
|
55
54
|
Requires-Dist: bson
|
|
56
55
|
Requires-Dist: cloudscraper
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
webscout/AIauto.py,sha256=zRQcmNzQCCPOD6ancQlRlSRqEM24rtb-Xlpqg6bt5Pg,10557
|
|
2
2
|
webscout/AIbase.py,sha256=MbtLlwMNrRu1nKJkj-4ZYUL8YVzDzLdboIAA_7yextM,14529
|
|
3
|
-
webscout/AIutel.py,sha256=
|
|
4
|
-
webscout/Bard.py,sha256=
|
|
3
|
+
webscout/AIutel.py,sha256=ZpDW_jlOP8_5lHu63LMsVL3Nz4JyNlprj0gjx8BtG_k,45593
|
|
4
|
+
webscout/Bard.py,sha256=2t-GClL98fVZXBWGfH937u23n7_Cunzk-GFnOUbIPwk,44577
|
|
5
5
|
webscout/Bing_search.py,sha256=eFeqR6aOF_Drdie5GdYGMfxsrjcfOBB62o20Avd04GA,16347
|
|
6
6
|
webscout/DWEBS.py,sha256=OnoKtIkrlNtYlGL_CCPsLet8cj2wKxqquFB8RdBxXfk,18621
|
|
7
|
-
webscout/__init__.py,sha256=
|
|
7
|
+
webscout/__init__.py,sha256=ogpa_ghGqU6DlFLg_QduZG9vK-h39LiDUweILkn2Qg0,1252
|
|
8
8
|
webscout/__main__.py,sha256=qtkMZK5jzQ79ZkFAuZBxMgayuhmw3aRDj1F8Pt06NW4,108
|
|
9
9
|
webscout/cli.py,sha256=_ZeVKRKw6ZX0RScC5BeKNK81gak89qkik168FqB9BH8,20239
|
|
10
10
|
webscout/client.py,sha256=HHnOL9I14uEJHCpGcyjlpZwna_DEJehHD5sqmti7sd8,5588
|
|
@@ -16,7 +16,7 @@ webscout/prompt_manager.py,sha256=j4MLYx3SpeeTxzsbgUGAHWLtJ1HAF6eaWOzJCAiGND4,10
|
|
|
16
16
|
webscout/tempid.py,sha256=lqTTOjVSwDMmC0UoThdyshFyIAxTikVaN613-6K3g_s,4968
|
|
17
17
|
webscout/update_checker.py,sha256=vZKTk4HkDED8x5cujKK0Bjq3UjncyESWM7nNm4LR1fg,3825
|
|
18
18
|
webscout/utils.py,sha256=o2hU3qaVPk25sog3e4cyVZO3l8xwaZpYRziZPotEzNo,3075
|
|
19
|
-
webscout/version.py,sha256=
|
|
19
|
+
webscout/version.py,sha256=sfaUvYVcRIGyy4xdFtg3kTlSuHFL3zL1W0oMF055WcA,46
|
|
20
20
|
webscout/webscout_search.py,sha256=e8n03H11N_6Eaey99SvdD9rYEwMERnurNwwrX8ORGVs,47825
|
|
21
21
|
webscout/webscout_search_async.py,sha256=xjwSPpQSbeemwRfJYZJA8pJ8WqEHj93Nm4ouH_JddLc,27110
|
|
22
22
|
webscout/yep_search.py,sha256=WwdbHtHjgrqc4j9vChf601UB-6ShVcd0iuWem-9qi_8,11730
|
|
@@ -67,7 +67,6 @@ webscout/Litlogger/formats.py,sha256=ijauAaQbob9r3BBt7QO4LdI_vYSsfH1jmKPHrCh7w-I
|
|
|
67
67
|
webscout/Litlogger/handlers.py,sha256=46Gw-vWTfEVUbfYH2TsAsfx_jl-DAbfAXvppuKfxa5U,4159
|
|
68
68
|
webscout/Litlogger/levels.py,sha256=Q0N3vDIQ9gcyR3XHjGxdm6EzPNZJcLlDpo9hDwb26SY,259
|
|
69
69
|
webscout/Litlogger/logger.py,sha256=2zIvCQUjTieWtV4nf81bbrxlaiKl2-gaDFVUpiy3eeI,4939
|
|
70
|
-
webscout/Provider/AI21.py,sha256=kyr07xbalGQuR-wP9L5W7c_ri5-PEEvyj42jLV56XaE,6225
|
|
71
70
|
webscout/Provider/Aitopia.py,sha256=m01z55uTYvtCANJ-kSCkvVMsYAIDT_1F5HBxVWLNz2I,12948
|
|
72
71
|
webscout/Provider/AllenAI.py,sha256=pCj0OktBSeFp90KzrC16F4P9qB3CqHnpfEYY_0zZFPs,19270
|
|
73
72
|
webscout/Provider/Andi.py,sha256=-Pf3ptSL7PMpVzj2WawopKNFKCC5ZhhH0e5kUFNiIb4,8778
|
|
@@ -76,39 +75,39 @@ webscout/Provider/ChatGPTClone.py,sha256=3nr_ijQIFyQBbQlGsnjsMMiBgf03WB6KKT5CXrX
|
|
|
76
75
|
webscout/Provider/ChatSandbox.py,sha256=P9fiF-Pmx_0XHV1eo4sBV_H9FybTTcoYifkf-6H61WI,13438
|
|
77
76
|
webscout/Provider/Cloudflare.py,sha256=tcjXK50ghqxmLP0VC8kUQkslgVn9JDB7adxlJHNHIrM,14454
|
|
78
77
|
webscout/Provider/Cohere.py,sha256=oL9kAv--RSkEQxwkPTq1Wi57Wkgg0WNvL82CpTj22YY,8264
|
|
79
|
-
webscout/Provider/Deepinfra.py,sha256=
|
|
78
|
+
webscout/Provider/Deepinfra.py,sha256=nVd0OGm17RiVxZbR0RLx-464HXUFGRqUJzeim7DtOFk,15795
|
|
80
79
|
webscout/Provider/ExaAI.py,sha256=plbjF5LYyZS4elLWKtD6AURDQS3O9xAGBScpDGPHWiY,9783
|
|
81
|
-
webscout/Provider/ExaChat.py,sha256=
|
|
82
|
-
webscout/Provider/Flowith.py,sha256=
|
|
83
|
-
webscout/Provider/FreeGemini.py,sha256=
|
|
84
|
-
webscout/Provider/Gemini.py,sha256
|
|
85
|
-
webscout/Provider/GeminiProxy.py,sha256=
|
|
80
|
+
webscout/Provider/ExaChat.py,sha256=zs3PZWlJfrkDWaEhi3mhvAldLU7mQ9TYhquaSPA1WpE,14618
|
|
81
|
+
webscout/Provider/Flowith.py,sha256=x_fb73t6Y91J7de_NSQsHt7we2HA6M6dacUudqP8uQc,8621
|
|
82
|
+
webscout/Provider/FreeGemini.py,sha256=RIqr6Z--1hH2z68QtXyWXrNGp_EvhWbmZhmzjrnb8QU,10998
|
|
83
|
+
webscout/Provider/Gemini.py,sha256=-Q2JreMF1jLBXKs5TsFzVhQvYtD-ZzJd-Ba-nIiy9Js,6479
|
|
84
|
+
webscout/Provider/GeminiProxy.py,sha256=mEm-RJETfuaN8gXlv6HsnjrkrT9C4FHm1UiRc5ez6I8,6655
|
|
86
85
|
webscout/Provider/GithubChat.py,sha256=vBPjsLchav-kuond0D2kaIo8_QsrYDPYNwKF-D4yKPs,14662
|
|
87
86
|
webscout/Provider/GizAI.py,sha256=o8liIlSPz0MDTqLLGwtLiX3iSAsEuJfX1Cl8UNGOpfQ,10865
|
|
88
87
|
webscout/Provider/Glider.py,sha256=MbgKflBwSrvsOKW3Ya-ijKc3Hxh_L6LnD6tfUSFKsoQ,9342
|
|
89
88
|
webscout/Provider/Groq.py,sha256=V6nDhue-AEOJLc1-BP6ZOwsUxpjXP1SqBLTG07dhwWc,36880
|
|
90
89
|
webscout/Provider/HeckAI.py,sha256=19LH3UMpLUKWHgzPZHSDLnDaQ0Nv_Q_qTQa4_mObgYQ,16567
|
|
91
|
-
webscout/Provider/HuggingFaceChat.py,sha256=xRhaXs22ipUE8qbZ40PljA6nssRwow0xdYedXHYXuCY,21854
|
|
92
90
|
webscout/Provider/Hunyuan.py,sha256=FjFcqVhexIpEuljUsGJN4t12bMQvGmzrmc4D1kBLdNk,12332
|
|
93
91
|
webscout/Provider/Jadve.py,sha256=5TwX4cxB5X4JAuEw_9BjjvNtiGeaISkqX4s9mMTRSC4,12972
|
|
94
92
|
webscout/Provider/Koboldai.py,sha256=K_bAuRMYRkHzN1Qjh0hP6N3oWN_2KoqHpucROmoyLUY,15363
|
|
95
|
-
webscout/Provider/LambdaChat.py,sha256=
|
|
93
|
+
webscout/Provider/LambdaChat.py,sha256=f4vTydMOPTEcXDRBn_-LwrSSpNmign7e6JW5YOvlbW8,19411
|
|
96
94
|
webscout/Provider/Llama3.py,sha256=9f-7ha23OdvUthKUqLwBpSBBZzWPmadJPESyDOUKbC0,10770
|
|
97
95
|
webscout/Provider/MCPCore.py,sha256=EFykzoDvifeLAiW6HJ-dtjPnaBB8EvxTGhPHi_uix8E,13070
|
|
98
96
|
webscout/Provider/Marcus.py,sha256=JDjjpmimsWCgrRqZFPGxuHIZ5M98d2ijFzMie86CZvs,8352
|
|
99
97
|
webscout/Provider/MiniMax.py,sha256=OLZBUY9tuopLlTxX1XhoI5yhBnM2zKD8VHDBlygKzq4,9303
|
|
100
98
|
webscout/Provider/Nemotron.py,sha256=xA8tQlckUMa5LXSlEeLnf9vbC9x3nCHxh9hChBFb7_Q,9097
|
|
101
|
-
webscout/Provider/Netwrck.py,sha256=
|
|
102
|
-
webscout/Provider/OLLAMA.py,sha256=
|
|
99
|
+
webscout/Provider/Netwrck.py,sha256=LTXPbkBhB1QOOAP5r8f4XzrJvtJUNvJ2RqX9nurXGIk,10650
|
|
100
|
+
webscout/Provider/OLLAMA.py,sha256=tvXBGY1YATJpAaDkgiD_jsdn06OYoGY-a3rGTQp5jvI,15061
|
|
103
101
|
webscout/Provider/OpenGPT.py,sha256=uyQx2l4U-NhBEB3IHXR1-pMnsRRVyfedjZ7lo6oXWAo,9594
|
|
104
102
|
webscout/Provider/Openai.py,sha256=TC4BkezoLqimaqOwzX-nYC9w7hXbDCajm-bzkdyl-gA,20433
|
|
105
103
|
webscout/Provider/PI.py,sha256=XbOILpmUoVN5px10mg8vMvUMRaaOHrCbfwxXNBxw2M4,16608
|
|
106
104
|
webscout/Provider/Perplexitylabs.py,sha256=e0k7tuh99dedBTkQxytvfwPS6x6hlaFVpZyrpvy4_Xs,16621
|
|
105
|
+
webscout/Provider/Qodo.py,sha256=NManWD-8c5q-IrAQ_Qxv1tmXPnP6aOm-0nhBlypwODw,19324
|
|
107
106
|
webscout/Provider/QwenLM.py,sha256=lxnSF38wrupb1e7XhN8f0py8v6efwOndFh2SwvIy7Sc,10430
|
|
108
107
|
webscout/Provider/Reka.py,sha256=dWw4vX91nJhAn-X1SXK72gttRaTqWNGUBFaeRJobTJg,8519
|
|
109
108
|
webscout/Provider/StandardInput.py,sha256=hBNHn6EqjrJ5LG0W4hTsFcJYRpNCt1WpRJaK6IQK0uw,15084
|
|
110
109
|
webscout/Provider/TeachAnything.py,sha256=Wy1fFxi_K4G8oFvcBlmDHJBhP1OMihpnBJKt6IA0c38,10416
|
|
111
|
-
webscout/Provider/TextPollinationsAI.py,sha256=
|
|
110
|
+
webscout/Provider/TextPollinationsAI.py,sha256=gA6LGNjcaKeX_h690ndYrjyvdIrH_zSUY9BRDF-4Aco,13313
|
|
112
111
|
webscout/Provider/TogetherAI.py,sha256=NIHt9b1QzozKZi-vc9Z5zhGoDqj7ZHYmEsq8KvkHND8,14488
|
|
113
112
|
webscout/Provider/TwoAI.py,sha256=T7EVecu9QnuESmDYTyxikOIJiMsfpPKtx4hp4CZ7tps,19951
|
|
114
113
|
webscout/Provider/TypliAI.py,sha256=lfOyX2mGZBsmqqB4GafAzAhiV0U0C9RJf9I--hTw9Ik,11919
|
|
@@ -118,17 +117,17 @@ webscout/Provider/WiseCat.py,sha256=6ReKCCDHzOV7icExqpHs564y-smrtwyuc4eH3VczwE4,
|
|
|
118
117
|
webscout/Provider/WrDoChat.py,sha256=wHq46_0kn1i4rDN4Y72Uctb-jXXpXT20Z43-MPtfFLs,14100
|
|
119
118
|
webscout/Provider/WritingMate.py,sha256=kvUD3E1nY9w0G79T4lqCKvyWrzX5MP3X9a3HCd8t72U,12203
|
|
120
119
|
webscout/Provider/XenAI.py,sha256=GZL9J_1yGc3ft2Uo3eq7jS2cZy0ytIPgQ6eNyEN1MAM,13514
|
|
121
|
-
webscout/Provider/__init__.py,sha256=
|
|
120
|
+
webscout/Provider/__init__.py,sha256=cF0C7_ze2X7Au2T3O2mqWT-cXK6WIwuyKTCTZ3Y8H7Q,4036
|
|
122
121
|
webscout/Provider/ai4chat.py,sha256=4PvQxPAWlaDgSyo5Dg1W6BVIUDTHq0rFK0H7rcBiCOI,6845
|
|
123
122
|
webscout/Provider/akashgpt.py,sha256=iJke-aCmTT_8RmrJbSAZayhtIimum1h680diJwBxdOI,13045
|
|
124
123
|
webscout/Provider/asksteve.py,sha256=qDRe4X6EmgOkhzRz8AAMYUSQFuO5k_84jwgPWKFkjGY,8985
|
|
125
124
|
webscout/Provider/cerebras.py,sha256=1A89aUVgMcwKPrSoQw1vHA1gQfsWxYbxV-MZ4EzwvqQ,11324
|
|
126
125
|
webscout/Provider/chatglm.py,sha256=CBiRhxe1yznhvyOaQPDf9Qu0SSfFvJ6LhTJCtHxsS0Q,8737
|
|
127
126
|
webscout/Provider/cleeai.py,sha256=lgIBs5JpNaY-gfwUBorZdSeA_Q7tawfTvkWWTg7EfuI,7981
|
|
128
|
-
webscout/Provider/copilot.py,sha256=
|
|
127
|
+
webscout/Provider/copilot.py,sha256=6-f86nVNzJab6sFkHGTMwsu4L6yuZTgZaIYYs28ty9E,18336
|
|
129
128
|
webscout/Provider/deepseek_assistant.py,sha256=KdQ_Ldg_7jUpSIWmxgz6tXS-uOmE5rPKmJhjbeE6fUs,14557
|
|
130
129
|
webscout/Provider/elmo.py,sha256=PiiRLwkyHsPmAY8uydd_TuWe2qVXbs_wfW5u4Ytbqp8,12875
|
|
131
|
-
webscout/Provider/freeaichat.py,sha256=
|
|
130
|
+
webscout/Provider/freeaichat.py,sha256=aF8AHBKc-0DrvTSj09jWTybrrUP7ro9GkwWXrdTBmf4,11231
|
|
132
131
|
webscout/Provider/geminiapi.py,sha256=-_QbDBF_IiYyOJ0_uAIcE-gfzIs8H86nA5VWX52SRoY,8505
|
|
133
132
|
webscout/Provider/granite.py,sha256=orHpbcM0_7YWTjp90w1DhNlqkJUyTkx2dH_KPi7VknM,11251
|
|
134
133
|
webscout/Provider/hermes.py,sha256=Dw3zQQ1r850_qhNSMGwQBO6EfpTsN91yV9QZaDVHCi0,10720
|
|
@@ -140,10 +139,11 @@ webscout/Provider/llmchat.py,sha256=uCkrTjS41_PwlvT2SdlcXaQa3zS9Y6DV_nlBq9j3dco,
|
|
|
140
139
|
webscout/Provider/llmchatco.py,sha256=Fiqljgb2QN4lDLPAZefRX4_A0-Lmxzcyd1v6ydrepKE,11530
|
|
141
140
|
webscout/Provider/lmarena.py,sha256=wPwj0xv1x1cPx10DgYTsJatl5MIqjc61Q0GypfGigOA,9640
|
|
142
141
|
webscout/Provider/meta.py,sha256=uQw0yS80eXoPqVfmWvwE_pvjTVYDDiTu4xrmfKmrqI0,30741
|
|
142
|
+
webscout/Provider/monochat.py,sha256=gSkCmNmkkOOyM_cNDSA1RZZ8MdhGX0qbV9fIgqc3sHE,10337
|
|
143
143
|
webscout/Provider/multichat.py,sha256=DOt1E4e9X01UxqbDcNy2RPjvgVP3_4ZJb-EWyAn-sgg,15277
|
|
144
144
|
webscout/Provider/oivscode.py,sha256=3QR2_8nq1ceVTz_TZHCYTuAeK00orOWkpieSK6cgo3o,12713
|
|
145
145
|
webscout/Provider/samurai.py,sha256=xwl5CXgV5E_93ATMDXh6QtUKuLK7h0kuGN7JWAJLOCc,8446
|
|
146
|
-
webscout/Provider/scira_chat.py,sha256=
|
|
146
|
+
webscout/Provider/scira_chat.py,sha256=9k4TYmTR4Or5h7aWVWX4s2Tsd1KjdlyobpzmUTfkTLk,19137
|
|
147
147
|
webscout/Provider/scnet.py,sha256=FgdOFixINiP9ONoMOUmAgMq_i8wiVfb_oW20R4CTe7M,11418
|
|
148
148
|
webscout/Provider/searchchat.py,sha256=2mrI-qcc_XwypuTDywGnU8l94SKRImZMwmtT05aNEKw,12426
|
|
149
149
|
webscout/Provider/sonus.py,sha256=yDe_00pIFBlMngj7vHO3hNjbKowOTR6i-ZGsvJpz3UQ,11342
|
|
@@ -151,9 +151,9 @@ webscout/Provider/talkai.py,sha256=18EB9FPx2rOWdnuqMtBZc_QbLWKNFj06n1Xdtm6npwg,7
|
|
|
151
151
|
webscout/Provider/toolbaz.py,sha256=x3VyljJCZ0G3byohS18xBe37SJNtGftOQlcuX7OuIx8,15038
|
|
152
152
|
webscout/Provider/turboseek.py,sha256=hWVWlQiNYHCejWcc28RtsbYQa5Zm_4FOCh9thHESCuQ,11244
|
|
153
153
|
webscout/Provider/typefully.py,sha256=sxzh7zYvuKGHM4y9nN3nzz_IBFUJ37W_V_TjJarVy2Q,8797
|
|
154
|
-
webscout/Provider/typegpt.py,sha256=
|
|
154
|
+
webscout/Provider/typegpt.py,sha256=lRjgxZQIrU7dyZ45tZJDZQRrKxU3IydlfdjWwnHMock,12395
|
|
155
155
|
webscout/Provider/uncovr.py,sha256=Fjq1YTbNCDVetbkNMpphzVJOKC4DZpWs9d-Bo-jqvyA,14534
|
|
156
|
-
webscout/Provider/x0gpt.py,sha256
|
|
156
|
+
webscout/Provider/x0gpt.py,sha256=fuqA82SQ7dZ44v5MTJ62m5QcYSFKWYnl9CMhoRWY9Qc,13042
|
|
157
157
|
webscout/Provider/yep.py,sha256=WA6Z14ikRHy53XoAy9AThwryrHE1B6UDaBuvAjMU5DY,17041
|
|
158
158
|
webscout/Provider/AISEARCH/DeepFind.py,sha256=nYS9wCAj5ODkIjGaNKPRfYkJ1kQai7kL32QCnh_oOuQ,10117
|
|
159
159
|
webscout/Provider/AISEARCH/Perplexity.py,sha256=AcKqelQfjR5TULqCSA7s6U5-T3zv4HXvV13pFrdj4Dk,15138
|
|
@@ -164,7 +164,7 @@ webscout/Provider/AISEARCH/genspark_search.py,sha256=dsTaopBuuiK09uo_Dw5yQQTkB3j
|
|
|
164
164
|
webscout/Provider/AISEARCH/hika_search.py,sha256=puGSf65CCVCj9w-C1lh2wPgNFlWr9TCNVjxO4WSj3O4,6757
|
|
165
165
|
webscout/Provider/AISEARCH/iask_search.py,sha256=48f5z7hV_y_hAYH4J3Ywsj-sPG_7UHjsSbs90AUDKZA,17629
|
|
166
166
|
webscout/Provider/AISEARCH/monica_search.py,sha256=5-6XHPCXw7eNyJt5WHosqegCAN39aGZauz4AEmuCdP0,8614
|
|
167
|
-
webscout/Provider/AISEARCH/scira_search.py,sha256=
|
|
167
|
+
webscout/Provider/AISEARCH/scira_search.py,sha256=l4GYRiGudsGV85A5hQXLTRuMli0qCOAU6fppydhLmrE,11990
|
|
168
168
|
webscout/Provider/AISEARCH/stellar_search.py,sha256=N5GByrBLrXlFREJFDaARyCH6laao4XX38vrvIa1U4Jg,6588
|
|
169
169
|
webscout/Provider/AISEARCH/webpilotai_search.py,sha256=eBjfuXB_HNkTL5Z_--JyrwH8e4cJ52hcwrB-rV0_KQU,11511
|
|
170
170
|
webscout/Provider/OPENAI/BLACKBOXAI.py,sha256=36PMvkkArXeMf_oxI_bqly5cTSPwZ92BFRipsk1AiU8,48008
|
|
@@ -176,44 +176,44 @@ webscout/Provider/OPENAI/MiniMax.py,sha256=hWrKiiXm5geUqTHDwKcOfhanb2eoejeOTjdCD
|
|
|
176
176
|
webscout/Provider/OPENAI/NEMOTRON.py,sha256=ZwBgNe3b466zkJ7JYtzLvobQte-Gppk1_YOBGGk6Mc8,9731
|
|
177
177
|
webscout/Provider/OPENAI/PI.py,sha256=MHkX7wsXJIdItwOfMMGEo8OzlZXIaolopBda7b_SpfQ,15185
|
|
178
178
|
webscout/Provider/OPENAI/Qwen3.py,sha256=91wKmXhM8gXyP6pat7fspr1XW0clN91Spx_Cq8WBL7o,16073
|
|
179
|
-
webscout/Provider/OPENAI/README.md,sha256=
|
|
179
|
+
webscout/Provider/OPENAI/README.md,sha256=8_AcxtOtzwv_b9hcrkaq1koV6w211WKb9LqVwMmgaJA,25079
|
|
180
180
|
webscout/Provider/OPENAI/README_AUTOPROXY.md,sha256=EqZ8MJOg8LPdH5wzNHvvu40bUNYwqtozXaT7BL-NbEo,6244
|
|
181
181
|
webscout/Provider/OPENAI/TogetherAI.py,sha256=tvOKKaIy6PRtQq4Z_B7hrNzbcvNfdUgKsqB0cUr0ixc,13800
|
|
182
182
|
webscout/Provider/OPENAI/TwoAI.py,sha256=seRAKgp10vg5ilacJ6f5kfXytVshM1Bx4b1VJvVNk34,14590
|
|
183
|
-
webscout/Provider/OPENAI/__init__.py,sha256=
|
|
183
|
+
webscout/Provider/OPENAI/__init__.py,sha256=0Ks7WsvLF4cursbgAMHKC0a4toiK6rjo94O3MeUcn_Y,1705
|
|
184
184
|
webscout/Provider/OPENAI/ai4chat.py,sha256=I0o7ZnGzG_2-PZfDDEbTMPh5OCx-4LfqfNcUFFdZAGY,11273
|
|
185
|
-
webscout/Provider/OPENAI/autoproxy.py,sha256=
|
|
185
|
+
webscout/Provider/OPENAI/autoproxy.py,sha256=4zt7Ok-P63TY0m_2ClZ6Lg0O8fYOsIJcI0xStG8j2YY,41314
|
|
186
186
|
webscout/Provider/OPENAI/base.py,sha256=pjyz1e4Y1A9nttOZRMsihqhcP6ujGctzr7BNTXEtNd8,10507
|
|
187
187
|
webscout/Provider/OPENAI/c4ai.py,sha256=f0rzU1a5B3NJDNfOjvFoyTlDdmwuwL_3NfFr2uKqkxY,15636
|
|
188
188
|
webscout/Provider/OPENAI/chatgpt.py,sha256=z2R7GmsI-xVSrzVjnwmSXqm-SBuZAt9UE0DNvYXlPlc,20787
|
|
189
189
|
webscout/Provider/OPENAI/chatgptclone.py,sha256=XHrp4lw9AD3wr9MW2Aar9H-6Aw8l-TgmCLXM9OiH8fE,20423
|
|
190
190
|
webscout/Provider/OPENAI/chatsandbox.py,sha256=nmFQdZaj6puw28Hux57f-E8UYqNQnaMnQBOdhnd-ZQY,6999
|
|
191
|
-
webscout/Provider/OPENAI/copilot.py,sha256=
|
|
192
|
-
webscout/Provider/OPENAI/deepinfra.py,sha256=
|
|
191
|
+
webscout/Provider/OPENAI/copilot.py,sha256=MlvPROdb-sd4A6NnJbzSh7iWbJPofIQNGi9FXdPALhw,11889
|
|
192
|
+
webscout/Provider/OPENAI/deepinfra.py,sha256=mIenOtL6eUQ8RnowzsOERo39ZrFp9jknRosjttk6juY,13034
|
|
193
193
|
webscout/Provider/OPENAI/e2b.py,sha256=sgLJ5FF-thlY8SYW0pqzFfQltiQfH6QwZqELydtUPFo,71438
|
|
194
194
|
webscout/Provider/OPENAI/exaai.py,sha256=D7i2zpxQhjo_LRnO0nzAU651aOWgXM_9_AQjcRX2IY0,15066
|
|
195
|
-
webscout/Provider/OPENAI/exachat.py,sha256=
|
|
195
|
+
webscout/Provider/OPENAI/exachat.py,sha256=NjER0u8W98B2qohUrNABcxSPoQIZGRfhgjEF57hNzkg,15861
|
|
196
196
|
webscout/Provider/OPENAI/flowith.py,sha256=ieMIuIlEQeaPQX599GSY4us3nmalik02oSLIAoJKmJA,6580
|
|
197
|
-
webscout/Provider/OPENAI/freeaichat.py,sha256=4lReAFaRRWobeH_A8WNcqlaOqA-uc0kWqAa10gocasY,12229
|
|
198
197
|
webscout/Provider/OPENAI/friendli.py,sha256=vIOlpc-HBVSi-kfb956wEpBzabtU6HY-Tm5yf-THfvI,10446
|
|
199
198
|
webscout/Provider/OPENAI/glider.py,sha256=DpVOvgZZQXCuaHJPKGqrvis4EkVlXxX5s207nDz7evE,13758
|
|
200
199
|
webscout/Provider/OPENAI/groq.py,sha256=if3RBZmFwqSKtYPwlVzK_YGGGlFv4dRxw2obGs8MvRE,14564
|
|
201
200
|
webscout/Provider/OPENAI/heckai.py,sha256=br0Zj_rvOCL1w_N3SVltiVlQQQhlCwAb-WOhaFaEwh4,11709
|
|
202
201
|
webscout/Provider/OPENAI/llmchatco.py,sha256=CUcFgZuuV4njk9HEocnCGnLg7zcTB1k1awRJSHX5NFA,15371
|
|
203
202
|
webscout/Provider/OPENAI/mcpcore.py,sha256=UsIAKXiO9F3p6m5yptjslAo60NJa5AmtcaQOqzDD3EU,18939
|
|
204
|
-
webscout/Provider/OPENAI/monochat.py,sha256=
|
|
203
|
+
webscout/Provider/OPENAI/monochat.py,sha256=7ZBOavowF_ebAd61Eq6YVoNcU9JWi9TV43yTGlSEz9M,11500
|
|
205
204
|
webscout/Provider/OPENAI/multichat.py,sha256=r65SxO4GxolYCs5Phoys_1xZtIEqolyW-I539Zj_mXM,13989
|
|
206
|
-
webscout/Provider/OPENAI/netwrck.py,sha256=
|
|
205
|
+
webscout/Provider/OPENAI/netwrck.py,sha256=WpCkaw5jOQsM3HUbolMfpRYx4cfTbnNonuJZRV0mR24,13213
|
|
207
206
|
webscout/Provider/OPENAI/oivscode.py,sha256=Gjw2SETSIkIGREk5BfdEkkQL_RjnI8jFcwxLmUvlzOE,11875
|
|
208
207
|
webscout/Provider/OPENAI/opkfc.py,sha256=2YdpcNxMn2p3w9Z7mQ7g0dFJ17zzAgvnIM4UwCgynpM,21877
|
|
209
208
|
webscout/Provider/OPENAI/pydantic_imports.py,sha256=argzn_wiEY1Ymf2eU5W41V93aZOU0EPEbCtpL0X-TEQ,24
|
|
210
|
-
webscout/Provider/OPENAI/
|
|
209
|
+
webscout/Provider/OPENAI/qodo.py,sha256=ZW87jLV9SS67Jx1MYQ_KF7fMsKbMv8MX9mcuthaas4s,24893
|
|
210
|
+
webscout/Provider/OPENAI/scirachat.py,sha256=daikx4H0Y3pOfYG3daW8KUfpGtHl2dpDGMErWE2Bci4,20878
|
|
211
211
|
webscout/Provider/OPENAI/sonus.py,sha256=nRUJkK0T08Ao1WLF5ySmCpfH4x9C8wUXjezW4mygqJo,11159
|
|
212
212
|
webscout/Provider/OPENAI/standardinput.py,sha256=xBHWMRZcPwDJZaQvszaZmKwFzV3wCpwnoynSvsIqhTQ,19547
|
|
213
|
-
webscout/Provider/OPENAI/textpollinations.py,sha256=
|
|
213
|
+
webscout/Provider/OPENAI/textpollinations.py,sha256=Oxa2d0lWUnZIT-3Rt0JslNEtuUW6axfozPqAT6ID_pg,13168
|
|
214
214
|
webscout/Provider/OPENAI/toolbaz.py,sha256=nFbfZ9f-V8LvK3C-A_jKAqi1SVs70Bn9PE5f484V8JA,14266
|
|
215
215
|
webscout/Provider/OPENAI/typefully.py,sha256=yuOf1Idb6LCkK_YT4c9ABnjTuwRzSzffX-OAumSqrJQ,13004
|
|
216
|
-
webscout/Provider/OPENAI/typegpt.py,sha256=
|
|
216
|
+
webscout/Provider/OPENAI/typegpt.py,sha256=abG0DEdm9GyOMBO3yYsFSyScLFDBVZNbPgujHmq37l8,14142
|
|
217
217
|
webscout/Provider/OPENAI/uncovrAI.py,sha256=3a6h1ixmLZGglRuPVV1rhoDRgNkxTCVTuklegJ-6JY4,18333
|
|
218
218
|
webscout/Provider/OPENAI/utils.py,sha256=UB9MBoPEXl7zinIeZ3sQU1K5PTZjtzV-CBj9KiS3CYk,9374
|
|
219
219
|
webscout/Provider/OPENAI/venice.py,sha256=OLexvhEDEBe0r9mHiclwzDovU8OStQqouUUyeJrEcr0,16141
|
|
@@ -234,7 +234,7 @@ webscout/Provider/TTI/gpt1image.py,sha256=4xE5MFfjuKMc3lO3QCsEYvgidyoDhmvF7J1_sB
|
|
|
234
234
|
webscout/Provider/TTI/imagen.py,sha256=1qoyUeoqrzbQ660P5TFIJQVuZnwZQL65tCNEIXjD7CY,6684
|
|
235
235
|
webscout/Provider/TTI/infip.py,sha256=QQYBsof2pC0lqC1oAy6lex2LoRlDVg6Uu6qao0bZnsE,7294
|
|
236
236
|
webscout/Provider/TTI/magicstudio.py,sha256=9V2xK7k-7f-ohZgxJNXYZkVDTY5hSCjWQTcRK7KI86g,9286
|
|
237
|
-
webscout/Provider/TTI/monochat.py,sha256=
|
|
237
|
+
webscout/Provider/TTI/monochat.py,sha256=SieiOHd2Rp3LiYkm1H9FXpS0Bt5LbrAvXyc3fnJTyig,8623
|
|
238
238
|
webscout/Provider/TTI/piclumen.py,sha256=JM7aLa1Mdv4xuB0d1XLqS0t9yMR9C8Rgtv7979wtETc,7978
|
|
239
239
|
webscout/Provider/TTI/pixelmuse.py,sha256=k2NypIvZ1Xfe9ubL0Hkg5zkY-VLLvk4uZtPHmUFlmQg,8625
|
|
240
240
|
webscout/Provider/TTI/pollinations.py,sha256=tu1FAvAetET9KnwiXVlhsIEjfJZPghgSDdl7oFqLBso,8688
|
|
@@ -273,7 +273,7 @@ webscout/auth/providers.py,sha256=gE0zKl8gwCD2P0e16y6YnbhmBM1qut0wKwAk5jmt8LI,11
|
|
|
273
273
|
webscout/auth/rate_limiter.py,sha256=8l1CpUY5YkY8SPHvZxL2SejAkO93uNklwQeSbjRxU5A,9925
|
|
274
274
|
webscout/auth/request_models.py,sha256=hgo0AZ5CknEWCmZ4KBMs8T0xjmtlecbk645yU622Ujs,5804
|
|
275
275
|
webscout/auth/request_processing.py,sha256=1fs-sfiNAR04B5Rj4ui5EEjgPsBCXMqf73li6mQpDEU,10569
|
|
276
|
-
webscout/auth/routes.py,sha256=
|
|
276
|
+
webscout/auth/routes.py,sha256=V8TxkmiCccEEzIq2okfIXxGtWbmzi-4YXPPhheO7M8U,26412
|
|
277
277
|
webscout/auth/schemas.py,sha256=fu3-V9F0n5AZ65A-fGGiBiuQcwk1Ec3urO7N30Nv90o,4577
|
|
278
278
|
webscout/auth/server.py,sha256=1IxZKoMd2uBtEj1XyTmIGRNPgI_mil0z_JsTQFEcU4M,13653
|
|
279
279
|
webscout/litagent/Readme.md,sha256=WoKNgY1np4xmrfbl6mx1iDitAEyfWySVL97VnfN2QbE,7563
|
|
@@ -318,9 +318,9 @@ webscout/zeroart/__init__.py,sha256=3reMOf41PFtYVhq2wjFpJbIIHWRcy63efeUpolWm1P0,
|
|
|
318
318
|
webscout/zeroart/base.py,sha256=nkf3WAE3YxKIpOFJ4Xf01T7dyWlbi98F1mIYo6vDux8,2365
|
|
319
319
|
webscout/zeroart/effects.py,sha256=DOMPCNk-IwhnUrXsYSx5oSWeYQ6KN7T_jZOYdEofyMg,3345
|
|
320
320
|
webscout/zeroart/fonts.py,sha256=ZiyQqA0BFN2IH5Ldijqe93rTiROmqPgxpeDtUNmmeRw,38812
|
|
321
|
-
webscout-8.3.
|
|
322
|
-
webscout-8.3.
|
|
323
|
-
webscout-8.3.
|
|
324
|
-
webscout-8.3.
|
|
325
|
-
webscout-8.3.
|
|
326
|
-
webscout-8.3.
|
|
321
|
+
webscout-8.3.4.dist-info/licenses/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
|
|
322
|
+
webscout-8.3.4.dist-info/METADATA,sha256=LhDiWdunouQxUx2KKQ9zSlNtZKxao7MySKeinIFms5U,36449
|
|
323
|
+
webscout-8.3.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
324
|
+
webscout-8.3.4.dist-info/entry_points.txt,sha256=WooZuMBei-kQl5qByoRMkc2cHsaDL1Jd2_tSYsNiUGg,116
|
|
325
|
+
webscout-8.3.4.dist-info/top_level.txt,sha256=nYIw7OKBQDr_Z33IzZUKidRD3zQEo8jOJYkMVMeN334,9
|
|
326
|
+
webscout-8.3.4.dist-info/RECORD,,
|
webscout/Provider/AI21.py
DELETED
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import requests
|
|
2
|
-
import json
|
|
3
|
-
from typing import Union, Dict, Any
|
|
4
|
-
|
|
5
|
-
from webscout.AIutel import Optimizers
|
|
6
|
-
from webscout.AIutel import Conversation
|
|
7
|
-
from webscout.AIutel import AwesomePrompts
|
|
8
|
-
from webscout.AIbase import Provider
|
|
9
|
-
from webscout import exceptions
|
|
10
|
-
|
|
11
|
-
class AI21(Provider):
|
|
12
|
-
"""
|
|
13
|
-
A class to interact with the AI21 Studio API.
|
|
14
|
-
"""
|
|
15
|
-
|
|
16
|
-
def __init__(
|
|
17
|
-
self,
|
|
18
|
-
api_key: str,
|
|
19
|
-
model: str = "jamba-1.5-large",
|
|
20
|
-
max_tokens: int = 1024,
|
|
21
|
-
temperature: float = 0.4,
|
|
22
|
-
top_p: float = 1,
|
|
23
|
-
is_conversation: bool = True,
|
|
24
|
-
timeout: int = 30,
|
|
25
|
-
intro: str = None,
|
|
26
|
-
filepath: str = None,
|
|
27
|
-
update_file: bool = True,
|
|
28
|
-
proxies: dict = {},
|
|
29
|
-
history_offset: int = 10250,
|
|
30
|
-
act: str = None,
|
|
31
|
-
system_prompt: str = "You are a helpful and informative AI assistant."
|
|
32
|
-
):
|
|
33
|
-
"""
|
|
34
|
-
Initializes the AI21 Studio API with given parameters.
|
|
35
|
-
"""
|
|
36
|
-
self.api_key = api_key
|
|
37
|
-
self.api_endpoint = "https://api.ai21.com/studio/v1/chat/completions"
|
|
38
|
-
self.model = model
|
|
39
|
-
self.max_tokens = max_tokens
|
|
40
|
-
self.temperature = temperature
|
|
41
|
-
self.top_p = top_p
|
|
42
|
-
self.system_prompt = system_prompt
|
|
43
|
-
self.session = requests.Session()
|
|
44
|
-
self.is_conversation = is_conversation
|
|
45
|
-
self.max_tokens_to_sample = max_tokens
|
|
46
|
-
self.timeout = timeout
|
|
47
|
-
self.last_response = {}
|
|
48
|
-
self.headers = {
|
|
49
|
-
'Accept': 'application/json, text/plain, */*',
|
|
50
|
-
'Accept-Encoding': 'gzip, deflate, br, zstd',
|
|
51
|
-
'Accept-Language': 'en-US,en;q=0.9,en-IN;q=0.8',
|
|
52
|
-
'Authorization': f"Bearer {self.api_key}",
|
|
53
|
-
'Content-Type': 'application/json',
|
|
54
|
-
'DNT': '1',
|
|
55
|
-
'Origin': 'https://studio.ai21.com',
|
|
56
|
-
'Referer': 'https://studio.ai21.com/',
|
|
57
|
-
'Sec-CH-UA': '"Chromium";v="128", "Not;A=Brand";v="24", "Microsoft Edge";v="128"',
|
|
58
|
-
'Sec-CH-UA-Mobile': '?0',
|
|
59
|
-
'Sec-CH-UA-Platform': '"Windows"',
|
|
60
|
-
'Sec-Fetch-Dest': 'empty',
|
|
61
|
-
'Sec-Fetch-Mode': 'cors',
|
|
62
|
-
'Sec-Fetch-Site': 'same-site',
|
|
63
|
-
'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',
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
self.__available_optimizers = (
|
|
67
|
-
method
|
|
68
|
-
for method in dir(Optimizers)
|
|
69
|
-
if callable(getattr(Optimizers, method)) and not method.startswith("__")
|
|
70
|
-
)
|
|
71
|
-
self.session.headers.update(self.headers)
|
|
72
|
-
Conversation.intro = (
|
|
73
|
-
AwesomePrompts().get_act(
|
|
74
|
-
act, raise_not_found=True, default=None, case_insensitive=True
|
|
75
|
-
)
|
|
76
|
-
if act
|
|
77
|
-
else intro or Conversation.intro
|
|
78
|
-
)
|
|
79
|
-
self.conversation = Conversation(
|
|
80
|
-
is_conversation, self.max_tokens_to_sample, filepath, update_file
|
|
81
|
-
)
|
|
82
|
-
self.conversation.history_offset = history_offset
|
|
83
|
-
self.session.proxies = proxies
|
|
84
|
-
|
|
85
|
-
def ask(
|
|
86
|
-
self,
|
|
87
|
-
prompt: str,
|
|
88
|
-
stream: bool = False,
|
|
89
|
-
raw: bool = False,
|
|
90
|
-
optimizer: str = None,
|
|
91
|
-
conversationally: bool = False,
|
|
92
|
-
) -> Dict[str, Any]:
|
|
93
|
-
"""
|
|
94
|
-
Sends a prompt to the AI21 Studio API and returns the response.
|
|
95
|
-
"""
|
|
96
|
-
conversation_prompt = self.conversation.gen_complete_prompt(prompt)
|
|
97
|
-
if optimizer:
|
|
98
|
-
if optimizer in self.__available_optimizers:
|
|
99
|
-
conversation_prompt = getattr(Optimizers, optimizer)(
|
|
100
|
-
conversation_prompt if conversationally else prompt
|
|
101
|
-
)
|
|
102
|
-
else:
|
|
103
|
-
raise Exception(
|
|
104
|
-
f"Optimizer is not one of {self.__available_optimizers}"
|
|
105
|
-
)
|
|
106
|
-
|
|
107
|
-
payload = {
|
|
108
|
-
"messages": [
|
|
109
|
-
{"role": "system", "content": self.system_prompt},
|
|
110
|
-
{"role": "user", "content": conversation_prompt}
|
|
111
|
-
],
|
|
112
|
-
"n": 1,
|
|
113
|
-
"max_tokens": self.max_tokens,
|
|
114
|
-
"model": self.model,
|
|
115
|
-
"stop": [],
|
|
116
|
-
"temperature": self.temperature,
|
|
117
|
-
"top_p": self.top_p,
|
|
118
|
-
"documents": [],
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
response = self.session.post(self.api_endpoint, headers=self.headers, json=payload, timeout=self.timeout)
|
|
122
|
-
|
|
123
|
-
if not response.ok:
|
|
124
|
-
raise exceptions.FailedToGenerateResponseError(
|
|
125
|
-
f"Failed to generate response - ({response.status_code}, {response.reason}) - {response.text}"
|
|
126
|
-
)
|
|
127
|
-
|
|
128
|
-
resp = response.json()
|
|
129
|
-
self.last_response.update(resp)
|
|
130
|
-
self.conversation.update_chat_history(
|
|
131
|
-
prompt, self.get_message(self.last_response)
|
|
132
|
-
)
|
|
133
|
-
return self.last_response
|
|
134
|
-
|
|
135
|
-
def chat(
|
|
136
|
-
self,
|
|
137
|
-
prompt: str,
|
|
138
|
-
stream: bool = False,
|
|
139
|
-
optimizer: str = None,
|
|
140
|
-
conversationally: bool = False,
|
|
141
|
-
) -> str:
|
|
142
|
-
"""
|
|
143
|
-
Generates a response from the AI21 API.
|
|
144
|
-
"""
|
|
145
|
-
|
|
146
|
-
def for_stream():
|
|
147
|
-
for response in self.ask(
|
|
148
|
-
prompt, True, optimizer=optimizer, conversationally=conversationally
|
|
149
|
-
):
|
|
150
|
-
yield self.get_message(response)
|
|
151
|
-
|
|
152
|
-
def for_non_stream():
|
|
153
|
-
return self.get_message(
|
|
154
|
-
self.ask(
|
|
155
|
-
prompt,
|
|
156
|
-
False,
|
|
157
|
-
optimizer=optimizer,
|
|
158
|
-
conversationally=conversationally,
|
|
159
|
-
)
|
|
160
|
-
)
|
|
161
|
-
|
|
162
|
-
return for_stream() if stream else for_non_stream()
|
|
163
|
-
|
|
164
|
-
def get_message(self, response: dict) -> str:
|
|
165
|
-
"""
|
|
166
|
-
Extracts the message from the API response.
|
|
167
|
-
"""
|
|
168
|
-
assert isinstance(response, dict), "Response should be of dict data-type only"
|
|
169
|
-
return response['choices'][0]['message']['content']
|
|
170
|
-
|
|
171
|
-
# Example usage
|
|
172
|
-
if __name__ == "__main__":
|
|
173
|
-
from rich import print
|
|
174
|
-
ai = AI21(api_key="api_key")
|
|
175
|
-
response = ai.chat(input(">>> "))
|
|
176
|
-
for line in response:
|
|
177
|
-
print(line, end="", flush=True)
|