Files
LocalAI/docs/content/reference/compatibility-table.md
localai-org-maint-bot 9bfd71387b feat(stores): add Valkey Search vector store backend (#11196)
* feat: add Valkey Search vector store backend

Add a new built-in Go gRPC store backend 'valkey-store' that implements the
four Stores RPCs (Set/Get/Delete/Find) against the Valkey Search module (FT.*)
using the pure-Go github.com/valkey-io/valkey-go client. It is selected via the
existing per-request 'backend' field on /stores, so there is no proto or HTTP
API change, and it mirrors the in-memory local-store while adding persistence
across restarts and opt-in HNSW.

Each vector is a Valkey HASH keyed by hex(little-endian float32); the index is
created lazily on first Set (FLAT+COSINE by default), cosine similarity is
derived as 1-distance, and namespaces get a collision-resistant token. Includes
unit tests (valkey-go mock) and env-gated integration tests against
valkey/valkey-bundle, plus build/matrix/gallery wiring and docs.

Assisted-by: Kiro:claude-opus-4.8 golangci-lint
Signed-off-by: Daria Korenieva <daric2612@gmail.com>

* Address review feedback: recover persisted index dimension, harden Find

- Load now recovers the persisted vector DIM from FT.INFO (not just index
  existence), so a post-restart Set/Find validates against the real DIM
  instead of silently re-learning a wrong one and dropping mismatched
  vectors from the index. This also restores Find's dimension check after
  a restart.
- StoresFind treats a dropped/missing index as an empty store (empty
  result, no error) and clears the stale indexCreated flag, matching
  local-store's empty-store behaviour.
- StoresSet reuses checkDims for its per-key length check so the four RPCs
  share one dimension-guard implementation.
- Add unit tests for FT.INFO dimension recovery, loadIndexState, and the
  dropped-index Find path.

Assisted-by: Kiro:claude-opus-4.8
Signed-off-by: Daria Korenieva <daric2612@gmail.com>

* Address review feedback: TLS ServerName/CA, Find nil-check, config fail-fast

Addresses external review comments on the valkey-store backend:

- StoresFind now rejects a nil/empty query Key before dereferencing it,
  so a malformed gRPC request can no longer panic the backend.
- TLS: derive ServerName (SNI) from the VALKEY_ADDR host so certificate
  verification works for IP-addressed endpoints, and add VALKEY_TLS_CA_CERT
  (custom CA bundle) and VALKEY_TLS_SKIP_VERIFY (testing-only) knobs.
- Config integer parsing now fails fast on a malformed value (e.g.
  VALKEY_HNSW_M=1x6) instead of silently defaulting, matching the
  fail-fast behaviour of the index-algo/distance-metric validation.
- Add VALKEY_DB (SELECT n) support for logical-DB isolation.
- Cap the human-readable part of a namespace token at 64 chars so a very
  long model name cannot produce an unbounded key prefix / index name
  (the appended short hash keeps distinct namespaces collision-free).
- Document the KNN-query injection-safety invariant (fields are constants)
  and why StoresGet uses a single aggregate DoMulti deadline for reads.
- Unit tests for the Find nil/empty-key guard, fail-fast HNSW parsing,
  and VALKEY_DB parsing/validation; docs + .env updated for the new vars.

Assisted-by: Kiro:claude-opus-4.8 golangci-lint
Signed-off-by: Daria Korenieva <daric2612@gmail.com>

* Address review feedback: configure valkey-store via model config

richiejp asked that the valkey-store backend take its configuration from
a model config rather than process-wide VALKEY_* environment variables,
so multiple stores can each have their own Valkey config within one
LocalAI process. This removes every env access from the backend and
routes config through the model-config seam every other backend uses.

- config.go: loadConfig(opts *pb.ModelOptions) now parses the model
  config `options:` list (key:value strings, split on the first ':')
  instead of os.Getenv. Option keys mirror the old VALKEY_* names without
  the prefix (addr, index_algo, distance_metric, ...). Defaults, fail-fast
  validation and the mandatory client name are unchanged.
- store.go: Load threads opts into loadConfig; TLS comments/errors renamed
  off the VALKEY_* names.
- core/backend/stores.go: StoreBackend and NewVectorStore take a
  *config.ModelConfigLoader, resolve the per-store ModelConfig by store
  name, and pass its Options (and Backend when unset) to the backend via
  WithLoadGRPCLoadModelOpts. No config -> default backend + built-in
  defaults, preserving the zero-config experience.
- Endpoints/routes/application: thread the config loader to StoreBackend.
- Unit + integration tests: configure via options; the integration test
  passes addr through the model-config path (VALKEY_ADDR is now only the
  test harness locating the server).
- docs + .env: document the model-config options, drop the env var table.

Assisted-by: Kiro:claude-opus-4.8
Signed-off-by: Daria Korenieva <daric2612@gmail.com>

* Remove valkey-store informational comment from .env The backend is configured via model config, not env vars — the comment was unnecessary noise in .env. The configuration is already documented in docs/content/features/stores.md.

Signed-off-by: Daria Korenieva <daric2612@gmail.com>

* feat(valkey-store): gate Load on NamespacePrefix to refuse autoload probing Mirror local-store's pattern: reject model names without store.NamespacePrefix so the model loader's greedy autoload probe cannot bind an arbitrary model name to the vector store backend (the #9287 failure mode). Also adds unit tests for the gate covering: prefixed namespace, prefix alone, unprefixed model name, empty model, and nil opts.

Signed-off-by: Daria Korenieva <daric2612@gmail.com>

* feat(valkey-store): add username_env/password_env credential indirection Add support for resolving Valkey credentials from environment variables named in the model config, mirroring cloud-proxy's api_key_env pattern. This keeps secrets out of model YAML files and lets distinct store configs each reference their own credentials. Options: username_env / password_env name the env var holding the value. The direct username / password options still work and take precedence when both are set (backward compatible). Includes 5 unit tests and updated stores.md documentation.

Signed-off-by: Daria Korenieva <daric2612@gmail.com>

* fix: correct rebase artifacts in backend-matrix.yml and Makefile Fix two issues introduced by the conflict-resolution script during the rebase onto master: 1. .github/backend-matrix.yml: valkey-store entries were merged INTO the cloud-proxy entries (duplicate keys in same YAML map items) instead of being separate list items. This broke cloud-proxy Linux builds and the cloud-proxy darwin entry lost its build-type/lang. Fixed by making them standalone entries and restoring cloud-proxy exactly as on master. 2. Makefile: duplicated .NOTPARALLEL and docker-build-backends lines. Collapsed to single lines that are master's current content plus the valkey-store additions. Also adds the three optional pickups from #10801: - /valkey-store in .gitignore (the built binary) - valkey-store row in docs/content/reference/compatibility-table.md - valkey-store line in backend/README.md

Signed-off-by: Daria Korenieva <daric2612@gmail.com>

---------

Signed-off-by: Daria Korenieva <daric2612@gmail.com>
Co-authored-by: Daria Korenieva <daric2612@gmail.com>
2026-07-29 20:12:29 +02:00

14 KiB

+++ disableToc = false title = "Model compatibility table" weight = 24 url = "/model-compatibility/" +++

Besides llama based models, LocalAI is compatible also with other architectures. The table below lists all the backends, compatible models families and the associated repository.

{{% notice note %}}

LocalAI will attempt to automatically load models which are not explicitly configured for a specific backend. You can specify the backend to use by configuring a model with a YAML file. See [the advanced section]({{%relref "advanced" %}}) for more details.

All backends listed here can be installed on demand from the [Backend Gallery]({{%relref "features/backends" %}}). The exact set of acceleration variants published for each backend is defined in backend/index.yaml.

{{% /notice %}}

Text Generation & Language Models

Backend Description Capability Embeddings Streaming Acceleration
llama.cpp LLM inference in C/C++. Supports LLaMA, Mamba, RWKV, Falcon, Starcoder, GPT-2, and many others GPT, Functions yes yes CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T
ik_llama.cpp Hard fork of llama.cpp optimized for CPU/hybrid CPU+GPU with IQK quants, custom quant mixes, and MLA for DeepSeek GPT yes yes CPU (AVX2+)
turboquant llama.cpp fork adding the TurboQuant KV-cache quantization scheme GPT yes yes CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Jetson L4T
ds4 DeepSeek V4 Flash single-model inference engine, optimized for Metal and CUDA GPT no yes CPU, CUDA 12/13, Metal, Jetson L4T
vllm.cpp From-scratch C++20 port of vLLM by the LocalAI team: paged KV cache, continuous batching, prefix caching, safetensors + GGUF, engine-enforced structured output, no Python at inference GPT, Functions no yes CPU, CUDA 12/13 (Blackwell-family), Vulkan, Metal, Jetson L4T (GB10)
vLLM Fast LLM serving with PagedAttention; GPTQ/AWQ/FP8 quantization GPT, Functions, Multimodal no yes CUDA 12/13, ROCm, Intel SYCL, Jetson L4T
vLLM Omni Unified multimodal generation (text, image, video, audio) on top of vLLM Multimodal GPT, Functions no yes CUDA 12/13, ROCm, Jetson L4T
SGLang Fast serving framework for LLMs and vision-language models with speculative decoding GPT, Functions, Multimodal no yes CUDA 12/13, ROCm, Intel SYCL, Jetson L4T
transformers HuggingFace Transformers framework GPT, Embeddings, Multimodal yes yes* CUDA 12/13, ROCm, Intel SYCL, Metal
MLX Apple Silicon LLM inference GPT, Functions no yes CPU, CUDA 12/13, Metal, Jetson L4T
MLX-VLM Vision-Language Models on Apple Silicon Multimodal GPT, Functions no yes CPU, CUDA 12/13, Metal, Jetson L4T
MLX Distributed Distributed LLM inference across multiple Apple Silicon Macs GPT no no CPU, CUDA 12/13, Metal, Jetson L4T
tinygrad Minimalist deep-learning framework with zero runtime dependencies GPT, Embeddings, Multimodal yes yes CPU

Speech-to-Text

Backend Description Acceleration
whisper.cpp OpenAI Whisper in C/C++ CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T
faster-whisper Fast Whisper with CTranslate2 CPU, CUDA 12/13, ROCm, Intel SYCL, Metal, Jetson L4T
WhisperX Word-level timestamps and speaker diarization CPU, CUDA 12/13, Metal, Jetson L4T
moonshine Ultra-fast transcription for low-end devices (ONNX) CPU, CUDA 12/13, Metal
parakeet.cpp C++/GGML port of NVIDIA NeMo Parakeet (tdt/ctc/rnnt/hybrid), with cache-aware streaming CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T
CrispASR Unified speech engine (whisper.cpp fork) supporting Parakeet, Canary, and many ASR architectures, plus TTS CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T
voxtral Voxtral Realtime 4B speech-to-text in pure C CPU, Metal
Qwen3-ASR Qwen3 automatic speech recognition CPU, CUDA 12/13, ROCm, Intel SYCL, Metal, Jetson L4T
NeMo NVIDIA NeMo ASR toolkit CPU, CUDA 12/13, ROCm, Intel SYCL, Metal
sherpa-onnx Sherpa-ONNX ASR (Whisper, Paraformer, SenseVoice) and TTS CPU, CUDA 12, Metal

Text-to-Speech

Backend Description Acceleration
piper Fast neural TTS CPU, Metal
Coqui TTS TTS with 1100+ languages and voice cloning CUDA 12, ROCm, Intel SYCL, Metal
Kokoro Lightweight TTS (82M params) CPU, CUDA 12/13, ROCm, Intel SYCL, Metal, Jetson L4T
Kokoros Pure Rust Kokoro TTS via ONNX CPU
Chatterbox Production-grade TTS with emotion control CPU, CUDA 12/13, Metal, Jetson L4T
VibeVoice Real-time TTS with voice cloning CPU, CUDA 12/13, ROCm, Intel SYCL, Metal, Jetson L4T
vibevoice.cpp Native C++/GGML port of VibeVoice for TTS (voice cloning) and long-form ASR with diarization CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T
moss-tts.cpp Native C++/GGML port of OpenMOSS MOSS-TTS-Local v1.5: 48 kHz stereo TTS with reference-audio voice cloning CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T
magpie-tts.cpp Native C++/GGML port of NVIDIA Magpie TTS Multilingual 357M: 22.05 kHz mono TTS, 5 baked voices, 9+ languages CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T
Qwen3-TTS TTS with custom voice, voice design, and voice cloning CPU, CUDA 12/13, ROCm, Intel SYCL, Metal, Jetson L4T
qwentts.cpp Native C++/GGML Qwen3-TTS with streaming, named speakers, and voice design CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T
OmniVoice Native C++/GGML TTS with voice cloning, voice design, and streaming CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T
fish-speech High-quality TTS with voice cloning CPU, CUDA 12/13, ROCm, Intel SYCL, Metal, Jetson L4T
Pocket TTS Lightweight CPU-efficient TTS with voice cloning CPU, CUDA 12/13, ROCm, Intel SYCL, Metal, Jetson L4T
OuteTTS TTS with custom speaker voices CPU, CUDA 12
faster-qwen3-tts Real-time Qwen3-TTS with CUDA graph capture CPU, CUDA 12/13, Jetson L4T
NeuTTS Air Instant voice cloning, on-device TTS CPU, CUDA 12, ROCm
VoxCPM Expressive end-to-end TTS CPU, CUDA 12/13, ROCm, Intel SYCL, Metal
Kitten TTS Kitten TTS model CPU, Metal
Supertonic Lightning-fast on-device multilingual TTS via ONNX CPU
MLX-Audio Audio models on Apple Silicon CPU, CUDA 12/13, Metal, Jetson L4T
liquid-audio LFM2 end-to-end speech-to-speech, ASR, and TTS CPU, CUDA 12/13, ROCm, Intel SYCL, Jetson L4T

Music & Sound Generation

Backend Description Acceleration
ACE-Step Music generation from text descriptions, lyrics, or audio CPU, CUDA 12/13, ROCm, Intel SYCL, Metal
acestep.cpp ACE-Step 1.5 C++ backend using GGML CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T

Image & Video Generation

Backend Description Acceleration
stable-diffusion.cpp Stable Diffusion, Flux, PhotoMaker, Ideogram in C/C++ CPU, CUDA 12/13, Intel SYCL, Vulkan, Metal, Jetson L4T
diffusers HuggingFace diffusion models (image and video generation) CPU, CUDA 12/13, ROCm, Intel SYCL, Metal, Jetson L4T
vLLM Omni Multimodal generation including text-to-image and text-to-video CUDA 12/13, ROCm, Jetson L4T

Vision, Detection & Recognition

Backend Description Acceleration
RF-DETR Real-time transformer-based object detection (Python) CPU, CUDA 12/13, Intel SYCL, Metal, Jetson L4T
rf-detr.cpp Native RF-DETR object detection and instance segmentation in C/C++ using GGML CPU, CUDA 12/13, Intel SYCL, Vulkan, Jetson L4T
locate-anything.cpp Open-vocabulary object detection and visual grounding (LocateAnything-3B) in C/C++ using GGML CPU, CUDA 12/13, Intel SYCL, Vulkan, Jetson L4T
depth-anything.cpp Depth Anything 3 monocular metric depth + camera pose in C/C++ using GGML CPU, CUDA 12/13, Intel SYCL, Vulkan, Jetson L4T
sam3.cpp Segment Anything (SAM 3/2/EdgeTAM) with text/point/box prompts in C/C++ using GGML CPU, CUDA 12/13, Intel SYCL, Vulkan, Jetson L4T
face-detect.cpp Native face detection, recognition, embedding, demographics and anti-spoofing (SCRFD/ArcFace, YuNet/SFace) in C/C++ using GGML CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T
voice-detect.cpp Native speaker (voice) recognition and voice analysis (ECAPA-TDNN, WeSpeaker, ERes2Net, CAM++, wav2vec2) in C/C++ using GGML CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Metal, Jetson L4T
insightface Face verification, embedding, and anti-spoofing liveness (ONNX Runtime) CPU, CUDA 12
speaker-recognition Speaker (voice) recognition via SpeechBrain ECAPA-TDNN CPU, CUDA 12, Metal

Audio Processing

Backend Description Acceleration
Silero VAD Voice Activity Detection CPU, Metal
LocalVQE Joint acoustic echo cancellation, noise suppression, and dereverberation in C/C++ using GGML CPU, CUDA 12/13, ROCm, Intel SYCL, Vulkan, Jetson L4T
Opus Audio codec for WebRTC / Realtime API CPU, Metal

Utilities & Other

Backend Description Acceleration
rerankers Document reranking for RAG CUDA 12, ROCm, Intel SYCL, Metal
privacy-filter.cpp Standalone GGML engine for the openai-privacy-filter PII/NER token-classification model family (powers LocalAI's PII redaction tier) CPU, CUDA 13, Vulkan
local-store Local-first vector database for embeddings CPU, Metal
valkey-store Durable vector store for embeddings backed by Valkey Search (FLAT or HNSW) CPU, Metal
TRL Fine-tuning (SFT, DPO, GRPO, RLOO, KTO, ORPO) CPU, CUDA 12/13
llama.cpp quantization HuggingFace → GGUF model conversion and quantization CPU, Metal

Acceleration Support Summary

GPU Acceleration

  • NVIDIA CUDA: CUDA 12.0, CUDA 13.0 support across most backends
  • AMD ROCm: HIP-based acceleration for AMD GPUs
  • Intel oneAPI: SYCL-based acceleration for Intel GPUs (F16/F32 precision)
  • Vulkan: Cross-platform GPU acceleration
  • Metal: Apple Silicon GPU acceleration (M1/M2/M3+)

Specialized Hardware

  • NVIDIA Jetson (L4T CUDA 12): ARM64 support for embedded AI (AGX Orin, Jetson Nano, Jetson Xavier NX, Jetson AGX Xavier)
  • NVIDIA Jetson (L4T CUDA 13): ARM64 support for embedded AI (DGX Spark)
  • Apple Silicon: Native Metal acceleration for Mac M1/M2/M3+
  • Darwin x86: Intel Mac support

CPU Optimization

  • AVX/AVX2/AVX512: Advanced vector extensions for x86
  • Quantization: 4-bit, 5-bit, 8-bit integer quantization support
  • Mixed Precision: F16/F32 mixed precision support

Note: any backend name listed above can be used in the backend field of the model configuration file (See [the advanced section]({{%relref "advanced" %}})).

  • * Only for CUDA and OpenVINO CPU/XPU acceleration.