webscout 8.3.5__py3-none-any.whl → 8.3.6__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/Bard.py +12 -6
- webscout/DWEBS.py +66 -57
- webscout/Provider/{UNFINISHED → AISEARCH}/PERPLEXED_search.py +34 -74
- webscout/Provider/AISEARCH/__init__.py +1 -1
- webscout/Provider/Deepinfra.py +6 -0
- webscout/Provider/Flowith.py +6 -1
- webscout/Provider/GithubChat.py +1 -0
- webscout/Provider/GptOss.py +207 -0
- webscout/Provider/Kimi.py +445 -0
- webscout/Provider/Netwrck.py +3 -6
- webscout/Provider/OPENAI/README.md +2 -1
- webscout/Provider/OPENAI/TogetherAI.py +50 -55
- webscout/Provider/OPENAI/__init__.py +4 -2
- webscout/Provider/OPENAI/copilot.py +20 -4
- webscout/Provider/OPENAI/deepinfra.py +6 -0
- webscout/Provider/OPENAI/e2b.py +60 -8
- webscout/Provider/OPENAI/flowith.py +4 -3
- webscout/Provider/OPENAI/generate_api_key.py +48 -0
- webscout/Provider/OPENAI/gptoss.py +288 -0
- webscout/Provider/OPENAI/kimi.py +469 -0
- webscout/Provider/OPENAI/netwrck.py +8 -12
- webscout/Provider/OPENAI/refact.py +274 -0
- webscout/Provider/OPENAI/textpollinations.py +3 -6
- webscout/Provider/OPENAI/toolbaz.py +1 -0
- webscout/Provider/TTI/bing.py +14 -2
- webscout/Provider/TTI/together.py +10 -9
- webscout/Provider/TTS/README.md +0 -1
- webscout/Provider/TTS/__init__.py +0 -1
- webscout/Provider/TTS/base.py +479 -159
- webscout/Provider/TTS/deepgram.py +409 -156
- webscout/Provider/TTS/elevenlabs.py +425 -111
- webscout/Provider/TTS/freetts.py +317 -140
- webscout/Provider/TTS/gesserit.py +192 -128
- webscout/Provider/TTS/murfai.py +248 -113
- webscout/Provider/TTS/openai_fm.py +347 -129
- webscout/Provider/TTS/speechma.py +620 -586
- webscout/Provider/TextPollinationsAI.py +3 -6
- webscout/Provider/TogetherAI.py +50 -55
- webscout/Provider/UNFINISHED/VercelAIGateway.py +339 -0
- webscout/Provider/__init__.py +2 -90
- webscout/Provider/cerebras.py +83 -33
- webscout/Provider/copilot.py +42 -23
- webscout/Provider/toolbaz.py +1 -0
- webscout/conversation.py +22 -20
- webscout/sanitize.py +14 -10
- webscout/scout/README.md +20 -23
- webscout/scout/core/crawler.py +125 -38
- webscout/scout/core/scout.py +26 -5
- webscout/version.py +1 -1
- webscout/webscout_search.py +13 -6
- webscout/webscout_search_async.py +10 -8
- webscout/yep_search.py +13 -5
- {webscout-8.3.5.dist-info → webscout-8.3.6.dist-info}/METADATA +2 -1
- {webscout-8.3.5.dist-info → webscout-8.3.6.dist-info}/RECORD +59 -56
- webscout/Provider/Glider.py +0 -225
- webscout/Provider/OPENAI/c4ai.py +0 -394
- webscout/Provider/OPENAI/glider.py +0 -330
- webscout/Provider/TTS/sthir.py +0 -94
- /webscout/Provider/{samurai.py → UNFINISHED/samurai.py} +0 -0
- {webscout-8.3.5.dist-info → webscout-8.3.6.dist-info}/WHEEL +0 -0
- {webscout-8.3.5.dist-info → webscout-8.3.6.dist-info}/entry_points.txt +0 -0
- {webscout-8.3.5.dist-info → webscout-8.3.6.dist-info}/licenses/LICENSE.md +0 -0
- {webscout-8.3.5.dist-info → webscout-8.3.6.dist-info}/top_level.txt +0 -0
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
webscout/AIauto.py,sha256=zRQcmNzQCCPOD6ancQlRlSRqEM24rtb-Xlpqg6bt5Pg,10557
|
|
2
2
|
webscout/AIbase.py,sha256=MbtLlwMNrRu1nKJkj-4ZYUL8YVzDzLdboIAA_7yextM,14529
|
|
3
3
|
webscout/AIutel.py,sha256=V1PLD7_ViuDu_-5OLIClQ79X87TaSH6pxEMRidQ3j_w,2080
|
|
4
|
-
webscout/Bard.py,sha256=
|
|
4
|
+
webscout/Bard.py,sha256=XUpfvr4yoP8h18fwLWckWZHu1WIDHKp_mMMApm1F6Bc,44797
|
|
5
5
|
webscout/Bing_search.py,sha256=eFeqR6aOF_Drdie5GdYGMfxsrjcfOBB62o20Avd04GA,16347
|
|
6
|
-
webscout/DWEBS.py,sha256=
|
|
6
|
+
webscout/DWEBS.py,sha256=xYCOiRT2JYSaM7w7tpBoIXFNzvAQaNmhjdQtSosOrqM,18417
|
|
7
7
|
webscout/__init__.py,sha256=Q6UQdRUgCk1akzgxemgPiP5d5GnMs5LMrZ0WGcUF7jk,859
|
|
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
|
|
11
|
-
webscout/conversation.py,sha256=
|
|
11
|
+
webscout/conversation.py,sha256=43ezphXT9d3-wQQpmJStr3GeAYSkF2vmhTf1WI7jFyI,17089
|
|
12
12
|
webscout/exceptions.py,sha256=cj0BDCZhB46g_vJ0r2PH0U_T35dqZro-rWu6tvtIZ3c,12833
|
|
13
13
|
webscout/models.py,sha256=C7QY-KDkqFCI698t9pvTHQ27rYadPIvwaYHJ3-AOCJI,6566
|
|
14
14
|
webscout/optimizers.py,sha256=lwIV6c7fKW4rFbZZdhBi7RTJig8KtmziA4979_GByCk,10373
|
|
15
15
|
webscout/prompt_manager.py,sha256=j4MLYx3SpeeTxzsbgUGAHWLtJ1HAF6eaWOzJCAiGND4,10090
|
|
16
|
-
webscout/sanitize.py,sha256=
|
|
16
|
+
webscout/sanitize.py,sha256=F9sK_L6ocy9pnC7u_vPF-4Z62aj2NdwxllABqkAaQ1o,47655
|
|
17
17
|
webscout/tempid.py,sha256=lqTTOjVSwDMmC0UoThdyshFyIAxTikVaN613-6K3g_s,4968
|
|
18
18
|
webscout/update_checker.py,sha256=vZKTk4HkDED8x5cujKK0Bjq3UjncyESWM7nNm4LR1fg,3825
|
|
19
19
|
webscout/utils.py,sha256=o2hU3qaVPk25sog3e4cyVZO3l8xwaZpYRziZPotEzNo,3075
|
|
20
|
-
webscout/version.py,sha256=
|
|
21
|
-
webscout/webscout_search.py,sha256=
|
|
22
|
-
webscout/webscout_search_async.py,sha256=
|
|
23
|
-
webscout/yep_search.py,sha256=
|
|
20
|
+
webscout/version.py,sha256=2BXyDafkQ3alAN9RkXFV4Jg7Ab_k9ZlLP7mYdpBm_9o,46
|
|
21
|
+
webscout/webscout_search.py,sha256=YehVHCOBsK4BOewJOzshFciBVbSZZfn5BagvvURe5C8,48022
|
|
22
|
+
webscout/webscout_search_async.py,sha256=cNXO3nVs69ztnmV2af04ckN0gN3rjYdNNyjEZqhtX7s,27255
|
|
23
|
+
webscout/yep_search.py,sha256=l7zr8ZMrEkm79aAZxz7hCAbV5AYoB9-YfmKMpZTpoeg,11972
|
|
24
24
|
webscout/Extra/Act.md,sha256=Mn1AsEOJnVzeNU727o92qwDlGkxfDk9f4ugkI2T2cW4,19261
|
|
25
25
|
webscout/Extra/__init__.py,sha256=KvJRsRBRO-fZp2jSCl6KQnPppi93hriA6O_U1O1s31c,177
|
|
26
26
|
webscout/Extra/gguf.md,sha256=Q6Cc8FPq_vlywTGiHTw7xkkwlPZdDYrVUy1lpKGyUYk,12864
|
|
@@ -76,20 +76,21 @@ webscout/Provider/ChatGPTClone.py,sha256=3nr_ijQIFyQBbQlGsnjsMMiBgf03WB6KKT5CXrX
|
|
|
76
76
|
webscout/Provider/ChatSandbox.py,sha256=P9fiF-Pmx_0XHV1eo4sBV_H9FybTTcoYifkf-6H61WI,13438
|
|
77
77
|
webscout/Provider/Cloudflare.py,sha256=tcjXK50ghqxmLP0VC8kUQkslgVn9JDB7adxlJHNHIrM,14454
|
|
78
78
|
webscout/Provider/Cohere.py,sha256=oL9kAv--RSkEQxwkPTq1Wi57Wkgg0WNvL82CpTj22YY,8264
|
|
79
|
-
webscout/Provider/Deepinfra.py,sha256=
|
|
79
|
+
webscout/Provider/Deepinfra.py,sha256=pR_JA1eFj-9UcoUDtox_2PZjkCQLAgUaAqVJeTA5B5g,16116
|
|
80
80
|
webscout/Provider/ExaAI.py,sha256=plbjF5LYyZS4elLWKtD6AURDQS3O9xAGBScpDGPHWiY,9783
|
|
81
81
|
webscout/Provider/ExaChat.py,sha256=zs3PZWlJfrkDWaEhi3mhvAldLU7mQ9TYhquaSPA1WpE,14618
|
|
82
|
-
webscout/Provider/Flowith.py,sha256=
|
|
82
|
+
webscout/Provider/Flowith.py,sha256=hLRcWG1I_Sky3p7ThbXMZMwJ3zf_5YBNIqy1DBbfmio,8731
|
|
83
83
|
webscout/Provider/FreeGemini.py,sha256=RIqr6Z--1hH2z68QtXyWXrNGp_EvhWbmZhmzjrnb8QU,10998
|
|
84
84
|
webscout/Provider/Gemini.py,sha256=-Q2JreMF1jLBXKs5TsFzVhQvYtD-ZzJd-Ba-nIiy9Js,6479
|
|
85
85
|
webscout/Provider/GeminiProxy.py,sha256=mEm-RJETfuaN8gXlv6HsnjrkrT9C4FHm1UiRc5ez6I8,6655
|
|
86
|
-
webscout/Provider/GithubChat.py,sha256=
|
|
86
|
+
webscout/Provider/GithubChat.py,sha256=4szCIeXwIt2OYevMi09gQLAOFFeqF5UMr3ivLv8xuGc,14680
|
|
87
87
|
webscout/Provider/GizAI.py,sha256=o8liIlSPz0MDTqLLGwtLiX3iSAsEuJfX1Cl8UNGOpfQ,10865
|
|
88
|
-
webscout/Provider/
|
|
88
|
+
webscout/Provider/GptOss.py,sha256=ndc2S-n_Z7AlGAlXRLnQfNu-CApu8ywDwIE8CYHhhCk,8084
|
|
89
89
|
webscout/Provider/Groq.py,sha256=V6nDhue-AEOJLc1-BP6ZOwsUxpjXP1SqBLTG07dhwWc,36880
|
|
90
90
|
webscout/Provider/HeckAI.py,sha256=19LH3UMpLUKWHgzPZHSDLnDaQ0Nv_Q_qTQa4_mObgYQ,16567
|
|
91
91
|
webscout/Provider/Hunyuan.py,sha256=FjFcqVhexIpEuljUsGJN4t12bMQvGmzrmc4D1kBLdNk,12332
|
|
92
92
|
webscout/Provider/Jadve.py,sha256=5TwX4cxB5X4JAuEw_9BjjvNtiGeaISkqX4s9mMTRSC4,12972
|
|
93
|
+
webscout/Provider/Kimi.py,sha256=IL_1UJy3neRzOeyDLyr51xzZPx3wnMwfvu7DEKlf5sk,16498
|
|
93
94
|
webscout/Provider/Koboldai.py,sha256=K_bAuRMYRkHzN1Qjh0hP6N3oWN_2KoqHpucROmoyLUY,15363
|
|
94
95
|
webscout/Provider/LambdaChat.py,sha256=f4vTydMOPTEcXDRBn_-LwrSSpNmign7e6JW5YOvlbW8,19411
|
|
95
96
|
webscout/Provider/Llama3.py,sha256=9f-7ha23OdvUthKUqLwBpSBBZzWPmadJPESyDOUKbC0,10770
|
|
@@ -97,7 +98,7 @@ webscout/Provider/MCPCore.py,sha256=EFykzoDvifeLAiW6HJ-dtjPnaBB8EvxTGhPHi_uix8E,
|
|
|
97
98
|
webscout/Provider/Marcus.py,sha256=JDjjpmimsWCgrRqZFPGxuHIZ5M98d2ijFzMie86CZvs,8352
|
|
98
99
|
webscout/Provider/MiniMax.py,sha256=OLZBUY9tuopLlTxX1XhoI5yhBnM2zKD8VHDBlygKzq4,9303
|
|
99
100
|
webscout/Provider/Nemotron.py,sha256=xA8tQlckUMa5LXSlEeLnf9vbC9x3nCHxh9hChBFb7_Q,9097
|
|
100
|
-
webscout/Provider/Netwrck.py,sha256=
|
|
101
|
+
webscout/Provider/Netwrck.py,sha256=MVErRsFhdzhFXm0--_Lh43Xk2TFom5pl6Ec0yTapohk,10497
|
|
101
102
|
webscout/Provider/OLLAMA.py,sha256=tvXBGY1YATJpAaDkgiD_jsdn06OYoGY-a3rGTQp5jvI,15061
|
|
102
103
|
webscout/Provider/OpenGPT.py,sha256=uyQx2l4U-NhBEB3IHXR1-pMnsRRVyfedjZ7lo6oXWAo,9594
|
|
103
104
|
webscout/Provider/Openai.py,sha256=TC4BkezoLqimaqOwzX-nYC9w7hXbDCajm-bzkdyl-gA,20433
|
|
@@ -108,8 +109,8 @@ webscout/Provider/QwenLM.py,sha256=lxnSF38wrupb1e7XhN8f0py8v6efwOndFh2SwvIy7Sc,1
|
|
|
108
109
|
webscout/Provider/Reka.py,sha256=dWw4vX91nJhAn-X1SXK72gttRaTqWNGUBFaeRJobTJg,8519
|
|
109
110
|
webscout/Provider/StandardInput.py,sha256=hBNHn6EqjrJ5LG0W4hTsFcJYRpNCt1WpRJaK6IQK0uw,15084
|
|
110
111
|
webscout/Provider/TeachAnything.py,sha256=Wy1fFxi_K4G8oFvcBlmDHJBhP1OMihpnBJKt6IA0c38,10416
|
|
111
|
-
webscout/Provider/TextPollinationsAI.py,sha256=
|
|
112
|
-
webscout/Provider/TogetherAI.py,sha256=
|
|
112
|
+
webscout/Provider/TextPollinationsAI.py,sha256=y8z5YIwQ-MifhTg1jhGmRsnxTTuPjfPlzkiC1HTej7c,13358
|
|
113
|
+
webscout/Provider/TogetherAI.py,sha256=e1N_njRElLdTsHdrDuOrUZK10JjVpS6nnZjT1Fl6lS8,14872
|
|
113
114
|
webscout/Provider/TwoAI.py,sha256=4b2Ls-6wQkG-Uw_2IkQyIGGrg7Tqn91BIJdDiXxArBM,23391
|
|
114
115
|
webscout/Provider/TypliAI.py,sha256=u2LanU0hJQ4Osgt_d6sI_tNVlDpP9Lwwyc5MdTh_Jmc,12152
|
|
115
116
|
webscout/Provider/Venice.py,sha256=0L90tvXWDGqLTXvrY8hqmWVaQw05BI5CNNkAWy3QxD4,10258
|
|
@@ -117,14 +118,14 @@ webscout/Provider/VercelAI.py,sha256=MFmx-hMcu6-Xbx3-1ZRtyGSA0VF8I8wGqwQIX9i8AQ0
|
|
|
117
118
|
webscout/Provider/WiseCat.py,sha256=tqKngidIhG0WBGpbdYlKbLyn2we7A9mivZhmM5qu3fI,9217
|
|
118
119
|
webscout/Provider/WrDoChat.py,sha256=wHq46_0kn1i4rDN4Y72Uctb-jXXpXT20Z43-MPtfFLs,14100
|
|
119
120
|
webscout/Provider/XenAI.py,sha256=GZL9J_1yGc3ft2Uo3eq7jS2cZy0ytIPgQ6eNyEN1MAM,13514
|
|
120
|
-
webscout/Provider/__init__.py,sha256=
|
|
121
|
+
webscout/Provider/__init__.py,sha256=yciYEdyyS3zE_BcnSWmmCMFoYFtoVpjXMIuTp6rWvks,2407
|
|
121
122
|
webscout/Provider/ai4chat.py,sha256=4PvQxPAWlaDgSyo5Dg1W6BVIUDTHq0rFK0H7rcBiCOI,6845
|
|
122
123
|
webscout/Provider/akashgpt.py,sha256=iJke-aCmTT_8RmrJbSAZayhtIimum1h680diJwBxdOI,13045
|
|
123
124
|
webscout/Provider/asksteve.py,sha256=qDRe4X6EmgOkhzRz8AAMYUSQFuO5k_84jwgPWKFkjGY,8985
|
|
124
|
-
webscout/Provider/cerebras.py,sha256=
|
|
125
|
+
webscout/Provider/cerebras.py,sha256=D8QmnJK_NHT2xgrIoDXPorY84r3Zs9l-cnkOkm6EUxI,13714
|
|
125
126
|
webscout/Provider/chatglm.py,sha256=CBiRhxe1yznhvyOaQPDf9Qu0SSfFvJ6LhTJCtHxsS0Q,8737
|
|
126
127
|
webscout/Provider/cleeai.py,sha256=lgIBs5JpNaY-gfwUBorZdSeA_Q7tawfTvkWWTg7EfuI,7981
|
|
127
|
-
webscout/Provider/copilot.py,sha256=
|
|
128
|
+
webscout/Provider/copilot.py,sha256=KcR89KPx9a6mxeWuySEPD46YENqOJnUtqXsrqR4FtY8,18969
|
|
128
129
|
webscout/Provider/deepseek_assistant.py,sha256=KdQ_Ldg_7jUpSIWmxgz6tXS-uOmE5rPKmJhjbeE6fUs,14557
|
|
129
130
|
webscout/Provider/elmo.py,sha256=PiiRLwkyHsPmAY8uydd_TuWe2qVXbs_wfW5u4Ytbqp8,12875
|
|
130
131
|
webscout/Provider/freeaichat.py,sha256=aF8AHBKc-0DrvTSj09jWTybrrUP7ro9GkwWXrdTBmf4,11231
|
|
@@ -142,21 +143,21 @@ webscout/Provider/meta.py,sha256=uQw0yS80eXoPqVfmWvwE_pvjTVYDDiTu4xrmfKmrqI0,307
|
|
|
142
143
|
webscout/Provider/monochat.py,sha256=gSkCmNmkkOOyM_cNDSA1RZZ8MdhGX0qbV9fIgqc3sHE,10337
|
|
143
144
|
webscout/Provider/multichat.py,sha256=DOt1E4e9X01UxqbDcNy2RPjvgVP3_4ZJb-EWyAn-sgg,15277
|
|
144
145
|
webscout/Provider/oivscode.py,sha256=3QR2_8nq1ceVTz_TZHCYTuAeK00orOWkpieSK6cgo3o,12713
|
|
145
|
-
webscout/Provider/samurai.py,sha256=xwl5CXgV5E_93ATMDXh6QtUKuLK7h0kuGN7JWAJLOCc,8446
|
|
146
146
|
webscout/Provider/scira_chat.py,sha256=1FuGuh558IWXcG470_fQPBkXc7aH5ZjTHsGE63tT2M4,19345
|
|
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
|
|
150
150
|
webscout/Provider/talkai.py,sha256=18EB9FPx2rOWdnuqMtBZc_QbLWKNFj06n1Xdtm6npwg,7613
|
|
151
|
-
webscout/Provider/toolbaz.py,sha256=
|
|
151
|
+
webscout/Provider/toolbaz.py,sha256=JwVZ5PgoWO6pq_P7r07akFyZGL7MS4CxMvYmG5fpXzg,14794
|
|
152
152
|
webscout/Provider/turboseek.py,sha256=hWVWlQiNYHCejWcc28RtsbYQa5Zm_4FOCh9thHESCuQ,11244
|
|
153
153
|
webscout/Provider/typefully.py,sha256=spW8cKIliR-QahFO8fwBZtnrDHOIijxnY00XXXoe3qQ,8295
|
|
154
154
|
webscout/Provider/x0gpt.py,sha256=fuqA82SQ7dZ44v5MTJ62m5QcYSFKWYnl9CMhoRWY9Qc,13042
|
|
155
155
|
webscout/Provider/yep.py,sha256=WA6Z14ikRHy53XoAy9AThwryrHE1B6UDaBuvAjMU5DY,17041
|
|
156
156
|
webscout/Provider/AISEARCH/DeepFind.py,sha256=nYS9wCAj5ODkIjGaNKPRfYkJ1kQai7kL32QCnh_oOuQ,10117
|
|
157
|
+
webscout/Provider/AISEARCH/PERPLEXED_search.py,sha256=h2V5nsDQ9wCEmgqS8c0PAVyEiEfyOopEBGh17F7R_5s,8878
|
|
157
158
|
webscout/Provider/AISEARCH/Perplexity.py,sha256=AcKqelQfjR5TULqCSA7s6U5-T3zv4HXvV13pFrdj4Dk,15138
|
|
158
159
|
webscout/Provider/AISEARCH/README.md,sha256=3WlTa-icOdDyyJpHsgmL0mfJ2BV_ViIC-hlMlRwbZYI,9693
|
|
159
|
-
webscout/Provider/AISEARCH/__init__.py,sha256=
|
|
160
|
+
webscout/Provider/AISEARCH/__init__.py,sha256=MhDnQ1q5T8H4bP8PX3azM3RalLqksVRhkBOgErI8wVE,314
|
|
160
161
|
webscout/Provider/AISEARCH/felo_search.py,sha256=dMPySfhhrj9jVH1-G_EtB3mIWeR5W7z4fCtpX7ygAa4,8551
|
|
161
162
|
webscout/Provider/AISEARCH/genspark_search.py,sha256=dsTaopBuuiK09uo_Dw5yQQTkB3jL4UHdy60nPZmryoA,16670
|
|
162
163
|
webscout/Provider/AISEARCH/hika_search.py,sha256=puGSf65CCVCj9w-C1lh2wPgNFlWr9TCNVjxO4WSj3O4,6757
|
|
@@ -174,41 +175,43 @@ webscout/Provider/OPENAI/MiniMax.py,sha256=hWrKiiXm5geUqTHDwKcOfhanb2eoejeOTjdCD
|
|
|
174
175
|
webscout/Provider/OPENAI/NEMOTRON.py,sha256=ZwBgNe3b466zkJ7JYtzLvobQte-Gppk1_YOBGGk6Mc8,9731
|
|
175
176
|
webscout/Provider/OPENAI/PI.py,sha256=MHkX7wsXJIdItwOfMMGEo8OzlZXIaolopBda7b_SpfQ,15185
|
|
176
177
|
webscout/Provider/OPENAI/Qwen3.py,sha256=91wKmXhM8gXyP6pat7fspr1XW0clN91Spx_Cq8WBL7o,16073
|
|
177
|
-
webscout/Provider/OPENAI/README.md,sha256=
|
|
178
|
-
webscout/Provider/OPENAI/TogetherAI.py,sha256=
|
|
178
|
+
webscout/Provider/OPENAI/README.md,sha256=OcGtuf3H_-u1IdxgfxOAQxjqACOBBmbKS-1sJb-M0xY,25095
|
|
179
|
+
webscout/Provider/OPENAI/TogetherAI.py,sha256=BBw3G44xXagmB9qRNVXokdlsI02fxgEnpMFnXIGScUI,14071
|
|
179
180
|
webscout/Provider/OPENAI/TwoAI.py,sha256=GBMZI1fwoMMEWcn9QcNGyKHQjzv9I3JbNs9IXthM9DI,17940
|
|
180
|
-
webscout/Provider/OPENAI/__init__.py,sha256=
|
|
181
|
+
webscout/Provider/OPENAI/__init__.py,sha256=wqTVl0S1SfsDc3DPB_Sa8pPkd2Yhp2z-vLIkBed7y18,1773
|
|
181
182
|
webscout/Provider/OPENAI/ai4chat.py,sha256=I0o7ZnGzG_2-PZfDDEbTMPh5OCx-4LfqfNcUFFdZAGY,11273
|
|
182
183
|
webscout/Provider/OPENAI/autoproxy.py,sha256=4zt7Ok-P63TY0m_2ClZ6Lg0O8fYOsIJcI0xStG8j2YY,41314
|
|
183
184
|
webscout/Provider/OPENAI/base.py,sha256=pjyz1e4Y1A9nttOZRMsihqhcP6ujGctzr7BNTXEtNd8,10507
|
|
184
|
-
webscout/Provider/OPENAI/c4ai.py,sha256=f0rzU1a5B3NJDNfOjvFoyTlDdmwuwL_3NfFr2uKqkxY,15636
|
|
185
185
|
webscout/Provider/OPENAI/chatgpt.py,sha256=z2R7GmsI-xVSrzVjnwmSXqm-SBuZAt9UE0DNvYXlPlc,20787
|
|
186
186
|
webscout/Provider/OPENAI/chatgptclone.py,sha256=XHrp4lw9AD3wr9MW2Aar9H-6Aw8l-TgmCLXM9OiH8fE,20423
|
|
187
187
|
webscout/Provider/OPENAI/chatsandbox.py,sha256=nmFQdZaj6puw28Hux57f-E8UYqNQnaMnQBOdhnd-ZQY,6999
|
|
188
|
-
webscout/Provider/OPENAI/copilot.py,sha256=
|
|
189
|
-
webscout/Provider/OPENAI/deepinfra.py,sha256=
|
|
190
|
-
webscout/Provider/OPENAI/e2b.py,sha256=
|
|
188
|
+
webscout/Provider/OPENAI/copilot.py,sha256=2Et1FtpK0ATAYk6bSXYBgJM14p5n9t60E3jVADyixMQ,12475
|
|
189
|
+
webscout/Provider/OPENAI/deepinfra.py,sha256=A9A_HpxNnawsQjEVh_EqJESl9o7wWLgB4JV4Lrg67q4,13503
|
|
190
|
+
webscout/Provider/OPENAI/e2b.py,sha256=YWgsrmJmC7qHkzwzyPGIzpY2Gq8vGPdbYh2Fza7wp9A,73976
|
|
191
191
|
webscout/Provider/OPENAI/exaai.py,sha256=D7i2zpxQhjo_LRnO0nzAU651aOWgXM_9_AQjcRX2IY0,15066
|
|
192
192
|
webscout/Provider/OPENAI/exachat.py,sha256=NjER0u8W98B2qohUrNABcxSPoQIZGRfhgjEF57hNzkg,15861
|
|
193
|
-
webscout/Provider/OPENAI/flowith.py,sha256=
|
|
193
|
+
webscout/Provider/OPENAI/flowith.py,sha256=ZNgVFeEBf0Pj4Ey11-RrEP8qlLKNzJul6FA-Tg-Y8hA,6638
|
|
194
194
|
webscout/Provider/OPENAI/friendli.py,sha256=vIOlpc-HBVSi-kfb956wEpBzabtU6HY-Tm5yf-THfvI,10446
|
|
195
|
-
webscout/Provider/OPENAI/
|
|
195
|
+
webscout/Provider/OPENAI/generate_api_key.py,sha256=yh8rUBbNLdbe-uetelw2sVfPaNNx7CYIHoDfcyEjRy4,1490
|
|
196
|
+
webscout/Provider/OPENAI/gptoss.py,sha256=9OCnFyHS8a7K5D3x_Rm8f4eIQxfePrIQDKa9mOX8li4,11317
|
|
196
197
|
webscout/Provider/OPENAI/groq.py,sha256=if3RBZmFwqSKtYPwlVzK_YGGGlFv4dRxw2obGs8MvRE,14564
|
|
197
198
|
webscout/Provider/OPENAI/heckai.py,sha256=br0Zj_rvOCL1w_N3SVltiVlQQQhlCwAb-WOhaFaEwh4,11709
|
|
199
|
+
webscout/Provider/OPENAI/kimi.py,sha256=RSnF1xpKlQW85ox1xNNSpoT3ZsKUCYj1-pHo8DQQBjE,17818
|
|
198
200
|
webscout/Provider/OPENAI/llmchatco.py,sha256=CUcFgZuuV4njk9HEocnCGnLg7zcTB1k1awRJSHX5NFA,15371
|
|
199
201
|
webscout/Provider/OPENAI/mcpcore.py,sha256=UsIAKXiO9F3p6m5yptjslAo60NJa5AmtcaQOqzDD3EU,18939
|
|
200
202
|
webscout/Provider/OPENAI/monochat.py,sha256=7ZBOavowF_ebAd61Eq6YVoNcU9JWi9TV43yTGlSEz9M,11500
|
|
201
203
|
webscout/Provider/OPENAI/multichat.py,sha256=r65SxO4GxolYCs5Phoys_1xZtIEqolyW-I539Zj_mXM,13989
|
|
202
|
-
webscout/Provider/OPENAI/netwrck.py,sha256=
|
|
204
|
+
webscout/Provider/OPENAI/netwrck.py,sha256=qIgfJ3QkY62afq7-r4-CKSOmoX-SPi4_aeEzMNC0Rj4,13053
|
|
203
205
|
webscout/Provider/OPENAI/oivscode.py,sha256=Gjw2SETSIkIGREk5BfdEkkQL_RjnI8jFcwxLmUvlzOE,11875
|
|
204
206
|
webscout/Provider/OPENAI/opkfc.py,sha256=2YdpcNxMn2p3w9Z7mQ7g0dFJ17zzAgvnIM4UwCgynpM,21877
|
|
205
207
|
webscout/Provider/OPENAI/pydantic_imports.py,sha256=argzn_wiEY1Ymf2eU5W41V93aZOU0EPEbCtpL0X-TEQ,24
|
|
206
208
|
webscout/Provider/OPENAI/qodo.py,sha256=ZW87jLV9SS67Jx1MYQ_KF7fMsKbMv8MX9mcuthaas4s,24893
|
|
209
|
+
webscout/Provider/OPENAI/refact.py,sha256=hJNzfE0dD8yE_y71lJlvu2L4rap7gkuOn955YKiIe7A,11086
|
|
207
210
|
webscout/Provider/OPENAI/scirachat.py,sha256=VBOKBGam9k58HRp-9AYlNbkUftivmR0UpqJYzbnE8uk,21086
|
|
208
211
|
webscout/Provider/OPENAI/sonus.py,sha256=nRUJkK0T08Ao1WLF5ySmCpfH4x9C8wUXjezW4mygqJo,11159
|
|
209
212
|
webscout/Provider/OPENAI/standardinput.py,sha256=xBHWMRZcPwDJZaQvszaZmKwFzV3wCpwnoynSvsIqhTQ,19547
|
|
210
|
-
webscout/Provider/OPENAI/textpollinations.py,sha256=
|
|
211
|
-
webscout/Provider/OPENAI/toolbaz.py,sha256=
|
|
213
|
+
webscout/Provider/OPENAI/textpollinations.py,sha256=yELbqL3qVMCvbW3jp5xzq1_uoUgyq4AgQLxhc79i4Go,13213
|
|
214
|
+
webscout/Provider/OPENAI/toolbaz.py,sha256=KLFy80c3pg6ecQT0g_8Ii1jK8z3wNxEqMvr8VjH24s8,14291
|
|
212
215
|
webscout/Provider/OPENAI/typefully.py,sha256=yuOf1Idb6LCkK_YT4c9ABnjTuwRzSzffX-OAumSqrJQ,13004
|
|
213
216
|
webscout/Provider/OPENAI/utils.py,sha256=UB9MBoPEXl7zinIeZ3sQU1K5PTZjtzV-CBj9KiS3CYk,9374
|
|
214
217
|
webscout/Provider/OPENAI/venice.py,sha256=WNQpZlAsNbKW7zrXyITrHkXs9Ox0NTq5qd30cpY3dd0,16183
|
|
@@ -224,7 +227,7 @@ webscout/Provider/TTI/README.md,sha256=10mWDIrA39EhWGRnTWrVhhS3CwKT97yOkSc0dMLUQ
|
|
|
224
227
|
webscout/Provider/TTI/__init__.py,sha256=LLbMm3jUYZZ57l9o7Ki2ovzD74JveNQ7pBvW9qQzir4,296
|
|
225
228
|
webscout/Provider/TTI/aiarta.py,sha256=s7_ovvGJXTpH7TMMqBaQi00JKhUM5lcsG3PDdLp90Ps,15369
|
|
226
229
|
webscout/Provider/TTI/base.py,sha256=DCf8UfTM64D93DToY9Dc8KA-VgNIDFWVM-_nHp-wN5Q,5224
|
|
227
|
-
webscout/Provider/TTI/bing.py,sha256=
|
|
230
|
+
webscout/Provider/TTI/bing.py,sha256=zNhBVfoq6-P0-YjppTItKAlebaTqLe5Uc_P9E1Zu_Tk,10883
|
|
228
231
|
webscout/Provider/TTI/gpt1image.py,sha256=4xE5MFfjuKMc3lO3QCsEYvgidyoDhmvF7J1_sBqzmoU,4980
|
|
229
232
|
webscout/Provider/TTI/imagen.py,sha256=1qoyUeoqrzbQ660P5TFIJQVuZnwZQL65tCNEIXjD7CY,6684
|
|
230
233
|
webscout/Provider/TTI/infip.py,sha256=QQYBsof2pC0lqC1oAy6lex2LoRlDVg6Uu6qao0bZnsE,7294
|
|
@@ -233,30 +236,30 @@ webscout/Provider/TTI/monochat.py,sha256=SieiOHd2Rp3LiYkm1H9FXpS0Bt5LbrAvXyc3fnJ
|
|
|
233
236
|
webscout/Provider/TTI/piclumen.py,sha256=JM7aLa1Mdv4xuB0d1XLqS0t9yMR9C8Rgtv7979wtETc,7978
|
|
234
237
|
webscout/Provider/TTI/pixelmuse.py,sha256=k2NypIvZ1Xfe9ubL0Hkg5zkY-VLLvk4uZtPHmUFlmQg,8625
|
|
235
238
|
webscout/Provider/TTI/pollinations.py,sha256=tu1FAvAetET9KnwiXVlhsIEjfJZPghgSDdl7oFqLBso,8688
|
|
236
|
-
webscout/Provider/TTI/together.py,sha256=
|
|
239
|
+
webscout/Provider/TTI/together.py,sha256=gQGANbaK8i6nOHF3cxx2yHyxlufyIvVU7RI1_0IJWuM,10441
|
|
237
240
|
webscout/Provider/TTI/utils.py,sha256=vM63GCFRDKLUlqPVIFJC0H6asNh-8rVR_NWCfnfc8l4,317
|
|
238
241
|
webscout/Provider/TTI/venice.py,sha256=H7c_UKByNBJfXSfIgN780GG_RnSdFKkxnLhkwP8LD3g,13886
|
|
239
|
-
webscout/Provider/TTS/README.md,sha256=
|
|
240
|
-
webscout/Provider/TTS/__init__.py,sha256=
|
|
241
|
-
webscout/Provider/TTS/base.py,sha256
|
|
242
|
-
webscout/Provider/TTS/deepgram.py,sha256=
|
|
243
|
-
webscout/Provider/TTS/elevenlabs.py,sha256=
|
|
244
|
-
webscout/Provider/TTS/freetts.py,sha256=
|
|
245
|
-
webscout/Provider/TTS/gesserit.py,sha256=
|
|
246
|
-
webscout/Provider/TTS/murfai.py,sha256=
|
|
247
|
-
webscout/Provider/TTS/openai_fm.py,sha256=
|
|
242
|
+
webscout/Provider/TTS/README.md,sha256=wC8Us4srrpukUJ5rBLvKPxl5Su79Dz97wkcOLHND8F0,4639
|
|
243
|
+
webscout/Provider/TTS/__init__.py,sha256=M9kVUPrgV5nhueTuEFW2NjkepAwpC3f67MwGMeIJY58,284
|
|
244
|
+
webscout/Provider/TTS/base.py,sha256=iYIrVUYUrRJEzt2hwShRC9i3IMvgPGm6d-niYkwoauc,16694
|
|
245
|
+
webscout/Provider/TTS/deepgram.py,sha256=Itahe_Fabwm4WTHgzQX5goUtrmF2N2Gdh33Td0I1tXE,15152
|
|
246
|
+
webscout/Provider/TTS/elevenlabs.py,sha256=_eJSCqZV8HLvGtC_a-N751h07cXcKGfpPESh7yx0DXY,16267
|
|
247
|
+
webscout/Provider/TTS/freetts.py,sha256=arB7WBcpBkx4CcPgSQxSq3n7cyYe02XQQ2bg2qXpBBg,11406
|
|
248
|
+
webscout/Provider/TTS/gesserit.py,sha256=qz2mWjTXtkHzMAzwXgNkuiyfJ1fPn47xX82btPBB6VY,7716
|
|
249
|
+
webscout/Provider/TTS/murfai.py,sha256=sZ1ZpvHwoICnA6vlZypggkOO7QpGXhqgR-duYW4Ukfw,9231
|
|
250
|
+
webscout/Provider/TTS/openai_fm.py,sha256=I8Gu8TIUWk5cEOTklBSPEg2iG6zdnqrnFl6iEVNdkgo,11816
|
|
248
251
|
webscout/Provider/TTS/parler.py,sha256=-JbH01Kq_sLVahu6PoJwq6c7JY_JtQOi8YmU1cLFZqU,4144
|
|
249
|
-
webscout/Provider/TTS/speechma.py,sha256=
|
|
250
|
-
webscout/Provider/TTS/sthir.py,sha256=vEYmu4faOIeTcSfdSedUYVD3Vp3zu8-voq-g5aaMAog,3704
|
|
252
|
+
webscout/Provider/TTS/speechma.py,sha256=S3ZB3M1jFnq-gDJWSntOjD1do6RWgECzTjEQw7SRbsw,23629
|
|
251
253
|
webscout/Provider/TTS/streamElements.py,sha256=RowMh1VktGD9W_lGBqVJon_Bq8Ee2PRZNeUCDtDN8FU,10238
|
|
252
254
|
webscout/Provider/TTS/utils.py,sha256=pO3GsBmIZ7CHywjOGyrdpHdvch40QMvfAfvAeRBp-O0,10886
|
|
253
255
|
webscout/Provider/UNFINISHED/ChatHub.py,sha256=Xu2mvdTx-NjiDaTyyvRBkeGa8CgUJuMs14-5HLE0Y-A,7355
|
|
254
256
|
webscout/Provider/UNFINISHED/ChutesAI.py,sha256=i3GA93puWB5RoSiJat_OC1zWZI8XDG_CAri7SU_N-2w,13026
|
|
255
|
-
webscout/Provider/UNFINISHED/
|
|
257
|
+
webscout/Provider/UNFINISHED/VercelAIGateway.py,sha256=shB4pvj_w_fAJ4mULfBw9P2PDAYWOntc2dl7PD0z70Y,13352
|
|
256
258
|
webscout/Provider/UNFINISHED/Youchat.py,sha256=dkvwp7Jub4dF5l463hHX7L7MHzwyY14TU7BsTl3zlGk,13058
|
|
257
259
|
webscout/Provider/UNFINISHED/fetch_together_models.py,sha256=1BXL4ahTx_q19C6m2JKAUf_cbd2yRTacb4G0tMhNY10,3146
|
|
258
260
|
webscout/Provider/UNFINISHED/liner_api_request.py,sha256=yTVXbqZMTyo5oOPX_FO95fO56TT5hkbt8r4PK7ahFqw,10558
|
|
259
261
|
webscout/Provider/UNFINISHED/puterjs.py,sha256=Hhtz9PS8wSuG2BDUbPp2qLS5AQSAZzQ2viqC_-F-9yM,28225
|
|
262
|
+
webscout/Provider/UNFINISHED/samurai.py,sha256=xwl5CXgV5E_93ATMDXh6QtUKuLK7h0kuGN7JWAJLOCc,8446
|
|
260
263
|
webscout/Provider/UNFINISHED/test_lmarena.py,sha256=-BfHfe14HbozIkYUNl2RqI5Ih2VdSXv6DInBlUfvMZk,3853
|
|
261
264
|
webscout/auth/__init__.py,sha256=tcgG2dottPjoBRSLMFx7fHl4C0zSssWbkaLW0JNF3Z0,1848
|
|
262
265
|
webscout/auth/api_key_manager.py,sha256=8Zev4L35lyxHtdMQXQ4hOBuJzKaoHynHIfPNbtJl9hw,7143
|
|
@@ -279,13 +282,13 @@ webscout/litagent/__init__.py,sha256=2HydGSdDVBZ7SRNgGzXX-TJiuol1sxzNJBw7wVAFueo
|
|
|
279
282
|
webscout/litagent/agent.py,sha256=aflDZYVN_wZQ3OWOUK3ah7bnlFAUBandPfVuxCJZI04,24626
|
|
280
283
|
webscout/litagent/constants.py,sha256=3_3tWXhmyZ2dFIO8f0YWL4CRkoFoL18h0_jNttTN7mk,2175
|
|
281
284
|
webscout/litprinter/__init__.py,sha256=dEsi76uca5Art7tOc3ps240PPrWEVOdTLgR2pim1u9I,2510
|
|
282
|
-
webscout/scout/README.md,sha256=
|
|
285
|
+
webscout/scout/README.md,sha256=eTUP75eoAqVcscmMNiqwby55biKTcELwQrFsuYSBAY8,12619
|
|
283
286
|
webscout/scout/__init__.py,sha256=1dy8mhj4d-X_RDnb3Ip2LKC-2fqgP5zRsHkhdQjAGzE,333
|
|
284
287
|
webscout/scout/element.py,sha256=wLqfBhE2aQjvFEeTK_Qiy3ci-jR9rRrCskqgEo4gzUE,20068
|
|
285
288
|
webscout/scout/utils.py,sha256=flBUjqjUZbzMDT8PJYMPxqXFpm1NlpIJHdhFC2ApnZ0,1006
|
|
286
289
|
webscout/scout/core/__init__.py,sha256=ncF9MkM3iO1B2Ew_nOwzLQeeJ1xkCdoJ77CCZADD974,296
|
|
287
|
-
webscout/scout/core/crawler.py,sha256=
|
|
288
|
-
webscout/scout/core/scout.py,sha256=
|
|
290
|
+
webscout/scout/core/crawler.py,sha256=csWFF37SERh1XBpDZ0FNwHGayk3dTbqygLtzI-kpFqY,10685
|
|
291
|
+
webscout/scout/core/scout.py,sha256=WJe7gZ4-FVObCSwQkhsfZB42M7PKEDlFWe8m3OnA0YM,24404
|
|
289
292
|
webscout/scout/core/search_result.py,sha256=I5pmOhczAqY2wPgwx9lrZoeD4eHLn2VHlFCicaLXORI,2957
|
|
290
293
|
webscout/scout/core/text_analyzer.py,sha256=gm30VZAnAH5DPgt6OhYd4bOriK-sSwgtEBqrx4NWm6o,1846
|
|
291
294
|
webscout/scout/core/text_utils.py,sha256=vo5dVgtcMARWfHdH6NC5gAArBo4HYpqFsHKZYfkE7Jk,10813
|
|
@@ -316,9 +319,9 @@ webscout/zeroart/__init__.py,sha256=3reMOf41PFtYVhq2wjFpJbIIHWRcy63efeUpolWm1P0,
|
|
|
316
319
|
webscout/zeroart/base.py,sha256=nkf3WAE3YxKIpOFJ4Xf01T7dyWlbi98F1mIYo6vDux8,2365
|
|
317
320
|
webscout/zeroart/effects.py,sha256=DOMPCNk-IwhnUrXsYSx5oSWeYQ6KN7T_jZOYdEofyMg,3345
|
|
318
321
|
webscout/zeroart/fonts.py,sha256=ZiyQqA0BFN2IH5Ldijqe93rTiROmqPgxpeDtUNmmeRw,38812
|
|
319
|
-
webscout-8.3.
|
|
320
|
-
webscout-8.3.
|
|
321
|
-
webscout-8.3.
|
|
322
|
-
webscout-8.3.
|
|
323
|
-
webscout-8.3.
|
|
324
|
-
webscout-8.3.
|
|
322
|
+
webscout-8.3.6.dist-info/licenses/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
|
|
323
|
+
webscout-8.3.6.dist-info/METADATA,sha256=N4PmtkP5IqqPfQ5z4uTD0u6XCs7ySS6PtEu2HEQC65w,33208
|
|
324
|
+
webscout-8.3.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
325
|
+
webscout-8.3.6.dist-info/entry_points.txt,sha256=WooZuMBei-kQl5qByoRMkc2cHsaDL1Jd2_tSYsNiUGg,116
|
|
326
|
+
webscout-8.3.6.dist-info/top_level.txt,sha256=nYIw7OKBQDr_Z33IzZUKidRD3zQEo8jOJYkMVMeN334,9
|
|
327
|
+
webscout-8.3.6.dist-info/RECORD,,
|
webscout/Provider/Glider.py
DELETED
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
import cloudscraper
|
|
2
|
-
# from curl_cffi.requests import Session
|
|
3
|
-
import json
|
|
4
|
-
from typing import Union, Any, Dict, Generator, Optional, List
|
|
5
|
-
|
|
6
|
-
from curl_cffi import CurlError
|
|
7
|
-
|
|
8
|
-
from webscout.AIutel import Optimizers, Conversation, AwesomePrompts, sanitize_stream # Import sanitize_stream
|
|
9
|
-
from webscout.AIbase import Provider
|
|
10
|
-
from webscout import exceptions
|
|
11
|
-
from webscout.litagent import LitAgent as Lit
|
|
12
|
-
|
|
13
|
-
class GliderAI(Provider):
|
|
14
|
-
"""
|
|
15
|
-
A class to interact with the Glider.so API.
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
AVAILABLE_MODELS = [
|
|
19
|
-
"chat-llama-3-1-8b",
|
|
20
|
-
"chat-llama-3-2-3b",
|
|
21
|
-
"chat-deepseek-r1-qwen-32b",
|
|
22
|
-
"chat-qwen-2-5-7b",
|
|
23
|
-
"chat-qwen-qwq-32b",
|
|
24
|
-
"deepseek-ai/DeepSeek-R1",
|
|
25
|
-
]
|
|
26
|
-
|
|
27
|
-
def __init__(
|
|
28
|
-
self,
|
|
29
|
-
is_conversation: bool = True,
|
|
30
|
-
max_tokens: int = 600,
|
|
31
|
-
timeout: int = 30,
|
|
32
|
-
intro: Optional[str] = None,
|
|
33
|
-
filepath: Optional[str] = None,
|
|
34
|
-
update_file: bool = True,
|
|
35
|
-
proxies: dict = {},
|
|
36
|
-
history_offset: int = 10250,
|
|
37
|
-
act: Optional[str] = None,
|
|
38
|
-
model: str = "chat-llama-3-1-8b",
|
|
39
|
-
system_prompt: str = "You are a helpful AI assistant."
|
|
40
|
-
):
|
|
41
|
-
"""Initializes the GliderAI API client."""
|
|
42
|
-
if model not in self.AVAILABLE_MODELS:
|
|
43
|
-
raise ValueError(f"Invalid model: {model}. Choose from: {', '.join(self.AVAILABLE_MODELS)}")
|
|
44
|
-
|
|
45
|
-
self.session = cloudscraper.create_scraper() # Use cloudscraper Session
|
|
46
|
-
self.is_conversation = is_conversation
|
|
47
|
-
self.max_tokens_to_sample = max_tokens
|
|
48
|
-
self.api_endpoint = "https://glider.so/api/chat"
|
|
49
|
-
self.stream_chunk_size = 64
|
|
50
|
-
self.timeout = timeout
|
|
51
|
-
self.last_response = {}
|
|
52
|
-
self.model = model
|
|
53
|
-
self.system_prompt = system_prompt
|
|
54
|
-
self.headers = {
|
|
55
|
-
"accept": "*/*",
|
|
56
|
-
"accept-language": "en-US,en;q=0.9",
|
|
57
|
-
"content-type": "text/plain;charset=UTF-8",
|
|
58
|
-
"origin": "https://glider.so",
|
|
59
|
-
"referer": "https://glider.so/",
|
|
60
|
-
"user-agent": Lit().random(),
|
|
61
|
-
"cookie": "_vcrcs=1.1746977094.3600.NDlmNmM5YWFmNzMxZWUyNzE4ZjBhOTJlZGZlZDU3MGU=.850a77f5f36f60ae5da2f51b55231a54",
|
|
62
|
-
}
|
|
63
|
-
self.session.headers.update(self.headers)
|
|
64
|
-
self.session.proxies = proxies # Assign proxies directly
|
|
65
|
-
|
|
66
|
-
self.__available_optimizers = (
|
|
67
|
-
method for method in dir(Optimizers)
|
|
68
|
-
if callable(getattr(Optimizers, method)) and not method.startswith("__")
|
|
69
|
-
)
|
|
70
|
-
|
|
71
|
-
Conversation.intro = (
|
|
72
|
-
AwesomePrompts().get_act(
|
|
73
|
-
act, raise_not_found=True, default=None, case_insensitive=True
|
|
74
|
-
)
|
|
75
|
-
if act
|
|
76
|
-
else intro or Conversation.intro
|
|
77
|
-
)
|
|
78
|
-
self.conversation = Conversation(
|
|
79
|
-
is_conversation, self.max_tokens_to_sample, filepath, update_file
|
|
80
|
-
)
|
|
81
|
-
self.conversation.history_offset = history_offset
|
|
82
|
-
|
|
83
|
-
@staticmethod
|
|
84
|
-
def _glider_extractor(chunk: Union[str, Dict[str, Any]]) -> Optional[str]:
|
|
85
|
-
"""Extracts content from Glider stream JSON objects."""
|
|
86
|
-
if isinstance(chunk, dict):
|
|
87
|
-
# Handle both standard and DeepSeek response formats within choices
|
|
88
|
-
return chunk.get("choices", [{}])[0].get("delta", {}).get("content")
|
|
89
|
-
return None
|
|
90
|
-
|
|
91
|
-
def ask(
|
|
92
|
-
self,
|
|
93
|
-
prompt: str,
|
|
94
|
-
stream: bool = False,
|
|
95
|
-
raw: bool = False,
|
|
96
|
-
optimizer: Optional[str] = None,
|
|
97
|
-
conversationally: bool = False,
|
|
98
|
-
) -> Union[Dict[str, Any], Generator[Any, None, None]]:
|
|
99
|
-
"""Chat with AI.
|
|
100
|
-
|
|
101
|
-
Args:
|
|
102
|
-
prompt (str): Prompt to be sent.
|
|
103
|
-
stream (bool, optional): Flag for streaming response. Defaults to False.
|
|
104
|
-
raw (bool, optional): Return raw response chunks instead of dict. Defaults to False.
|
|
105
|
-
optimizer (str, optional): Prompt optimizer name. Defaults to None.
|
|
106
|
-
conversationally (bool, optional): Use conversationally modified prompt when optimizer specified. Defaults to False.
|
|
107
|
-
Returns:
|
|
108
|
-
dict or Generator[dict, None, None]: The response from the API.
|
|
109
|
-
"""
|
|
110
|
-
conversation_prompt = self.conversation.gen_complete_prompt(prompt)
|
|
111
|
-
if optimizer:
|
|
112
|
-
if optimizer in self.__available_optimizers:
|
|
113
|
-
conversation_prompt = getattr(Optimizers, optimizer)(
|
|
114
|
-
conversation_prompt if conversationally else prompt
|
|
115
|
-
)
|
|
116
|
-
else:
|
|
117
|
-
raise Exception(f"Optimizer is not one of {list(self.__available_optimizers)}")
|
|
118
|
-
|
|
119
|
-
payload = {
|
|
120
|
-
"messages": [
|
|
121
|
-
{"role": "system", "content": self.system_prompt},
|
|
122
|
-
{"role": "user", "content": conversation_prompt}
|
|
123
|
-
],
|
|
124
|
-
"model": self.model,
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
def for_stream():
|
|
128
|
-
streaming_text = ""
|
|
129
|
-
try:
|
|
130
|
-
import json
|
|
131
|
-
response = self.session.post(
|
|
132
|
-
self.api_endpoint, data=json.dumps(payload), stream=True, timeout=self.timeout
|
|
133
|
-
)
|
|
134
|
-
response.raise_for_status()
|
|
135
|
-
|
|
136
|
-
# Use sanitize_stream
|
|
137
|
-
processed_stream = sanitize_stream(
|
|
138
|
-
data=response.iter_content(chunk_size=None), # Pass byte iterator
|
|
139
|
-
intro_value="data:",
|
|
140
|
-
to_json=True, # Stream sends JSON
|
|
141
|
-
content_extractor=self._glider_extractor, # Use the specific extractor
|
|
142
|
-
yield_raw_on_error=False # Skip non-JSON lines or lines where extractor fails
|
|
143
|
-
)
|
|
144
|
-
|
|
145
|
-
for content_chunk in processed_stream:
|
|
146
|
-
# content_chunk is the string extracted by _glider_extractor
|
|
147
|
-
if content_chunk and isinstance(content_chunk, str):
|
|
148
|
-
streaming_text += content_chunk
|
|
149
|
-
yield content_chunk if raw else {"text": content_chunk}
|
|
150
|
-
except CurlError as e:
|
|
151
|
-
raise exceptions.FailedToGenerateResponseError(f"Request failed (CurlError): {e}") from e
|
|
152
|
-
except Exception as e:
|
|
153
|
-
raise exceptions.FailedToGenerateResponseError(f"An unexpected error occurred ({type(e).__name__}): {e}") from e
|
|
154
|
-
self.last_response.update(dict(text=streaming_text))
|
|
155
|
-
self.conversation.update_chat_history(prompt, self.get_message(self.last_response))
|
|
156
|
-
|
|
157
|
-
def for_non_stream():
|
|
158
|
-
for _ in for_stream():
|
|
159
|
-
pass
|
|
160
|
-
return self.last_response
|
|
161
|
-
|
|
162
|
-
return for_stream() if stream else for_non_stream()
|
|
163
|
-
|
|
164
|
-
def chat(
|
|
165
|
-
self,
|
|
166
|
-
prompt: str,
|
|
167
|
-
stream: bool = False,
|
|
168
|
-
optimizer: Optional[str] = None,
|
|
169
|
-
conversationally: bool = False,
|
|
170
|
-
) -> Union[str, Generator[str, None, None]]:
|
|
171
|
-
"""Generate response as a string.
|
|
172
|
-
|
|
173
|
-
Args:
|
|
174
|
-
prompt (str): Prompt to be sent.
|
|
175
|
-
stream (bool, optional): Flag for streaming response. Defaults to False.
|
|
176
|
-
optimizer (str, optional): Prompt optimizer name. Defaults to None.
|
|
177
|
-
conversationally (bool, optional): Use conversationally modified prompt when optimizer specified. Defaults to False.
|
|
178
|
-
Returns:
|
|
179
|
-
str or Generator[str, None, None]: The response generated.
|
|
180
|
-
"""
|
|
181
|
-
def for_stream():
|
|
182
|
-
for response in self.ask(
|
|
183
|
-
prompt, stream=True, optimizer=optimizer, conversationally=conversationally
|
|
184
|
-
):
|
|
185
|
-
yield self.get_message(response)
|
|
186
|
-
def for_non_stream():
|
|
187
|
-
return self.get_message(
|
|
188
|
-
self.ask(
|
|
189
|
-
prompt,
|
|
190
|
-
stream=False,
|
|
191
|
-
optimizer=optimizer,
|
|
192
|
-
conversationally=conversationally,
|
|
193
|
-
)
|
|
194
|
-
)
|
|
195
|
-
return for_stream() if stream else for_non_stream()
|
|
196
|
-
|
|
197
|
-
def get_message(self, response: dict) -> str:
|
|
198
|
-
"""Retrieves message only from response."""
|
|
199
|
-
assert isinstance(response, dict), "Response should be of dict data-type only"
|
|
200
|
-
return response["text"]
|
|
201
|
-
|
|
202
|
-
if __name__ == "__main__":
|
|
203
|
-
print("-" * 80)
|
|
204
|
-
print(f"{'Model':<50} {'Status':<10} {'Response'}")
|
|
205
|
-
print("-" * 80)
|
|
206
|
-
|
|
207
|
-
for model in GliderAI.AVAILABLE_MODELS:
|
|
208
|
-
try:
|
|
209
|
-
test_ai = GliderAI(model=model, timeout=60)
|
|
210
|
-
response = test_ai.chat("Say 'Hello' in one word", stream=True)
|
|
211
|
-
response_text = ""
|
|
212
|
-
for chunk in response:
|
|
213
|
-
response_text += chunk
|
|
214
|
-
print(f"\r{model:<50} {'Testing...':<10}", end="", flush=True)
|
|
215
|
-
|
|
216
|
-
if response_text and len(response_text.strip()) > 0:
|
|
217
|
-
status = "✓"
|
|
218
|
-
# Truncate response if too long
|
|
219
|
-
display_text = response_text.strip()[:50] + "..." if len(response_text.strip()) > 50 else response_text.strip()
|
|
220
|
-
else:
|
|
221
|
-
status = "✗"
|
|
222
|
-
display_text = "Empty or invalid response"
|
|
223
|
-
print(f"\r{model:<50} {status:<10} {display_text}")
|
|
224
|
-
except Exception as e:
|
|
225
|
-
print(f"\r{model:<50} {'✗':<10} {str(e)}")
|