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.

Files changed (46) hide show
  1. webscout/AIutel.py +221 -4
  2. webscout/Bard.py +2 -22
  3. webscout/Provider/AISEARCH/scira_search.py +24 -11
  4. webscout/Provider/Deepinfra.py +75 -57
  5. webscout/Provider/ExaChat.py +9 -5
  6. webscout/Provider/Flowith.py +1 -1
  7. webscout/Provider/FreeGemini.py +2 -2
  8. webscout/Provider/Gemini.py +3 -10
  9. webscout/Provider/GeminiProxy.py +31 -5
  10. webscout/Provider/LambdaChat.py +39 -31
  11. webscout/Provider/Netwrck.py +5 -8
  12. webscout/Provider/OLLAMA.py +8 -9
  13. webscout/Provider/OPENAI/README.md +1 -1
  14. webscout/Provider/OPENAI/__init__.py +1 -1
  15. webscout/Provider/OPENAI/autoproxy.py +1 -1
  16. webscout/Provider/OPENAI/copilot.py +73 -26
  17. webscout/Provider/OPENAI/deepinfra.py +54 -24
  18. webscout/Provider/OPENAI/exachat.py +9 -5
  19. webscout/Provider/OPENAI/monochat.py +3 -3
  20. webscout/Provider/OPENAI/netwrck.py +4 -7
  21. webscout/Provider/OPENAI/qodo.py +630 -0
  22. webscout/Provider/OPENAI/scirachat.py +82 -49
  23. webscout/Provider/OPENAI/textpollinations.py +13 -12
  24. webscout/Provider/OPENAI/typegpt.py +3 -3
  25. webscout/Provider/Qodo.py +454 -0
  26. webscout/Provider/TTI/monochat.py +3 -3
  27. webscout/Provider/TextPollinationsAI.py +13 -12
  28. webscout/Provider/__init__.py +4 -4
  29. webscout/Provider/copilot.py +58 -61
  30. webscout/Provider/freeaichat.py +64 -55
  31. webscout/Provider/monochat.py +275 -0
  32. webscout/Provider/scira_chat.py +111 -21
  33. webscout/Provider/typegpt.py +2 -2
  34. webscout/Provider/x0gpt.py +325 -315
  35. webscout/__init__.py +7 -2
  36. webscout/auth/routes.py +20 -3
  37. webscout/version.py +1 -1
  38. {webscout-8.3.3.dist-info → webscout-8.3.4.dist-info}/METADATA +1 -2
  39. {webscout-8.3.3.dist-info → webscout-8.3.4.dist-info}/RECORD +43 -43
  40. webscout/Provider/AI21.py +0 -177
  41. webscout/Provider/HuggingFaceChat.py +0 -469
  42. webscout/Provider/OPENAI/freeaichat.py +0 -363
  43. {webscout-8.3.3.dist-info → webscout-8.3.4.dist-info}/WHEEL +0 -0
  44. {webscout-8.3.3.dist-info → webscout-8.3.4.dist-info}/entry_points.txt +0 -0
  45. {webscout-8.3.3.dist-info → webscout-8.3.4.dist-info}/licenses/LICENSE.md +0 -0
  46. {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
- # # Import litprinter components for direct access from webscout
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 errorslently handle any update check errors
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 DuckDuckGo with text, news, images, and suggestions search types."
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.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
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=lHubbAm9JxNDFd6NTeDPdV6bwgi491f_Cq_KMYKzBWM,35723
4
- webscout/Bard.py,sha256=VTvnSapEleBnw-O6CM_-4PiijhsLFx_B7gauknV58p4,45280
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=AVG0wCun0afiuNnWoF8BJ46nCpT3ax2ecOjVqcUAxJk,1142
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=tXuUoGx31cy5oli5VRLPRDr09_trXLM-IC9Gj3YbiF0,46
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=lCjsAMxhoq-FbJ-8ztZCU0HbL1jT9PHqQy29joK1jcU,15057
78
+ webscout/Provider/Deepinfra.py,sha256=nVd0OGm17RiVxZbR0RLx-464HXUFGRqUJzeim7DtOFk,15795
80
79
  webscout/Provider/ExaAI.py,sha256=plbjF5LYyZS4elLWKtD6AURDQS3O9xAGBScpDGPHWiY,9783
81
- webscout/Provider/ExaChat.py,sha256=dz5c101OuwT--oeitwcVQiqRB7XHZg91TN1Xq8AAoGg,14484
82
- webscout/Provider/Flowith.py,sha256=w5rpUmRkoAL-WqrKMyRrsTTDmsPN2Cc5zyRBy7_48mY,8605
83
- webscout/Provider/FreeGemini.py,sha256=lpsTlkzk7kcTfTODFKZFayQox9DmOM4Az7zTMV5bla0,11004
84
- webscout/Provider/Gemini.py,sha256=sM25PD6AxOFmiIab3ASbnrb-mbVHYJJ9Dc6bo1L4PJo,6806
85
- webscout/Provider/GeminiProxy.py,sha256=7Lo9ffAqoHcSrMnBcnICuQmY0YOi_1F8oamPVfxPm1I,5589
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=jtlvMBQ2BSA2Cgcf2p3e7TZhOwWyH7wVo9q-WA9Fyco,18881
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=Mdv0_GcT-BgfAZj-0L_oA6e5eUsEK7rrblwWb292Xuc,10726
102
- webscout/Provider/OLLAMA.py,sha256=k8EbK_EqH02xiTtqubViKsHebyJFLUwug5zeP1HkDa4,15155
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=9jdX89ixla8NU828FWrOwyOirqJqZP3XkQT9V9OgWpw,13279
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=yvR6zuVRtWu6B3R5WlFSKeDAuhy2ZW9Y3S8JVnW8A2w,4041
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=MhDpo1ZHs-Uf-CEIYDB6J3t2rPeI9pP6QDCGffsBoIg,18844
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=yKTGYYrv_v3xoOcsXc83F0qTBv5rjFKPuZQLX-vRhIQ,9963
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=i6DuGFEhOGUCvMLj9ErI7Taq4DxkKvZYm-HQtSxIYBU,15102
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=jeuxZlY8K6JXTum16l5rT10IzZCyTVF2jW9UekIWA24,12391
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=-6E1N3wI9cB_AqWmeHwOGqyJRbrdVggWf41c5jDDznw,12458
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=OoozAGcyB4--XkohCltgdgBK1aNw4lEVTWQJI3D_0Z4,11371
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=eqiEm3vL4kMOk1hi0ba5V1rIqW0SveXW1co_Uqthpxo,25083
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=JOqDyCP1j0Fvd6rGkR8m0pPzX78HnN_x6olft166s90,1688
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=UYWkCKj9dRXZvsn4Zqeux2-OdrQIw9R7kQeCExYgElU,41314
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=6I6BsRTRfYehZxraTf5r0flWUl3-QBwLMVFuc6XWe-Y,9395
192
- webscout/Provider/OPENAI/deepinfra.py,sha256=mcyKcpbtVheuiDmrfXKcQENc3kP-qFhSY-MMUsRuvF4,11605
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=z95aqrunxVNlF_y_REGz_hhxirQP18DrBrGYlabiMlA,15632
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=ugoYn6Wwl_xbDEj8k0n_r0cYQXS18gh5pxUBL2b176E,11509
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=vWeh8T3VdC4EdD6Rd-9PrdPOFQnl4RRqlBuXlSenvfE,13287
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/scirachat.py,sha256=T9C04sjdqV3wgjcqufuhxXoIicMG2bOu00FJ88Uvvt0,19173
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=6KHxk41zvqPqhDNPSASHO-_QzpKPCM6KL4tpchgW3yw,13134
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=AQwXHMGF8NNoVR1MpOfZN-y1xXndaoJCRFfAxJdg2Mg,14136
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=1brykP1FyOEJOxbVM-Dpi4VKvo25eSlNYIssRQ-RES8,8632
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=MYZJ2FfMhhbOk1ISyRnQ9CJsB7XFLPnzQFS3J7odHjs,25083
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.3.dist-info/licenses/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
322
- webscout-8.3.3.dist-info/METADATA,sha256=HpTrBBmocXBaHVrH-OoWWaLTGMPUHIQA4OTs-Xd0uTQ,36472
323
- webscout-8.3.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
324
- webscout-8.3.3.dist-info/entry_points.txt,sha256=WooZuMBei-kQl5qByoRMkc2cHsaDL1Jd2_tSYsNiUGg,116
325
- webscout-8.3.3.dist-info/top_level.txt,sha256=nYIw7OKBQDr_Z33IzZUKidRD3zQEo8jOJYkMVMeN334,9
326
- webscout-8.3.3.dist-info/RECORD,,
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)