|
3 | 3 | currentModel, |
4 | 4 | availableModels, |
5 | 5 | isModelLoaded, |
6 | | - modelLoadingProgress |
| 6 | + modelLoadingProgress, |
| 7 | + cachedModels, |
| 8 | + checkCachedModels |
7 | 9 | } from '$lib/stores/models'; |
8 | 10 | import { loadModelWithChatBubble } from '$lib/utils/model-loading'; |
9 | 11 | import { isMobile, getMobileOptimizedModels, canHandleLargeModels } from '$lib/utils/mobile'; |
|
109 | 111 | style="z-index: 999999 !important; top: {dropdownPosition.top}px; left: {dropdownPosition.left}px;" |
110 | 112 | > |
111 | 113 | <div class="p-4 border-b border-surface-300-600-token"> |
112 | | - <h3 class="font-semibold text-lg text-surface-700-200-token">Select LLM Model</h3> |
113 | | - <p class="text-sm text-surface-700-200-token opacity-80"> |
114 | | - Choose from {$availableModels.length} available models |
115 | | - </p> |
| 114 | + <div class="flex items-center justify-between"> |
| 115 | + <div> |
| 116 | + <h3 class="font-semibold text-lg text-surface-700-200-token">Select LLM Model</h3> |
| 117 | + <p class="text-sm text-surface-700-200-token opacity-80"> |
| 118 | + Choose from {$availableModels.length} available models |
| 119 | + </p> |
| 120 | + </div> |
| 121 | + <button |
| 122 | + class="btn btn-sm variant-ghost-surface" |
| 123 | + on:click={() => checkCachedModels()} |
| 124 | + title="Refresh cache status" |
| 125 | + > |
| 126 | + <i class="fa fa-refresh"></i> |
| 127 | + </button> |
| 128 | + </div> |
116 | 129 | </div> |
117 | 130 |
|
118 | 131 | <!-- Fast/Lightweight Models --> |
|
151 | 164 | <span class="text-xs text-yellow-400">{$modelLoadingProgress}%</span> |
152 | 165 | {/if} |
153 | 166 | </div> |
| 167 | + {:else if $cachedModels.has(model.model_id)} |
| 168 | + <div class="flex items-center space-x-1 flex-shrink-0"> |
| 169 | + <i class="fa fa-download text-blue-400"></i> |
| 170 | + <span class="text-xs text-blue-400">Cached</span> |
| 171 | + </div> |
154 | 172 | {/if} |
155 | 173 | </div> |
156 | 174 |
|
|
218 | 236 | <span class="text-xs text-yellow-400">{$modelLoadingProgress}%</span> |
219 | 237 | {/if} |
220 | 238 | </div> |
| 239 | + {:else if $cachedModels.has(model.model_id)} |
| 240 | + <div class="flex items-center space-x-1 flex-shrink-0"> |
| 241 | + <i class="fa fa-download text-blue-400"></i> |
| 242 | + <span class="text-xs text-blue-400">Cached</span> |
| 243 | + </div> |
221 | 244 | {/if} |
222 | 245 | </div> |
223 | 246 |
|
|
292 | 315 | <span class="text-xs text-warning-500">{$modelLoadingProgress}%</span> |
293 | 316 | {/if} |
294 | 317 | </div> |
| 318 | + {:else if $cachedModels.has(model.model_id)} |
| 319 | + <div class="flex items-center space-x-1 flex-shrink-0"> |
| 320 | + <i class="fa fa-download text-blue-400"></i> |
| 321 | + <span class="text-xs text-blue-400">Cached</span> |
| 322 | + </div> |
295 | 323 | {/if} |
296 | 324 | </div> |
297 | 325 |
|
|
0 commit comments