llms-py 2.0.19__py3-none-any.whl → 2.0.21__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: llms-py
3
- Version: 2.0.19
3
+ Version: 2.0.21
4
4
  Summary: A lightweight CLI tool and OpenAI-compatible server for querying multiple Large Language Model (LLM) providers
5
5
  Home-page: https://github.com/ServiceStack/llms
6
6
  Author: ServiceStack
@@ -40,7 +40,7 @@ Dynamic: requires-python
40
40
 
41
41
  # llms.py
42
42
 
43
- Lightweight CLI and OpenAI-compatible server for querying multiple Large Language Model (LLM) providers.
43
+ Lightweight CLI, API and ChatGPT-like alternative to Open WebUI for accessing multiple LLMs, entirely offline, with all data kept private in browser storage.
44
44
 
45
45
  Configure additional providers and models in [llms.json](llms/llms.json)
46
46
  - Mix and match local models with models from different API providers
@@ -53,6 +53,7 @@ Configure additional providers and models in [llms.json](llms/llms.json)
53
53
  - **Lightweight**: Single [llms.py](llms.py) Python file with single `aiohttp` dependency
54
54
  - **Multi-Provider Support**: OpenRouter, Ollama, Anthropic, Google, OpenAI, Grok, Groq, Qwen, Z.ai, Mistral
55
55
  - **OpenAI-Compatible API**: Works with any client that supports OpenAI's chat completion API
56
+ - **Built-in Analytics**: Built-in analytics UI to visualize costs, requests, and token usage
56
57
  - **Configuration Management**: Easy provider enable/disable and configuration management
57
58
  - **CLI Interface**: Simple command-line interface for quick interactions
58
59
  - **Server Mode**: Run an OpenAI-compatible HTTP server at `http://localhost:{PORT}/v1/chat/completions`
@@ -65,11 +66,19 @@ Configure additional providers and models in [llms.json](llms/llms.json)
65
66
 
66
67
  ## llms.py UI
67
68
 
68
- Simple ChatGPT-like UI to access ALL Your LLMs, Locally or Remotely!
69
+ Access all your local all remote LLMs with a single ChatGPT-like UI:
69
70
 
70
- [![llms.py UI](https://servicestack.net/img/posts/llms-py-ui/bg.webp)](https://servicestack.net/posts/llms-py-ui)
71
+ [![](https://servicestack.net/img/posts/llms-py-ui/bg.webp)](https://servicestack.net/posts/llms-py-ui)
71
72
 
72
- Read the [Introductory Blog Post](https://servicestack.net/posts/llms-py-ui).
73
+ **Monthly Costs Analysis**
74
+
75
+ [![](https://servicestack.net/img/posts/llms-py-ui/analytics-costs.webp)](https://servicestack.net/posts/llms-py-ui)
76
+
77
+ **Monthly Activity Log**
78
+
79
+ [![](https://servicestack.net/img/posts/llms-py-ui/analytics-activity.webp)](https://servicestack.net/posts/llms-py-ui)
80
+
81
+ [More Features and Screenshots](https://servicestack.net/posts/llms-py-ui).
73
82
 
74
83
  ## Installation
75
84
 
@@ -1,8 +1,8 @@
1
1
  llms/__init__.py,sha256=Mk6eHi13yoUxLlzhwfZ6A1IjsfSQt9ShhOdbLXTvffU,53
2
2
  llms/__main__.py,sha256=hrBulHIt3lmPm1BCyAEVtB6DQ0Hvc3gnIddhHCmJasg,151
3
3
  llms/index.html,sha256=OA9mRmgh-dQrPqb0Z2Jv-cwEZ3YLPRxcWUN7ASjxO8s,2658
4
- llms/llms.json,sha256=jmk-86hHK--aW58vouZSQUGOsvuuiA29SRrryGzITL4,40844
5
- llms/main.py,sha256=vVU3OmwUBam7aL2Msy53vnrFpoED4B_bBnWFy33H4wA,71376
4
+ llms/llms.json,sha256=zMSbAMOhWjZDgXpVZOZpjYQs2k-h41yKHGhv_cphuTE,40780
5
+ llms/main.py,sha256=PS9u8cOdLcqiSalFSKWeEDzDRdo0EAKWs81RK-eCMyk,71037
6
6
  llms/ui.json,sha256=iBOmpNeD5-o8AgUa51ymS-KemovJ7bm9J1fnL0nf8jk,134025
7
7
  llms/ui/Analytics.mjs,sha256=mAS5AUQjpnEIMyzGzOGE6fZxwxoVyq5QCitYQSSCEpQ,69151
8
8
  llms/ui/App.mjs,sha256=hXtUjaL3GrcIHieEK3BzIG72OVzrorBBS4RkE1DOGc4,439
@@ -20,7 +20,7 @@ llms/ui/SignIn.mjs,sha256=df3b-7L3ZIneDGbJWUk93K9RGo40gVeuR5StzT1ZH9g,2324
20
20
  llms/ui/SystemPromptEditor.mjs,sha256=2CyIUvkIubqYPyIp5zC6_I8CMxvYINuYNjDxvMz4VRU,1265
21
21
  llms/ui/SystemPromptSelector.mjs,sha256=AuEtRwUf_RkGgene3nVA9bw8AeMb-b5_6ZLJCTWA8KQ,3051
22
22
  llms/ui/Welcome.mjs,sha256=QFAxN7sjWlhMvOIJCmHjNFCQcvpM_T-b4ze1ld9Hj7I,912
23
- llms/ui/ai.mjs,sha256=l5xp2VvTnJJqJdiqqWd551eEahEbNXZu-F4hesMP7Mw,2346
23
+ llms/ui/ai.mjs,sha256=Q6__qomHbggKvAzMJamlssJwDc3_CJPK2eqpqEMp2Is,2346
24
24
  llms/ui/app.css,sha256=e81FHQ-K7TlS7Cr2x_CCHqrvmVvg9I-m0InLQHRT_Dg,98992
25
25
  llms/ui/fav.svg,sha256=_R6MFeXl6wBFT0lqcUxYQIDWgm246YH_3hSTW0oO8qw,734
26
26
  llms/ui/markdown.mjs,sha256=O5UspOeD8-E23rxOLWcS4eyy2YejMbPwszCYteVtuoU,6221
@@ -28,9 +28,20 @@ llms/ui/tailwind.input.css,sha256=yo_3A50uyiVSUHUWeqAMorXMhCWpZoE5lTO6OJIFlYg,11
28
28
  llms/ui/threadStore.mjs,sha256=JKimOl-9c4p9qQ9L93tZZktmKwuzpiudXiWb4N9Ca3U,15557
29
29
  llms/ui/typography.css,sha256=Z5Fe2IQWnh7bu1CMXniYt0SkaN2fXOFlOuniXUW8oGM,19325
30
30
  llms/ui/utils.mjs,sha256=cYrP17JwpQk7lLqTWNgVTOD_ZZAovbWnx2QSvKzeB24,5333
31
- llms_py-2.0.19.dist-info/licenses/LICENSE,sha256=rRryrddGfVftpde-rmAZpW0R8IJihqJ8t8wpfDXoKiQ,1549
32
- llms_py-2.0.19.dist-info/METADATA,sha256=5nSCuDiob_GXVIMIxp7fBslXMrOA5zHpDiv1yvfCz-M,27902
33
- llms_py-2.0.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
34
- llms_py-2.0.19.dist-info/entry_points.txt,sha256=WswyE7PfnkZMIxboC-MS6flBD6wm-CYU7JSUnMhqMfM,40
35
- llms_py-2.0.19.dist-info/top_level.txt,sha256=gC7hk9BKSeog8gyg-EM_g2gxm1mKHwFRfK-10BxOsa4,5
36
- llms_py-2.0.19.dist-info/RECORD,,
31
+ llms/ui/lib/chart.js,sha256=dx8FdDX0Rv6OZtZjr9FQh5h-twFsKjfnb-FvFlQ--cU,196176
32
+ llms/ui/lib/charts.mjs,sha256=MNym9qE_2eoH6M7_8Gj9i6e6-Y3b7zw9UQWCUHRF6x0,1088
33
+ llms/ui/lib/color.js,sha256=DDG7Pr-qzJHTPISZNSqP_qJR8UflKHEc_56n6xrBugQ,8273
34
+ llms/ui/lib/highlight.min.mjs,sha256=sG7wq8bF-IKkfie7S4QSyh5DdHBRf0NqQxMOEH8-MT0,127458
35
+ llms/ui/lib/idb.min.mjs,sha256=CeTXyV4I_pB5vnibvJuyXdMs0iVF2ZL0Z7cdm3w_QaI,3853
36
+ llms/ui/lib/marked.min.mjs,sha256=QRHb_VZugcBJRD2EP6gYlVFEsJw5C2fQ8ImMf_pA2_s,39488
37
+ llms/ui/lib/servicestack-client.mjs,sha256=UVafVbzhJ_0N2lzv7rlzIbzwnWpoqXxGk3N3FSKgOOc,54534
38
+ llms/ui/lib/servicestack-vue.mjs,sha256=r_-khYokisXJAIPDLh8Wq6YtcLAY6HNjtJlCZJjLy74,215181
39
+ llms/ui/lib/vue-router.min.mjs,sha256=fR30GHoXI1u81zyZ26YEU105pZgbbAKSXbpnzFKIxls,30418
40
+ llms/ui/lib/vue.min.mjs,sha256=iXh97m5hotl0eFllb3aoasQTImvp7mQoRJ_0HoxmZkw,163811
41
+ llms/ui/lib/vue.mjs,sha256=dS8LKOG01t9CvZ04i0tbFXHqFXOO_Ha4NmM3BytjQAs,537071
42
+ llms_py-2.0.21.dist-info/licenses/LICENSE,sha256=rRryrddGfVftpde-rmAZpW0R8IJihqJ8t8wpfDXoKiQ,1549
43
+ llms_py-2.0.21.dist-info/METADATA,sha256=V_iujy9_9e7ozJUG7bm4yfyt3ddyqzLyd3tc5SKxFDQ,28330
44
+ llms_py-2.0.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
45
+ llms_py-2.0.21.dist-info/entry_points.txt,sha256=WswyE7PfnkZMIxboC-MS6flBD6wm-CYU7JSUnMhqMfM,40
46
+ llms_py-2.0.21.dist-info/top_level.txt,sha256=gC7hk9BKSeog8gyg-EM_g2gxm1mKHwFRfK-10BxOsa4,5
47
+ llms_py-2.0.21.dist-info/RECORD,,