mirror of
https://github.com/mudler/LocalAI.git
synced 2024-12-18 20:27:57 +00:00
feat(webui): show also models without a config in the welcome page (#2772)
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
This commit is contained in:
parent
03efa26ff5
commit
642f6cee75
@ -29,10 +29,18 @@ func WelcomeEndpoint(appConfig *config.ApplicationConfig,
|
|||||||
// Get model statuses to display in the UI the operation in progress
|
// Get model statuses to display in the UI the operation in progress
|
||||||
processingModels, taskTypes := modelStatus()
|
processingModels, taskTypes := modelStatus()
|
||||||
|
|
||||||
|
modelsWithoutConfig := []string{}
|
||||||
|
|
||||||
|
for _, m := range models {
|
||||||
|
if _, ok := galleryConfigs[m]; !ok {
|
||||||
|
modelsWithoutConfig = append(modelsWithoutConfig, m)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
summary := fiber.Map{
|
summary := fiber.Map{
|
||||||
"Title": "LocalAI API - " + internal.PrintableVersion(),
|
"Title": "LocalAI API - " + internal.PrintableVersion(),
|
||||||
"Version": internal.PrintableVersion(),
|
"Version": internal.PrintableVersion(),
|
||||||
"Models": models,
|
"Models": modelsWithoutConfig,
|
||||||
"ModelsConfig": backendConfigs,
|
"ModelsConfig": backendConfigs,
|
||||||
"GalleryConfig": galleryConfigs,
|
"GalleryConfig": galleryConfigs,
|
||||||
"IsP2PEnabled": p2p.IsP2PEnabled(),
|
"IsP2PEnabled": p2p.IsP2PEnabled(),
|
||||||
|
@ -17,15 +17,26 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="models mt-4">
|
<div class="models mt-4">
|
||||||
|
|
||||||
{{template "views/partials/inprogress" .}}
|
{{template "views/partials/inprogress" .}}
|
||||||
|
|
||||||
{{ if eq (len .ModelsConfig) 0 }}
|
{{ if eq (len .ModelsConfig) 0 }}
|
||||||
<h2 class="text-center text-3xl font-semibold text-gray-100"> <i class="text-yellow-200 ml-2 fa-solid fa-triangle-exclamation animate-pulse"></i> Ouch! seems you don't have any models installed!</h2>
|
<h2 class="text-center text-3xl font-semibold text-gray-100"> <i class="text-yellow-200 ml-2 fa-solid fa-triangle-exclamation animate-pulse"></i> Ouch! seems you don't have any models installed from the LocalAI gallery!</h2>
|
||||||
<p class="text-center mt-4 text-xl">..install something from the <a class="text-gray-400 hover:text-white ml-1 px-3 py-2 rounded" href="/browse">🖼️ Gallery</a> or check the <a href="https://localai.io/basics/getting_started/" class="text-gray-400 hover:text-white ml-1 px-3 py-2 rounded"> <i class="fa-solid fa-book"></i> Getting started documentation </a></p>
|
<p class="text-center mt-4 text-xl">..install something from the <a class="text-gray-400 hover:text-white ml-1 px-3 py-2 rounded" href="/browse">🖼️ Gallery</a> or check the <a href="https://localai.io/basics/getting_started/" class="text-gray-400 hover:text-white ml-1 px-3 py-2 rounded"> <i class="fa-solid fa-book"></i> Getting started documentation </a></p>
|
||||||
|
|
||||||
|
{{ if ne (len .Models) 0 }}
|
||||||
|
<hr class="my-4">
|
||||||
|
<h3 class="text-center text-xl font-semibold text-gray-100">
|
||||||
|
However, It seems you have installed some models installed without a configuration file:
|
||||||
|
</h3>
|
||||||
|
{{ range .Models }}
|
||||||
|
<div class="bg-gray-800 border-b border-gray-700 p-4 mt-4">
|
||||||
|
<h4 class="text-md font-bold text-gray-200">{{.}}</h4>
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<h2 class="text-center text-3xl font-semibold text-gray-100">Installed models</h2>
|
{{ $modelsN := len .ModelsConfig}}
|
||||||
<p class="text-center mt-4 text-xl">We have {{len .ModelsConfig}} pre-loaded models available.</p>
|
{{ $modelsN = add $modelsN (len .Models)}}
|
||||||
|
<h2 class="text-center text-3xl font-semibold text-gray-100">{{$modelsN}} Installed model(s)</h2>
|
||||||
<table class="table-auto mt-4 w-full text-left text-gray-200">
|
<table class="table-auto mt-4 w-full text-left text-gray-200">
|
||||||
<thead class="text-xs text-gray-400 uppercase bg-gray-700">
|
<thead class="text-xs text-gray-400 uppercase bg-gray-700">
|
||||||
<tr>
|
<tr>
|
||||||
@ -76,12 +87,29 @@
|
|||||||
data-twe-ripple-color="light" data-twe-ripple-init="" hx-confirm="Are you sure you wish to delete the model?" hx-post="/browse/delete/model/{{.Name}}" hx-swap="outerHTML"><i class="fa-solid fa-cancel pr-2"></i>Delete</button>
|
data-twe-ripple-color="light" data-twe-ripple-init="" hx-confirm="Are you sure you wish to delete the model?" hx-post="/browse/delete/model/{{.Name}}" hx-swap="outerHTML"><i class="fa-solid fa-cancel pr-2"></i>Delete</button>
|
||||||
</td>
|
</td>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ range .Models }}
|
||||||
|
<tr class="bg-gray-800 border-b border-gray-700">
|
||||||
|
<td class="px-4 py-3">
|
||||||
|
<img src="{{$noicon}}" class="rounded-t-lg max-h-24 max-w-24 object-cover mt-3">
|
||||||
|
</td>
|
||||||
|
<td class="px-4 py-3 font-bold">
|
||||||
|
<p class="font-bold text-white flex items-center"><i class="fas fa-brain pr-2"></i>{{.}}</p>
|
||||||
|
</td>
|
||||||
|
<td class="px-4 py-3 font-bold">
|
||||||
|
<span class="inline-block bg-yellow-500 text-white py-1 px-3 rounded-full text-xs">
|
||||||
|
auto
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td class="px-4 py-3">
|
||||||
|
<span class="float-right inline-block bg-red-800 text-white py-1 px-3 rounded-full text-xs">
|
||||||
|
No Configuration
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
{{end}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -100,6 +100,8 @@ var knownModelsNameSuffixToSkip []string = []string{
|
|||||||
".json",
|
".json",
|
||||||
".DS_Store",
|
".DS_Store",
|
||||||
".",
|
".",
|
||||||
|
".partial",
|
||||||
|
".tar.gz",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ml *ModelLoader) ListFilesInModelPath() ([]string, error) {
|
func (ml *ModelLoader) ListFilesInModelPath() ([]string, error) {
|
||||||
|
Loading…
Reference in New Issue
Block a user