From 286c508ce012dfb33106c55d8dbc7d9787d28094 Mon Sep 17 00:00:00 2001 From: "LocalAI [bot]" <139863280+localai-bot@users.noreply.github.com> Date: Thu, 25 Jun 2026 22:54:36 +0200 Subject: [PATCH] feat(backends): darwin build for the localvqe backend (acoustic echo cancellation) (#10512) feat(backends): darwin build for the localvqe backend LocalVQE (acoustic echo cancellation / noise suppression / dereverberation) already builds on Darwin - its Makefile takes the OS=Darwin branch with GGML_METAL=OFF (upstream is CPU + Vulkan only), producing a native arm64 CPU image. It was just never wired into CI. - .github/backend-matrix.yml: add localvqe to includeDarwin (build-type metal, lang go) - the darwin/arm64 build profile; the backend itself stays CPU. - backend/index.yaml: metal: capability + concrete metal-localvqe(-development) entries pointing at the -metal-darwin-arm64-localvqe images. - backend/go/localvqe/Makefile: note on the existing Darwin branch (also the per-backend change the CI path filter needs to build it here). Assisted-by: Claude:opus-4.8 [Claude Code] Signed-off-by: Ettore Di Giacinto Co-authored-by: Ettore Di Giacinto --- .github/backend-matrix.yml | 6 ++++++ backend/go/localvqe/Makefile | 2 ++ backend/index.yaml | 12 ++++++++++++ 3 files changed, 20 insertions(+) diff --git a/.github/backend-matrix.yml b/.github/backend-matrix.yml index dc12daf97..4d2b85977 100644 --- a/.github/backend-matrix.yml +++ b/.github/backend-matrix.yml @@ -4941,6 +4941,12 @@ includeDarwin: tag-suffix: "-metal-darwin-arm64-sam3-cpp" build-type: "metal" lang: "go" + # LocalVQE has no Metal path; on Apple Silicon it builds CPU-only (GGML_METAL + # OFF) but is still a native arm64 image. Uses the darwin/metal build profile. + - backend: "localvqe" + tag-suffix: "-metal-darwin-arm64-localvqe" + build-type: "metal" + lang: "go" - backend: "voxtral" tag-suffix: "-metal-darwin-arm64-voxtral" build-type: "metal" diff --git a/backend/go/localvqe/Makefile b/backend/go/localvqe/Makefile index 049da0cdd..58b73c3b9 100644 --- a/backend/go/localvqe/Makefile +++ b/backend/go/localvqe/Makefile @@ -32,6 +32,8 @@ endif ifeq ($(BUILD_TYPE),vulkan) CMAKE_ARGS+=-DGGML_VULKAN=ON -DLOCALVQE_VULKAN=ON else ifeq ($(OS),Darwin) + # Apple Silicon: CPU-only (no Metal upstream); built + published as an arm64 + # image by CI (includeDarwin in .github/backend-matrix.yml) for macOS install. CMAKE_ARGS+=-DGGML_METAL=OFF endif diff --git a/backend/index.yaml b/backend/index.yaml index bc51cf68e..a7399e20d 100644 --- a/backend/index.yaml +++ b/backend/index.yaml @@ -1057,6 +1057,8 @@ nvidia-l4t: "vulkan-localvqe" nvidia-l4t-cuda-12: "vulkan-localvqe" nvidia-l4t-cuda-13: "vulkan-localvqe" + # Apple Silicon: CPU build (LocalVQE has no Metal path); still arm64-native. + metal: "metal-localvqe" - &privacyfilter name: "privacy-filter" alias: "privacy-filter" @@ -4149,6 +4151,16 @@ uri: "quay.io/go-skynet/local-ai-backends:master-gpu-vulkan-localvqe" mirrors: - localai/localai-backends:master-gpu-vulkan-localvqe +- !!merge <<: *localvqecpp + name: "metal-localvqe" + uri: "quay.io/go-skynet/local-ai-backends:latest-metal-darwin-arm64-localvqe" + mirrors: + - localai/localai-backends:latest-metal-darwin-arm64-localvqe +- !!merge <<: *localvqecpp + name: "metal-localvqe-development" + uri: "quay.io/go-skynet/local-ai-backends:master-metal-darwin-arm64-localvqe" + mirrors: + - localai/localai-backends:master-metal-darwin-arm64-localvqe ## kokoro - !!merge <<: *kokoro name: "kokoro-development"