mirror of
https://github.com/mudler/LocalAI.git
synced 2025-06-17 08:15:00 +00:00

* feat: Add backend gallery This PR add support to manage backends as similar to models. There is now available a backend gallery which can be used to install and remove extra backends. The backend gallery can be configured similarly as a model gallery, and API calls allows to install and remove new backends in runtime, and as well during the startup phase of LocalAI. Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Add backends docs Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * wip: Backend Dockerfile for python backends Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * feat: drop extras images, build python backends separately Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fixup on all backends Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * test CI Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Tweaks Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Drop old backends leftovers Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Fixup CI Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Move dockerfile upper Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Fix proto Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Feature dropped for consistency - we prefer model galleries Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Add missing packages in the build image Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * exllama is ponly available on cublas Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * pin torch on chatterbox Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Fixups to index Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * CI Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Debug CI * Install accellerators deps Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Add target arch * Add cuda minor version Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Use self-hosted runners Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * ci: use quay for test images Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fixups for vllm and chatterbox Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Small fixups on CI Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * chatterbox is only available for nvidia Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Simplify CI builds Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Adapt test, use qwen3 Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * chore(model gallery): add jina-reranker-v1-tiny-en-gguf Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix(gguf-parser): recover from potential panics that can happen while reading ggufs with gguf-parser Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Use reranker from llama.cpp in AIO images Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Limit concurrent jobs Signed-off-by: Ettore Di Giacinto <mudler@localai.io> --------- Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
111 lines
No EOL
7.2 KiB
HTML
111 lines
No EOL
7.2 KiB
HTML
<nav class="bg-gradient-to-r from-gray-900 to-gray-950 shadow-lg border-b border-gray-800/50">
|
|
<div class="container mx-auto px-4 py-3">
|
|
<div class="flex items-center justify-between">
|
|
<div class="flex items-center">
|
|
<!-- Logo Image -->
|
|
<a href="./" class="flex items-center group">
|
|
<img src="static/logo_horizontal.png"
|
|
alt="LocalAI Logo"
|
|
class="h-14 mr-3 brightness-110 transition-all duration-300 group-hover:brightness-125">
|
|
</a>
|
|
</div>
|
|
|
|
<!-- Menu button for small screens -->
|
|
<div class="lg:hidden">
|
|
<button id="menu-toggle" class="text-gray-300 hover:text-blue-400 focus:outline-none p-2 rounded-lg transition duration-300 ease-in-out hover:bg-gray-800/70">
|
|
<i class="fas fa-bars fa-lg"></i>
|
|
</button>
|
|
</div>
|
|
|
|
<!-- Navigation links -->
|
|
<div class="hidden lg:flex lg:items-center lg:justify-end lg:space-x-1">
|
|
<a href="./" class="text-gray-300 hover:text-white px-3 py-2 rounded-lg transition duration-300 ease-in-out hover:bg-blue-900/30 flex items-center">
|
|
<i class="fas fa-home text-blue-400 mr-2"></i>Home
|
|
</a>
|
|
<a href="browse/" class="text-gray-300 hover:text-white px-3 py-2 rounded-lg transition duration-300 ease-in-out hover:bg-blue-900/30 flex items-center">
|
|
<i class="fas fa-brain text-blue-400 mr-2"></i>Models
|
|
</a>
|
|
<a href="browse/backends" class="text-gray-300 hover:text-white px-3 py-2 rounded-lg transition duration-300 ease-in-out hover:bg-blue-900/30 flex items-center">
|
|
<i class="fas fa-server text-blue-400 mr-2"></i>Backends
|
|
</a>
|
|
<a href="chat/" class="text-gray-300 hover:text-white px-3 py-2 rounded-lg transition duration-300 ease-in-out hover:bg-blue-900/30 flex items-center">
|
|
<i class="fa-solid fa-comments text-blue-400 mr-2"></i>Chat
|
|
</a>
|
|
<a href="text2image/" class="text-gray-300 hover:text-white px-3 py-2 rounded-lg transition duration-300 ease-in-out hover:bg-blue-900/30 flex items-center">
|
|
<i class="fas fa-image text-blue-400 mr-2"></i>Generate images
|
|
</a>
|
|
<a href="tts/" class="text-gray-300 hover:text-white px-3 py-2 rounded-lg transition duration-300 ease-in-out hover:bg-blue-900/30 flex items-center">
|
|
<i class="fa-solid fa-music text-blue-400 mr-2"></i>TTS
|
|
</a>
|
|
<a href="talk/" class="text-gray-300 hover:text-white px-3 py-2 rounded-lg transition duration-300 ease-in-out hover:bg-blue-900/30 flex items-center">
|
|
<i class="fa-solid fa-phone text-blue-400 mr-2"></i>Talk
|
|
</a>
|
|
{{ if .IsP2PEnabled }}
|
|
<a href="p2p/" class="text-gray-300 hover:text-white px-3 py-2 rounded-lg transition duration-300 ease-in-out hover:bg-blue-900/30 flex items-center">
|
|
<i class="fa-solid fa-circle-nodes text-blue-400 mr-2"></i>Swarm
|
|
</a>
|
|
{{ end }}
|
|
<a href="swagger/" class="text-gray-300 hover:text-white px-3 py-2 rounded-lg transition duration-300 ease-in-out hover:bg-blue-900/30 flex items-center">
|
|
<i class="fas fa-code text-blue-400 mr-2"></i>API
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Collapsible menu for small screens -->
|
|
<div class="hidden lg:hidden" id="mobile-menu">
|
|
<div class="pt-3 pb-2 space-y-1 border-t border-gray-800/50 mt-2">
|
|
<a href="./" class="block text-gray-300 hover:text-white hover:bg-blue-900/30 px-3 py-2 rounded-lg transition duration-300 ease-in-out flex items-center">
|
|
<i class="fas fa-home text-blue-400 mr-3 w-5 text-center"></i>Home
|
|
</a>
|
|
<a href="browse/" class="block text-gray-300 hover:text-white hover:bg-blue-900/30 px-3 py-2 rounded-lg transition duration-300 ease-in-out flex items-center">
|
|
<i class="fas fa-brain text-blue-400 mr-3 w-5 text-center"></i>Models
|
|
</a>
|
|
<a href="browse/backends" class="block text-gray-300 hover:text-white hover:bg-blue-900/30 px-3 py-2 rounded-lg transition duration-300 ease-in-out flex items-center">
|
|
<i class="fas fa-server text-blue-400 mr-3 w-5 text-center"></i>Backends
|
|
</a>
|
|
<a href="chat/" class="block text-gray-300 hover:text-white hover:bg-blue-900/30 px-3 py-2 rounded-lg transition duration-300 ease-in-out flex items-center">
|
|
<i class="fa-solid fa-comments text-blue-400 mr-3 w-5 text-center"></i>Chat
|
|
</a>
|
|
<a href="text2image/" class="block text-gray-300 hover:text-white hover:bg-blue-900/30 px-3 py-2 rounded-lg transition duration-300 ease-in-out flex items-center">
|
|
<i class="fas fa-image text-blue-400 mr-3 w-5 text-center"></i>Generate images
|
|
</a>
|
|
<a href="tts/" class="block text-gray-300 hover:text-white hover:bg-blue-900/30 px-3 py-2 rounded-lg transition duration-300 ease-in-out flex items-center">
|
|
<i class="fa-solid fa-music text-blue-400 mr-3 w-5 text-center"></i>TTS
|
|
</a>
|
|
<a href="talk/" class="block text-gray-300 hover:text-white hover:bg-blue-900/30 px-3 py-2 rounded-lg transition duration-300 ease-in-out flex items-center">
|
|
<i class="fa-solid fa-phone text-blue-400 mr-3 w-5 text-center"></i>Talk
|
|
</a>
|
|
{{ if .IsP2PEnabled }}
|
|
<a href="p2p/" class="block text-gray-300 hover:text-white hover:bg-blue-900/30 px-3 py-2 rounded-lg transition duration-300 ease-in-out flex items-center">
|
|
<i class="fa-solid fa-circle-nodes text-blue-400 mr-3 w-5 text-center"></i>Swarm
|
|
</a>
|
|
{{ end }}
|
|
<a href="swagger/" class="block text-gray-300 hover:text-white hover:bg-blue-900/30 px-3 py-2 rounded-lg transition duration-300 ease-in-out flex items-center">
|
|
<i class="fas fa-code text-blue-400 mr-3 w-5 text-center"></i>API
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<script>
|
|
// JavaScript to toggle the mobile menu with animation
|
|
document.getElementById('menu-toggle').addEventListener('click', function () {
|
|
var mobileMenu = document.getElementById('mobile-menu');
|
|
if (mobileMenu.classList.contains('hidden')) {
|
|
mobileMenu.classList.remove('hidden');
|
|
// Use setTimeout to create a mild animation effect
|
|
setTimeout(function() {
|
|
mobileMenu.classList.add('opacity-100');
|
|
mobileMenu.classList.remove('opacity-0');
|
|
}, 10);
|
|
} else {
|
|
mobileMenu.classList.add('opacity-0');
|
|
mobileMenu.classList.remove('opacity-100');
|
|
// Wait for transition to finish before hiding
|
|
setTimeout(function() {
|
|
mobileMenu.classList.add('hidden');
|
|
}, 300);
|
|
}
|
|
});
|
|
</script> |