llms-py 3.0.0b3__py3-none-any.whl → 3.0.0b4__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.
@@ -69,8 +69,8 @@ export default {
69
69
  </div>
70
70
 
71
71
  <!-- Messages -->
72
- <div v-else class="space-y-6">
73
- <div v-if="currentThread.messages.length && currentThread.model" class="absolute -mt-2">
72
+ <div v-else class="space-y-2">
73
+ <div v-if="currentThread?.messages.length && currentThread?.model" class="flex items-center justify-center select-none">
74
74
  <span @click="$chat.setSelectedModel({ name: currentThread.model})"
75
75
  class="flex items-center cursor-pointer px-1.5 py-0.5 text-xs rounded text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 hover:text-gray-900 dark:hover:text-gray-100 transition-colors border hover:border-gray-300 dark:hover:border-gray-700">
76
76
  <ProviderIcon class="size-4 mr-1" :provider="$chat.getProviderForModel(currentThread.model)" />
@@ -178,7 +178,8 @@ export default {
178
178
  </div>
179
179
  </div>
180
180
 
181
- <div class="mt-2 text-xs opacity-70">
181
+ <div class="mt-2 text-xs opacity-70">
182
+ <span v-if="message.model" @click="$chat.setSelectedModel({ name: message.model })" title="Select model"><span class="cursor-pointer hover:underline">{{ message.model }}</span> &#8226; </span>
182
183
  <span>{{ $fmt.time(message.timestamp) }}</span>
183
184
  <span v-if="message.usage" :title="tokensTitle(message.usage)">
184
185
  &#8226;
@@ -560,7 +560,8 @@ const ChatPrompt = {
560
560
  if (!isDuplicate) {
561
561
  await threads.addMessageToThread(threadId, {
562
562
  role: 'user',
563
- content: content
563
+ content: content,
564
+ model: props.model.name,
564
565
  })
565
566
  // Reload thread after adding message
566
567
  thread = await threads.getThread(threadId)
@@ -681,6 +682,7 @@ const ChatPrompt = {
681
682
  }
682
683
  await threads.logRequest(threadId, props.model, request, response)
683
684
  }
685
+ assistantMessage.model = props.model.name
684
686
  await threads.addMessageToThread(threadId, assistantMessage, usage)
685
687
 
686
688
  nextTick(addCopyButtons)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: llms-py
3
- Version: 3.0.0b3
3
+ Version: 3.0.0b4
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
@@ -2,7 +2,7 @@ llms/__init__.py,sha256=DKwTZDsyYL_wHe7yvLw49Nf8PSgPSyWaeVdotUqSvrQ,84
2
2
  llms/__main__.py,sha256=hrBulHIt3lmPm1BCyAEVtB6DQ0Hvc3gnIddhHCmJasg,151
3
3
  llms/index.html,sha256=gABCGg8ALHyB8OSH745HXx7U0SrXuNtJry9buUbVDik,2117
4
4
  llms/llms.json,sha256=j7CmFdMpzNeo0nCPHHR4djYfzH_AFKKYIAH3cL3TKT8,10641
5
- llms/main.py,sha256=7Ih99-KuA6fBmrytED6099YFORUVDARWXav2p4bLDOk,124887
5
+ llms/main.py,sha256=cJVGPIIwsV7nGzGyfTBw4UJGyJBrPTdwHkwX0OMCG3w,124887
6
6
  llms/providers-extra.json,sha256=w7_5gB0YUPK0PJNeViM7vRDfNGChXUKMHfGHenVxEkM,10165
7
7
  llms/providers.json,sha256=x9Y_17h0aqeFMn3pnbjcZ5SW-RJyxHXH8ZjsUQ3L8aA,253843
8
8
  llms/__pycache__/__init__.cpython-312.pyc,sha256=lg2oFc0aKgj536NOJxcIpbCpEWi47ptF8NufPphgUUk,204
@@ -13,7 +13,7 @@ llms/__pycache__/__main__.cpython-314.pyc,sha256=IFxtGVpJq_3whKuM5Ln7YMweKFNbHVp
13
13
  llms/__pycache__/llms.cpython-312.pyc,sha256=S5dFI79JdUe2dQW4ogdB-CCNhudQeFaFGcfKxgJGBms,72080
14
14
  llms/__pycache__/main.cpython-312.pyc,sha256=HrqApYAiiBmYN73HIx_Hl2-Xm1Gy7I_0zuR5j86qoRM,104940
15
15
  llms/__pycache__/main.cpython-313.pyc,sha256=6NQ__SJ2rC9ItFLKLHL5ewb5RqxLzZabwgczA9wZd-w,74814
16
- llms/__pycache__/main.cpython-314.pyc,sha256=MYiVCsD1BdoR2lyKK-jmGtT0Y9O_3E7rfPaqJp04CnI,161849
16
+ llms/__pycache__/main.cpython-314.pyc,sha256=IUxE5UUHY5Udbdgs8kWvfYOFXqfgGBHTDEJOmWFUYos,161849
17
17
  llms/__pycache__/plugins.cpython-314.pyc,sha256=fer8nTkidG_vQSx80tL2bAvMS0opDom93bewjseFcyg,3560
18
18
  llms/providers/anthropic.py,sha256=KBwIPkGFkNCJxlLAY5MzFpEj7AB4d0WwpaOfZfvCrk0,8091
19
19
  llms/providers/chutes.py,sha256=TTDfWviHOoNfk2cXnY5UJK_fciRJ2drfz48u67TDmCM,6171
@@ -28,8 +28,8 @@ llms/providers/__pycache__/nvidia.cpython-314.pyc,sha256=pE2P5sz0EjRp3DYy-MiEAf_
28
28
  llms/providers/__pycache__/openai.cpython-314.pyc,sha256=-OnbDtGalUx3NtRU_sAwRL_TvrnKOworTliwS164IUY,8705
29
29
  llms/providers/__pycache__/openrouter.cpython-314.pyc,sha256=5zAegKxy40P1uX87T9KhaE5s54UXSq9fjsG0i2n84tc,5078
30
30
  llms/ui/App.mjs,sha256=W_rDLlK26t-GbKxSxh5X8727FDaOt7_rPTWnaVw7Cq0,7174
31
- llms/ui/ai.mjs,sha256=sOzBWe2wpNC7jNI4qZJUp7PsyoT0Wj2awJ2L0nfVvDA,5315
32
- llms/ui/app.css,sha256=11ENCAUhHgC6wuzHccryCaQseZEOjpdh-c_kLDdIAIo,84747
31
+ llms/ui/ai.mjs,sha256=lS95E7wGpxGMB4HwQ-gwoY2vKhYbaPJD32rteY8PFa8,5315
32
+ llms/ui/app.css,sha256=TereYe3ODsPOJb97qPtR23qLyIzTR8Czd5zVR3B0veo,119469
33
33
  llms/ui/ctx.mjs,sha256=p-GEB9rBlU5Vag84dDN0b-4YUJ0jBxqJQPEVGVarj9E,6134
34
34
  llms/ui/fav.svg,sha256=_R6MFeXl6wBFT0lqcUxYQIDWgm246YH_3hSTW0oO8qw,734
35
35
  llms/ui/index.mjs,sha256=J5g0JXuKeMwS65xr6mMivqUeEtojcQV2hsp5QCqcI4U,3820
@@ -51,15 +51,15 @@ llms/ui/lib/vue.mjs,sha256=dS8LKOG01t9CvZ04i0tbFXHqFXOO_Ha4NmM3BytjQAs,537071
51
51
  llms/ui/modules/analytics.mjs,sha256=ZV5ybl4jnzRtHMV04V3OIX-HgiHd2aby3IHzEemkucs,73909
52
52
  llms/ui/modules/layout.mjs,sha256=WTy85_8rSyBQooo2f5baw98RzNhpecw4pDpfhEgKv4s,12105
53
53
  llms/ui/modules/model-selector.mjs,sha256=dekgCdaqoWX_9fnpI8mhd6lU25JV7vxBoVQVVuF2p-I,67474
54
- llms/ui/modules/chat/ChatBody.mjs,sha256=GzHimS-haJPF7oqcqViTlOLWgardbetfNGMarTXBWxI,43368
54
+ llms/ui/modules/chat/ChatBody.mjs,sha256=J5gryEr7of1f68swyAcixjPEU49slnBq079Sr7nbTwM,43669
55
55
  llms/ui/modules/chat/SettingsDialog.mjs,sha256=N_Xnd9eXkXuw8cVaKR77k16TgOitB9btInW8Qp-WK7U,19929
56
- llms/ui/modules/chat/index.mjs,sha256=wQWTo54kGRcA68wCjSY-VOPheQTGlxmAOn-LGR76Qnk,33765
56
+ llms/ui/modules/chat/index.mjs,sha256=8jeki_b4HZ3BXJcxeDQiB2kfQ2eWx8xpD_rapqmHthk,33881
57
57
  llms/ui/modules/threads/Recents.mjs,sha256=xiN5K9SYc0oJug60m6g_lPVw-75lNkp1ATuVUYgIgX8,8826
58
58
  llms/ui/modules/threads/index.mjs,sha256=0ZwVb6W2BT3mwK5bwKgtlJEGJ9IAnQr7qk3XNG1LnFU,11397
59
59
  llms/ui/modules/threads/threadStore.mjs,sha256=cGm6g4dn5q0u_K6Bu5xuoAmBuURquubK7R4ahSKNC_E,16886
60
- llms_py-3.0.0b3.dist-info/licenses/LICENSE,sha256=bus9cuAOWeYqBk2OuhSABVV1P4z7hgrEFISpyda_H5w,1532
61
- llms_py-3.0.0b3.dist-info/METADATA,sha256=1iKo8N7Owhqbsr3nemrVRlcmZl07jLlkQtT-Q2vTzFw,2193
62
- llms_py-3.0.0b3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
63
- llms_py-3.0.0b3.dist-info/entry_points.txt,sha256=WswyE7PfnkZMIxboC-MS6flBD6wm-CYU7JSUnMhqMfM,40
64
- llms_py-3.0.0b3.dist-info/top_level.txt,sha256=gC7hk9BKSeog8gyg-EM_g2gxm1mKHwFRfK-10BxOsa4,5
65
- llms_py-3.0.0b3.dist-info/RECORD,,
60
+ llms_py-3.0.0b4.dist-info/licenses/LICENSE,sha256=bus9cuAOWeYqBk2OuhSABVV1P4z7hgrEFISpyda_H5w,1532
61
+ llms_py-3.0.0b4.dist-info/METADATA,sha256=4dO7h8rF3TvVojlO6VJyYHhfTjcBCxwWRPylglsLdkU,2193
62
+ llms_py-3.0.0b4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
63
+ llms_py-3.0.0b4.dist-info/entry_points.txt,sha256=WswyE7PfnkZMIxboC-MS6flBD6wm-CYU7JSUnMhqMfM,40
64
+ llms_py-3.0.0b4.dist-info/top_level.txt,sha256=gC7hk9BKSeog8gyg-EM_g2gxm1mKHwFRfK-10BxOsa4,5
65
+ llms_py-3.0.0b4.dist-info/RECORD,,