webscout 8.0__py3-none-any.whl → 8.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of webscout might be problematic. Click here for more details.

Files changed (45) hide show
  1. webscout/Provider/AISEARCH/DeepFind.py +1 -1
  2. webscout/Provider/AISEARCH/ISou.py +1 -1
  3. webscout/Provider/AISEARCH/__init__.py +2 -1
  4. webscout/Provider/AISEARCH/felo_search.py +1 -1
  5. webscout/Provider/AISEARCH/genspark_search.py +1 -1
  6. webscout/Provider/AISEARCH/hika_search.py +1 -1
  7. webscout/Provider/AISEARCH/iask_search.py +436 -0
  8. webscout/Provider/AISEARCH/scira_search.py +1 -1
  9. webscout/Provider/AISEARCH/webpilotai_search.py +1 -1
  10. webscout/Provider/ExaAI.py +1 -1
  11. webscout/Provider/Jadve.py +2 -2
  12. webscout/Provider/OPENAI/__init__.py +17 -0
  13. webscout/Provider/OPENAI/base.py +46 -0
  14. webscout/Provider/OPENAI/c4ai.py +347 -0
  15. webscout/Provider/OPENAI/chatgptclone.py +460 -0
  16. webscout/Provider/OPENAI/deepinfra.py +284 -0
  17. webscout/Provider/OPENAI/exaai.py +419 -0
  18. webscout/Provider/OPENAI/exachat.py +421 -0
  19. webscout/Provider/OPENAI/freeaichat.py +355 -0
  20. webscout/Provider/OPENAI/glider.py +314 -0
  21. webscout/Provider/OPENAI/heckai.py +337 -0
  22. webscout/Provider/OPENAI/llmchatco.py +325 -0
  23. webscout/Provider/OPENAI/netwrck.py +348 -0
  24. webscout/Provider/OPENAI/scirachat.py +459 -0
  25. webscout/Provider/OPENAI/sonus.py +294 -0
  26. webscout/Provider/OPENAI/typegpt.py +361 -0
  27. webscout/Provider/OPENAI/utils.py +211 -0
  28. webscout/Provider/OPENAI/venice.py +428 -0
  29. webscout/Provider/OPENAI/wisecat.py +381 -0
  30. webscout/Provider/OPENAI/x0gpt.py +389 -0
  31. webscout/Provider/OPENAI/yep.py +329 -0
  32. webscout/Provider/Venice.py +1 -1
  33. webscout/Provider/__init__.py +6 -6
  34. webscout/Provider/scira_chat.py +13 -10
  35. webscout/Provider/typegpt.py +3 -184
  36. webscout/prompt_manager.py +2 -1
  37. webscout/version.py +1 -1
  38. webscout-8.1.dist-info/METADATA +683 -0
  39. {webscout-8.0.dist-info → webscout-8.1.dist-info}/RECORD +43 -23
  40. webscout/Provider/flowith.py +0 -207
  41. webscout-8.0.dist-info/METADATA +0 -995
  42. {webscout-8.0.dist-info → webscout-8.1.dist-info}/LICENSE.md +0 -0
  43. {webscout-8.0.dist-info → webscout-8.1.dist-info}/WHEEL +0 -0
  44. {webscout-8.0.dist-info → webscout-8.1.dist-info}/entry_points.txt +0 -0
  45. {webscout-8.0.dist-info → webscout-8.1.dist-info}/top_level.txt +0 -0
@@ -11,11 +11,11 @@ webscout/conversation.py,sha256=wmRZ1xvlx9L1gdOnSSQlxze1cSbFwgm6TEBykNOh2QI,2182
11
11
  webscout/exceptions.py,sha256=9rSq7sUFgZYe9UJ6qOlC20xowfzHDTghwGCS6osA8hM,12007
12
12
  webscout/models.py,sha256=C7QY-KDkqFCI698t9pvTHQ27rYadPIvwaYHJ3-AOCJI,6566
13
13
  webscout/optimizers.py,sha256=NlnxWCav7cTyjfeLHuq2pUCgqgW1pljWbMTklHYMGwo,9954
14
- webscout/prompt_manager.py,sha256=F42AiUIqYIcB-8HNE6VznFwfddAw6DBtfQnGqlDtkMQ,9642
14
+ webscout/prompt_manager.py,sha256=Myom6P1QZgjKmQHw7U0ETgP_5jw4JHcqHOeSN5H_X7U,9701
15
15
  webscout/tempid.py,sha256=lqTTOjVSwDMmC0UoThdyshFyIAxTikVaN613-6K3g_s,4968
16
16
  webscout/update_checker.py,sha256=5FCr6p1zLVASXcXkxKEgR7bFvICbpzJdgRTr3teKFCs,4217
17
17
  webscout/utils.py,sha256=o2hU3qaVPk25sog3e4cyVZO3l8xwaZpYRziZPotEzNo,3075
18
- webscout/version.py,sha256=KvGXoGG6jrzbUov_tC_VLoK4WigD9MM5LDFtVtgAdvQ,44
18
+ webscout/version.py,sha256=JRZJy7vadnbY13p9NrCKXVovSGlQFUm5M1nD1QwZBZU,44
19
19
  webscout/webscout_search.py,sha256=rTqQO1e8S8i9okFO5y_2lznyh4BQ4AEzTTcM-70TWTc,55674
20
20
  webscout/webscout_search_async.py,sha256=fKQ01dBCJoHmB47QJoAoTz5mns9lb0V_jgbHY2NpVnk,35680
21
21
  webscout/yep_search.py,sha256=4jIn9KKXD6zJMdg302o4rzHQwFAy4haWoIagFn1XjLM,10429
@@ -82,7 +82,7 @@ webscout/Provider/Cohere.py,sha256=oL9kAv--RSkEQxwkPTq1Wi57Wkgg0WNvL82CpTj22YY,8
82
82
  webscout/Provider/DeepSeek.py,sha256=Hdy47w_K9YBH5s2EgU_XrLxYET7L2pr35fCCb9JxYeM,7475
83
83
  webscout/Provider/Deepinfra.py,sha256=-U994bHrHTiiUkZWHTxYQ88-hOIArP5eW9oaeKsAc5E,12739
84
84
  webscout/Provider/ElectronHub.py,sha256=nKfLw9HwYd6K9p-sDEl_dud4mPnqzOD9VKSJ3gXIXQI,24372
85
- webscout/Provider/ExaAI.py,sha256=fkMw4CFCY_mLhzLK4_cygk3ah9amoV4LvsgOXw8IK1k,9738
85
+ webscout/Provider/ExaAI.py,sha256=plbjF5LYyZS4elLWKtD6AURDQS3O9xAGBScpDGPHWiY,9783
86
86
  webscout/Provider/ExaChat.py,sha256=javk0MaTYPFQouviZSC2MuA9Wiu_8-fsJkQMsnf-t1U,11549
87
87
  webscout/Provider/Free2GPT.py,sha256=FJLn2Ho5oC1bJ2syDfIVvMpMwyFJu32S0ls1rAyr-R0,9213
88
88
  webscout/Provider/GPTWeb.py,sha256=xh_mnBko6RDyz2v3KhMux-yIipipkZfVVVoUJWkbzcQ,7466
@@ -93,7 +93,7 @@ webscout/Provider/Groq.py,sha256=jlhbTsx32OAb1fiyxN6ypJYLYTvOpJsRPSOrvqruVYo,295
93
93
  webscout/Provider/HeckAI.py,sha256=yihna7seFQ6vMqL6t28KNha3Wz1K0BnmZ4BzN57i_Nw,8869
94
94
  webscout/Provider/HuggingFaceChat.py,sha256=iyyDMIJUthdq0P6uv8J-oyMb60C1xLQkYOHw4A71TmQ,19412
95
95
  webscout/Provider/Hunyuan.py,sha256=45wHp9OR8iD_r5B8bLgRY7LhtevzAFQ-WXBZ44Ro8dE,11419
96
- webscout/Provider/Jadve.py,sha256=F4wM1LbCawZVX6040DDCPmJdXdRvHpmp9TS0QWuQths,10820
96
+ webscout/Provider/Jadve.py,sha256=mE70LtZ-IzHErH8Rlj1E_kdu-aXwCb9V_L3nso_PZWo,10667
97
97
  webscout/Provider/Koboldai.py,sha256=0mnpya8GBbmBf8s2qAl88h2PjqavwbRab8G6l5mbJlU,15204
98
98
  webscout/Provider/LambdaChat.py,sha256=Eg_lJ6ywC8cUohTNxR70S1idn60uN-O0xRS7Ces1qyg,15999
99
99
  webscout/Provider/Llama.py,sha256=ySwmr3drK58bekE8nxMma7U5kViYW7_WrbqXhOpn5TM,7718
@@ -112,12 +112,12 @@ webscout/Provider/Reka.py,sha256=dWw4vX91nJhAn-X1SXK72gttRaTqWNGUBFaeRJobTJg,851
112
112
  webscout/Provider/TeachAnything.py,sha256=3hmi94hgu9lDmjxRWQgQFMK5xvJumzKBsquObpI-SnE,7176
113
113
  webscout/Provider/TextPollinationsAI.py,sha256=kAFXJGgAItBE6Ilc31PSM4_NODArrBuoaaJTjUKuFmE,8885
114
114
  webscout/Provider/TwoAI.py,sha256=6-JZ1rxoZY3cgXpK__y4LhbUrptgzMxALef5q5NLKm0,7247
115
- webscout/Provider/Venice.py,sha256=64qSUwlz-zdw6sSizaZF-5Rg-lPT592P3M2oFjLS0FA,8347
115
+ webscout/Provider/Venice.py,sha256=yVPZneaubuCWXW-mUlqSfeT9STDljnYZ4KHq9sIvBwg,8348
116
116
  webscout/Provider/VercelAI.py,sha256=Gqn_TLBwSIgWEHqz612NSy1Dm8PdzMWCgwANR33K7OY,8462
117
117
  webscout/Provider/WebSim.py,sha256=8Ea1rKV-LCOL6H6ffgNeS2Vr70rslQUd0yVVtKRjUHA,8819
118
118
  webscout/Provider/WiseCat.py,sha256=qYffSfSbgSbERYzkQ4W8YqREMY0AFhh6h8dxT54XPIg,6997
119
119
  webscout/Provider/Youchat.py,sha256=tVgyUK7cXAsQX3JBCJikxmxsH1QBm-B076pRCjsyHfM,12664
120
- webscout/Provider/__init__.py,sha256=Vne743v4Dr2fMepbN6orgmwEgrJtorixFKoyNntmQCA,4123
120
+ webscout/Provider/__init__.py,sha256=oV069bSFIfMvCVpOQaPna6KrQA6ljf4o5ZnkSvzJ5Ro,4132
121
121
  webscout/Provider/ai4chat.py,sha256=S6DfY1bfZuFT2OBt2o9dDUF8clyzMlOEzNTzt6aMbro,8436
122
122
  webscout/Provider/aimathgpt.py,sha256=X1dPGdJ-Jc-6nQOnm-Bivzlo0B_n_j2A5cQK1bNrDlA,7176
123
123
  webscout/Provider/akashgpt.py,sha256=fswzQktBU2dnD0b-kZjlB_yygFxk3xSIWnrSk_8Nino,13087
@@ -129,7 +129,6 @@ webscout/Provider/chatglm.py,sha256=0pOS8HQ5bnUjY5E7yjenLLycpQVieNZmD06Wm4KhiwI,
129
129
  webscout/Provider/cleeai.py,sha256=lgIBs5JpNaY-gfwUBorZdSeA_Q7tawfTvkWWTg7EfuI,7981
130
130
  webscout/Provider/copilot.py,sha256=Au04Xw0VW5LJB6ODuO7qt097qr7jxG9C4UpoVyfTlNI,19006
131
131
  webscout/Provider/elmo.py,sha256=5myTgfEuZTtFHw5C2NT7iY2BjPUwEEkdLlo1m3Nhygc,9317
132
- webscout/Provider/flowith.py,sha256=o5V7DCeS7ysZ-Ttm9OtmmvYm9_3V-kUFPChga0Of6DE,7719
133
132
  webscout/Provider/freeaichat.py,sha256=waRu1GiRTUDJFmpsesknqU8Fk7omUIIiNh_QS3KlLGY,9744
134
133
  webscout/Provider/gaurish.py,sha256=-OVX6STSjt0pYn6lH5RiJZ5YPsYtWEorjBgENEsvsAQ,9998
135
134
  webscout/Provider/geminiapi.py,sha256=-_QbDBF_IiYyOJ0_uAIcE-gfzIs8H86nA5VWX52SRoY,8505
@@ -148,28 +147,49 @@ webscout/Provider/llmchatco.py,sha256=Mqe2SG3yGZVOFhOFXu3XkE7-ATAmzzB_s9hPJQrCbR
148
147
  webscout/Provider/meta.py,sha256=qWpVmSACYkEKsW8wRpm-rnlFJoOyku-WkfPGgGjUUYY,30717
149
148
  webscout/Provider/multichat.py,sha256=tsEudoeTFk30l9m8CRS0QVnK0jdceS1BPktcxmIqwdo,12419
150
149
  webscout/Provider/promptrefine.py,sha256=et8bNFf74Bn06SG0-3o8XNE5cJC_mRr5tTI3dqZAbE8,7731
151
- webscout/Provider/scira_chat.py,sha256=x4GZdIOGlPbWvd2zrqT7SSzecEQbXdOFSCVIb2DTr6U,10638
150
+ webscout/Provider/scira_chat.py,sha256=UzpmxWGLlSJat_B2ITuuDxF7cJdET1ICBfwurfksU7A,10811
152
151
  webscout/Provider/searchchat.py,sha256=0heQnkBBsqRSnKurblPOXZ0hEPILs91VtXUG-QbsYik,11933
153
152
  webscout/Provider/sonus.py,sha256=d2UUuD1ooxoQYXiJUsEctU2sBKZpWveIvxixgKlsP3M,8394
154
153
  webscout/Provider/talkai.py,sha256=18EB9FPx2rOWdnuqMtBZc_QbLWKNFj06n1Xdtm6npwg,7613
155
154
  webscout/Provider/turboseek.py,sha256=R2vbYHU7vJyhjRKHpPYfVl7P6V23_WuZSL5vlxuKnFA,8563
156
155
  webscout/Provider/tutorai.py,sha256=d__8jPhXtJKeOGlqwlxqW3f5meRDi2e3vNWVrOhEMrs,11278
157
156
  webscout/Provider/typefully.py,sha256=loOxnRPRv920yoHYKn1RgY61teEvA9_zhchvuLNiWLU,10766
158
- webscout/Provider/typegpt.py,sha256=ET-tUh3p-72sY6F39aMwVi5k1PGwjBjhanlXhhMGdxY,17369
157
+ webscout/Provider/typegpt.py,sha256=WwYYMLEDPk1ieJdz8nrvxLq8YpzQtdywPxrvJvrr52U,9769
159
158
  webscout/Provider/uncovr.py,sha256=0-OlppjOjKO5_ozzYtzUtut2CbReAlv3bXG4GpuVdH0,13393
160
159
  webscout/Provider/x0gpt.py,sha256=5THMLSDxTOzIXh4ZJFnBTxp1uU-6ospTo_u9vrThJ1Y,9459
161
160
  webscout/Provider/yep.py,sha256=Hul4EtWM9kqx_mYaLdoVdyYqGydta4tNrJUffY0fgKU,16957
162
- webscout/Provider/AISEARCH/DeepFind.py,sha256=WF9y92ep-1Vlxd0TRlOOqrUK7-0ACmpJLV65PjYDG7s,10315
163
- webscout/Provider/AISEARCH/ISou.py,sha256=CWKq0YE0Qt0e5J2MPjlCNgll7k_-5GrK1UI0r-kZZ_M,9982
164
- webscout/Provider/AISEARCH/__init__.py,sha256=dDtbVv97VPHOddXTIc1umcb2LqqkKH9xyb0fNyV2IWI,225
165
- webscout/Provider/AISEARCH/felo_search.py,sha256=qIk6SarmfTtohU4ouCOgO31zngK3DeYJzDpv7cvhFxE,8959
166
- webscout/Provider/AISEARCH/genspark_search.py,sha256=tr8C5OtI_Z6_sU41vSqSP2buIY4BOlacS2gNaR7o-C8,8154
167
- webscout/Provider/AISEARCH/hika_search.py,sha256=zvNZKqL5JVn5wcplK03_1mdGo-If1_GdSzOaYp9qXAc,6756
161
+ webscout/Provider/AISEARCH/DeepFind.py,sha256=MhU5of90tTfiF_DtYA4KC5d2pjbZ43WnIU9ixDpXZng,10324
162
+ webscout/Provider/AISEARCH/ISou.py,sha256=9pL95bLL0f9aoJ36L8yo4bnkqoD_vYGSWi9os8L-b24,9991
163
+ webscout/Provider/AISEARCH/__init__.py,sha256=qVLQBog3PQjK3P9tBoXpyRaWNYFqId7mK_rcwt9svfQ,253
164
+ webscout/Provider/AISEARCH/felo_search.py,sha256=tomKb8G_p80nTryxWQ3XFVFM3POnSgi2zkL27y3KfMg,8968
165
+ webscout/Provider/AISEARCH/genspark_search.py,sha256=dtI_8RHVncWWCbKgbXxwqrFKGsJe0V5mXBuDHuMjiVQ,8163
166
+ webscout/Provider/AISEARCH/hika_search.py,sha256=s2Ou-1o5DaYb6gCwCLD1jgFbqKQSivhF38NNCRsmQfM,6765
167
+ webscout/Provider/AISEARCH/iask_search.py,sha256=np0QsK34E7S6AH2LPO9rEb0P-XLlQn6YsAXuCMeSj9U,17752
168
168
  webscout/Provider/AISEARCH/monica_search.py,sha256=G8buO5HfKTt_Yj5CQ6RGzhCtifYF17ocK7_PcdbFD-c,9217
169
- webscout/Provider/AISEARCH/scira_search.py,sha256=fTCaRvH24KtSkcrHj-t0NbMgKkRfvHIU1O_oM40t6ZI,11283
170
- webscout/Provider/AISEARCH/webpilotai_search.py,sha256=SV9jkKQf5HorQiI_UH_XXaHipqLa1IOuPztsmtVtT_A,11895
169
+ webscout/Provider/AISEARCH/scira_search.py,sha256=Y2iZhO0F9397dAkgvb_ngTpMFg_F_15OuBxyJxYasIE,11292
170
+ webscout/Provider/AISEARCH/webpilotai_search.py,sha256=sgxlknhIU90A_yyaq67udZTmuC5xftG0iDa_D2DVZCs,11904
171
171
  webscout/Provider/HF_space/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
172
  webscout/Provider/HF_space/qwen_qwen2.py,sha256=IulE7bAMSbR530pFTanWzMFb4UJ9qF_NKoGiHkXxcjc,7612
173
+ webscout/Provider/OPENAI/__init__.py,sha256=b1pM-FElCwrK5fpSvinYIawFFvYC7FRxj6u54Tqeowk,451
174
+ webscout/Provider/OPENAI/base.py,sha256=oxJNrH4hQaRNb-hWDbMXhoO2xD0Y1T8KKyN9bP1Qw2k,1467
175
+ webscout/Provider/OPENAI/c4ai.py,sha256=33hzcHrzjkpNCVUDvNOMcug624BNLlYvmQVEEeQxa5s,12837
176
+ webscout/Provider/OPENAI/chatgptclone.py,sha256=GbOaylrQXMe5SCQt8YtuzcpxF3dPPx68P0I25IM-8wo,16923
177
+ webscout/Provider/OPENAI/deepinfra.py,sha256=HsUzmG7Z_0bT-JZduOISYsXKVsQVSNOHLBGInanMME4,12265
178
+ webscout/Provider/OPENAI/exaai.py,sha256=ZpXpAmkQBXARI2ljLKSmjQCLu_ZQ5VBVcH2pZmXYtFg,14621
179
+ webscout/Provider/OPENAI/exachat.py,sha256=gPw3bGVe9AMbWqUww2vQI8KE3WSUo1UKoiIXa3Dw094,14383
180
+ webscout/Provider/OPENAI/freeaichat.py,sha256=U3GIbn4oW6yaFaZMe_yMmlHVQX3E_juZ3eBUGyMR_Pg,11482
181
+ webscout/Provider/OPENAI/glider.py,sha256=8zVIG0_gSgPk7zhidDpDKPSgtg6NBOdp0wrDV60Lvwc,12546
182
+ webscout/Provider/OPENAI/heckai.py,sha256=_cJwT_qzNQvRWz4AJuDaTyg7jdBQsGGxh34hbMnCIF4,11247
183
+ webscout/Provider/OPENAI/llmchatco.py,sha256=sAw9mVnS6srsIJnXEt186gKsEUMXMvAvkpMG0Z5_W38,14800
184
+ webscout/Provider/OPENAI/netwrck.py,sha256=51P4OyXiWtdjS0oFHt9ePrRx1t6TojtZtvPNLaEAPsw,12230
185
+ webscout/Provider/OPENAI/scirachat.py,sha256=S_NohU-7grhkovbfVzXcSfsp9CgkVwSdx-zPB9tSs1s,17561
186
+ webscout/Provider/OPENAI/sonus.py,sha256=xoLhgN8kuIgjA01a4ripT4KqZz7RVB5DqINibo472pk,10198
187
+ webscout/Provider/OPENAI/typegpt.py,sha256=73Ho_n18elOZlbRpm161hG9ol8EBq7QS7U4KQGNKlSA,13542
188
+ webscout/Provider/OPENAI/utils.py,sha256=3lForhUB5j2sgwwGHzdjAMZqtaOtmhqb6TsplCmfKQk,6860
189
+ webscout/Provider/OPENAI/venice.py,sha256=DY7Ppn5y1WWj99OXfDf3tN-I6y1giahkSAPEpQVOWxc,15449
190
+ webscout/Provider/OPENAI/wisecat.py,sha256=scsajQl3ECwoEbgmmIjl9oofuJ7x8q2LdaZGVmzVX9M,12998
191
+ webscout/Provider/OPENAI/x0gpt.py,sha256=-OFNa9wS8txvffrrhwkzfLEPWItD3c-I-17mPSr2GAc,13547
192
+ webscout/Provider/OPENAI/yep.py,sha256=UVEsW--nWugWP_Km5vDWuGGapbYrX_4uVH7mf97Gr5E,13282
173
193
  webscout/Provider/TTI/__init__.py,sha256=K6J27GHg3Fv9xB13dGwgLWIow_EbZY1yKEAxohaoaKU,309
174
194
  webscout/Provider/TTI/AiForce/__init__.py,sha256=R8r6XYBUoGB_26jSyjGwHpw8GtZ0wbnkBoHxu26T_QU,685
175
195
  webscout/Provider/TTI/AiForce/async_aiforce.py,sha256=5O7tKyLgG3FVr-Tx9llZavCU9fOklrcnG210k4TvUwg,8317
@@ -254,9 +274,9 @@ webstoken/sentiment.py,sha256=yHtaHXJNS_sH1UTHZsOIgyhdijr8oi1pMlg_QE2wtxw,8202
254
274
  webstoken/stemmer.py,sha256=VXWkBpPaH328WEQxw9e9ff-p2e27xDdbpVSy0nTnXYE,2624
255
275
  webstoken/tagger.py,sha256=p4ScFnxn5sShYDVRoHK5pn_mzaDTsEtx3EHRvuvOlfE,2306
256
276
  webstoken/tokenizer.py,sha256=XJ-d1MFRp0Trw6gtOtZ8_wAcaSQidnSCHLNpV1-OFJc,6016
257
- webscout-8.0.dist-info/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
258
- webscout-8.0.dist-info/METADATA,sha256=eo0NKxybz5lX7tGn7PLvgQR53MyjfjhRQkHrFMLn_xY,32756
259
- webscout-8.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
260
- webscout-8.0.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
261
- webscout-8.0.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
262
- webscout-8.0.dist-info/RECORD,,
277
+ webscout-8.1.dist-info/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
278
+ webscout-8.1.dist-info/METADATA,sha256=2fANW6S4SWTdbTZUgmdfSaCgaAQc3SicRqZ_0f8JYDQ,24621
279
+ webscout-8.1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
280
+ webscout-8.1.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
281
+ webscout-8.1.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
282
+ webscout-8.1.dist-info/RECORD,,
@@ -1,207 +0,0 @@
1
- import uuid
2
- import requests
3
- import json
4
- import os
5
- import re
6
- from typing import Any, Dict, Optional, Generator, Union
7
-
8
- from webscout.AIutel import Optimizers
9
- from webscout.AIutel import Conversation
10
- from webscout.AIutel import AwesomePrompts, sanitize_stream
11
- from webscout.AIbase import Provider, AsyncProvider
12
- from webscout import exceptions
13
- from webscout.litagent import LitAgent
14
-
15
- class Flowith(Provider):
16
- """
17
- A class to interact with the Flowith AI chat API.
18
- """
19
-
20
- AVAILABLE_MODELS = [
21
- "gpt-4o-mini",
22
- "deepseek-chat",
23
- "deepseek-reasoner",
24
- "claude-3.5-haiku",
25
- "llama-3.2-11b",
26
- "llama-3.2-90b",
27
- "gemini-2.0-flash",
28
- "o1",
29
- "o3-mini",
30
- "gpt-4o",
31
- "claude-3.5-sonnet",
32
- "gemini-2.0-pro",
33
- "claude-3.7-sonnet"
34
-
35
- ]
36
-
37
- def __init__(
38
- self,
39
- is_conversation: bool = True,
40
- max_tokens: int = 2048,
41
- timeout: int = 30,
42
- intro: str = None,
43
- filepath: str = None,
44
- update_file: bool = True,
45
- proxies: dict = {},
46
- history_offset: int = 10250,
47
- act: str = None,
48
- model: str = "claude-3.5-haiku"
49
-
50
- ):
51
- """Initializes the Flowith API client."""
52
- if model not in self.AVAILABLE_MODELS:
53
- raise ValueError(f"Invalid model: {model}. Choose from: {self.AVAILABLE_MODELS}")
54
-
55
- self.url = "https://edge.flowith.net/ai/chat?mode=general"
56
-
57
- # Set up headers for the API request
58
- self.headers = {
59
- "authority": "edge.flowith.net",
60
- "accept": "*/*",
61
- "accept-encoding": "gzip, deflate, br, zstd",
62
- "accept-language": "en-US,en;q=0.9,en-IN;q=0.8",
63
- "content-type": "application/json",
64
- "origin": "https://flowith.io",
65
- "referer": "https://edge.flowith.net/",
66
- "responsetype": "stream",
67
- "sec-ch-ua": '"Chromium";v="134", "Not:A-Brand";v="24", "Microsoft Edge";v="134"',
68
- "sec-ch-ua-mobile": "?0",
69
- "sec-ch-ua-platform": '"Windows"',
70
- "sec-fetch-dest": "empty",
71
- "sec-fetch-mode": "cors",
72
- "sec-fetch-site": "cross-site",
73
- "user-agent": LitAgent().random() # Use LitAgent for user-agent
74
- }
75
-
76
- self.session = requests.Session()
77
- self.session.headers.update(self.headers)
78
- self.session.proxies.update(proxies)
79
-
80
- self.is_conversation = is_conversation
81
- self.max_tokens_to_sample = max_tokens
82
- self.timeout = timeout
83
- self.last_response = {}
84
- self.model = model
85
- self.node_id = str(uuid.uuid4()) # Generate a new UUID for node ID
86
-
87
- self.__available_optimizers = (
88
- method
89
- for method in dir(Optimizers)
90
- if callable(getattr(Optimizers, method)) and not method.startswith("__")
91
- )
92
- Conversation.intro = (
93
- AwesomePrompts().get_act(
94
- act, raise_not_found=True, default=None, case_insensitive=True
95
- )
96
- if act
97
- else intro or Conversation.intro
98
- )
99
-
100
- self.conversation = Conversation(
101
- is_conversation, self.max_tokens_to_sample, filepath, update_file
102
- )
103
- self.conversation.history_offset = history_offset
104
-
105
- def clean_response(self, text):
106
- """Remove text between <think> tags and other specific text patterns."""
107
- # Remove text between <think> tags
108
- text = re.sub(r'<think>.*?</think>', '', text, flags=re.DOTALL)
109
-
110
- return text.strip()
111
-
112
- def decode_response(self, content):
113
- """Try to decode the response content using multiple encodings."""
114
- encodings = ['utf-8', 'latin1', 'iso-8859-1', 'cp1252']
115
- for encoding in encodings:
116
- try:
117
- return content.decode(encoding)
118
- except UnicodeDecodeError:
119
- continue
120
- # If all encodings fail, try to decode with 'latin1' as it can decode any byte
121
- return content.decode('latin1')
122
-
123
- def ask(
124
- self,
125
- prompt: str,
126
- stream: bool = False, # This parameter is kept for compatibility
127
- raw: bool = False,
128
- optimizer: str = None,
129
- conversationally: bool = False,
130
- ) -> Union[Dict[str, Any], Dict[str, str]]:
131
- conversation_prompt = self.conversation.gen_complete_prompt(prompt)
132
- if optimizer:
133
- if optimizer in self.__available_optimizers:
134
- conversation_prompt = getattr(Optimizers, optimizer)(
135
- conversation_prompt if conversationally else prompt
136
- )
137
- else:
138
- raise Exception(f"Optimizer is not one of {self.__available_optimizers}")
139
-
140
- # Payload construction - using stream=False for simpler handling
141
- payload = {
142
- "model": self.model,
143
- "messages": [{"content": conversation_prompt, "role": "user"}],
144
- "stream": True, # Set to False for direct response
145
- "nodeId": self.node_id
146
- }
147
-
148
- try:
149
- # Simple non-streaming request
150
- response = self.session.post(self.url, json=payload, timeout=self.timeout)
151
-
152
- if response.status_code != 200:
153
- raise exceptions.FailedToGenerateResponseError(
154
- f"Request failed with status code {response.status_code}"
155
- )
156
-
157
- # Get the response text using our multi-encoding decoder
158
- response_text = self.decode_response(response.content).strip()
159
-
160
- # Clean the response
161
- cleaned_text = self.clean_response(response_text)
162
- self.last_response = {"text": cleaned_text}
163
-
164
- # Update conversation history
165
- self.conversation.update_chat_history(prompt, cleaned_text)
166
-
167
- return {"text": cleaned_text}
168
-
169
- except requests.RequestException as e:
170
- raise exceptions.FailedToGenerateResponseError(f"Request failed: {str(e)}")
171
-
172
- def chat(
173
- self,
174
- prompt: str,
175
- stream: bool = False, # Parameter kept for compatibility
176
- optimizer: str = None,
177
- conversationally: bool = False,
178
- ) -> str:
179
- # Always use non-streaming mode
180
- response = self.ask(prompt, False, optimizer=optimizer, conversationally=conversationally)
181
- return self.get_message(response)
182
-
183
- def get_message(self, response: dict) -> str:
184
- assert isinstance(response, dict), "Response should be of dict data-type only"
185
- return response["text"]
186
-
187
- if __name__ == "__main__":
188
- print("-" * 80)
189
- print(f"{'Model':<50} {'Status':<10} {'Response'}")
190
- print("-" * 80)
191
-
192
- for model in Flowith.AVAILABLE_MODELS:
193
- try:
194
- test_ai = Flowith(model=model, timeout=60)
195
- response = test_ai.chat("Say 'Hello' in one word")
196
- response_text = response
197
-
198
- if response_text and len(response_text.strip()) > 0:
199
- status = "✓"
200
- # Truncate response if too long
201
- display_text = response_text.strip()[:50] + "..." if len(response_text.strip()) > 50 else response_text.strip()
202
- else:
203
- status = "✗"
204
- display_text = "Empty or invalid response"
205
- print(f"{model:<50} {status:<10} {display_text}")
206
- except Exception as e:
207
- print(f"{model:<50} {'✗':<10} {str(e)}")