mirror of
https://github.com/mudler/LocalAI.git
synced 2026-08-01 11:00:24 -04:00
* feat(backends): add LongCat video and avatar generation Assisted-by: Codex:GPT-5 [apply_patch] [exec_command] [web] * refactor(config): declare model I/O modalities Make model configs declare input and output modalities so capability discovery no longer branches on backend or checkpoint names. Complete the LongCat gallery and user documentation, make the SDPA patch apply to the pinned upstream revision, and stabilize the Agent Jobs race exposed by the required hook. Assisted-by: Codex:GPT-5 [web] --------- Co-authored-by: Ettore Di Giacinto <mudler@localai.io>
209 lines
8.4 KiB
YAML
209 lines
8.4 KiB
YAML
name: Bump Backend dependencies
|
|
on:
|
|
schedule:
|
|
- cron: 0 20 * * *
|
|
workflow_dispatch:
|
|
jobs:
|
|
bump-backends:
|
|
if: github.repository == 'mudler/LocalAI'
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- repository: "ggml-org/llama.cpp"
|
|
variable: "LLAMA_VERSION"
|
|
branch: "master"
|
|
file: "backend/cpp/llama-cpp/Makefile"
|
|
- repository: "ikawrakow/ik_llama.cpp"
|
|
variable: "IK_LLAMA_VERSION"
|
|
branch: "main"
|
|
file: "backend/cpp/ik-llama-cpp/Makefile"
|
|
- repository: "TheTom/llama-cpp-turboquant"
|
|
variable: "TURBOQUANT_VERSION"
|
|
branch: "feature/turboquant-kv-cache"
|
|
file: "backend/cpp/turboquant/Makefile"
|
|
- repository: "antirez/ds4"
|
|
variable: "DS4_VERSION"
|
|
branch: "main"
|
|
file: "backend/cpp/ds4/Makefile"
|
|
- repository: "meituan-longcat/LongCat-Video"
|
|
variable: "LONGCAT_VIDEO_VERSION"
|
|
branch: "main"
|
|
file: "backend/python/longcat-video/Makefile"
|
|
- repository: "localai-org/privacy-filter.cpp"
|
|
variable: "PRIVACY_FILTER_VERSION"
|
|
branch: "master"
|
|
file: "backend/cpp/privacy-filter/Makefile"
|
|
- repository: "ggml-org/whisper.cpp"
|
|
variable: "WHISPER_CPP_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/whisper/Makefile"
|
|
- repository: "CrispStrobe/CrispASR"
|
|
variable: "CRISPASR_VERSION"
|
|
branch: "main"
|
|
file: "backend/go/crispasr/Makefile"
|
|
- repository: "mudler/parakeet.cpp"
|
|
variable: "PARAKEET_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/parakeet-cpp/Makefile"
|
|
- repository: "mudler/moss-transcribe.cpp"
|
|
variable: "MOSS_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/moss-transcribe-cpp/Makefile"
|
|
- repository: "mudler/ced.cpp"
|
|
variable: "CED_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/ced/Makefile"
|
|
- repository: "mudler/voice-detect.cpp"
|
|
variable: "VOICEDETECT_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/voice-detect/Makefile"
|
|
- repository: "mudler/face-detect.cpp"
|
|
variable: "FACEDETECT_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/face-detect/Makefile"
|
|
- repository: "mudler/depth-anything.cpp"
|
|
variable: "DEPTHANYTHING_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/depth-anything-cpp/Makefile"
|
|
- repository: "leejet/stable-diffusion.cpp"
|
|
variable: "STABLEDIFFUSION_GGML_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/stablediffusion-ggml/Makefile"
|
|
- repository: "mudler/go-piper"
|
|
variable: "PIPER_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/piper/Makefile"
|
|
- repository: "antirez/voxtral.c"
|
|
variable: "VOXTRAL_VERSION"
|
|
branch: "main"
|
|
file: "backend/go/voxtral/Makefile"
|
|
- repository: "ace-step/acestep.cpp"
|
|
variable: "ACESTEP_CPP_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/acestep-cpp/Makefile"
|
|
- repository: "PABannier/sam3.cpp"
|
|
variable: "SAM3_VERSION"
|
|
branch: "main"
|
|
file: "backend/go/sam3-cpp/Makefile"
|
|
- repository: "mudler/rf-detr.cpp"
|
|
variable: "RFDETR_VERSION"
|
|
branch: "main"
|
|
file: "backend/go/rfdetr-cpp/Makefile"
|
|
- repository: "mudler/locate-anything.cpp"
|
|
variable: "LOCATEANYTHING_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/locate-anything-cpp/Makefile"
|
|
- repository: "ServeurpersoCom/qwentts.cpp"
|
|
variable: "QWEN3TTS_CPP_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/qwen3-tts-cpp/Makefile"
|
|
- repository: "ServeurpersoCom/omnivoice.cpp"
|
|
variable: "OMNIVOICE_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/omnivoice-cpp/Makefile"
|
|
- repository: "localai-org/vibevoice.cpp"
|
|
variable: "VIBEVOICE_CPP_VERSION"
|
|
branch: "master"
|
|
file: "backend/go/vibevoice-cpp/Makefile"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- name: Bump dependencies 🔧
|
|
id: bump
|
|
run: |
|
|
bash .github/bump_deps.sh ${{ matrix.repository }} ${{ matrix.branch }} ${{ matrix.variable }} ${{ matrix.file }}
|
|
{
|
|
echo 'message<<EOF'
|
|
cat "${{ matrix.variable }}_message.txt"
|
|
echo EOF
|
|
} >> "$GITHUB_OUTPUT"
|
|
{
|
|
echo 'commit<<EOF'
|
|
cat "${{ matrix.variable }}_commit.txt"
|
|
echo EOF
|
|
} >> "$GITHUB_OUTPUT"
|
|
rm -rfv ${{ matrix.variable }}_message.txt
|
|
rm -rfv ${{ matrix.variable }}_commit.txt
|
|
- name: Create Pull Request
|
|
uses: peter-evans/create-pull-request@v8
|
|
with:
|
|
token: ${{ secrets.UPDATE_BOT_TOKEN }}
|
|
push-to-fork: ci-forks/LocalAI
|
|
commit-message: ':arrow_up: Update ${{ matrix.repository }}'
|
|
title: 'chore: :arrow_up: Update ${{ matrix.repository }} to `${{ steps.bump.outputs.commit }}`'
|
|
branch: "update/${{ matrix.variable }}"
|
|
body: ${{ steps.bump.outputs.message }}
|
|
signoff: true
|
|
|
|
bump-vllm-wheel:
|
|
# vLLM's cu130 wheel comes from a per-tag index URL (no /latest/ alias),
|
|
# so the cublas13 requirements file pins both a URL segment and a version
|
|
# constraint. bump_deps.sh handles git-sha-in-Makefile only — this job
|
|
# rewrites both values atomically when a new vLLM stable tag ships.
|
|
if: github.repository == 'mudler/LocalAI'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- name: Bump vLLM cu130 wheel pin 🔧
|
|
id: bump
|
|
run: |
|
|
bash .github/bump_vllm_wheel.sh vllm-project/vllm backend/python/vllm/requirements-cublas13-after.txt VLLM_VERSION
|
|
{
|
|
echo 'message<<EOF'
|
|
cat "VLLM_VERSION_message.txt"
|
|
echo EOF
|
|
} >> "$GITHUB_OUTPUT"
|
|
{
|
|
echo 'commit<<EOF'
|
|
cat "VLLM_VERSION_commit.txt"
|
|
echo EOF
|
|
} >> "$GITHUB_OUTPUT"
|
|
rm -rfv VLLM_VERSION_message.txt VLLM_VERSION_commit.txt
|
|
- name: Create Pull Request
|
|
uses: peter-evans/create-pull-request@v8
|
|
with:
|
|
token: ${{ secrets.UPDATE_BOT_TOKEN }}
|
|
push-to-fork: ci-forks/LocalAI
|
|
commit-message: ':arrow_up: Update vllm-project/vllm cu130 wheel'
|
|
title: 'chore: :arrow_up: Update vllm-project/vllm cu130 wheel to `${{ steps.bump.outputs.commit }}`'
|
|
branch: "update/VLLM_VERSION"
|
|
body: ${{ steps.bump.outputs.message }}
|
|
signoff: true
|
|
|
|
bump-vllm-metal:
|
|
# The darwin (Apple Silicon) vLLM build installs vllm-metal, which is locked
|
|
# to a specific vLLM source release. install.sh pins both VLLM_METAL_VERSION
|
|
# (the wheel release) and VLLM_VERSION (the vLLM it builds against); this job
|
|
# tracks vllm-project/vllm-metal and rewrites both atomically. Separate from
|
|
# bump-vllm-wheel because darwin follows vllm-metal, not vllm/vllm latest.
|
|
if: github.repository == 'mudler/LocalAI'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- name: Bump vllm-metal pin 🔧
|
|
id: bump
|
|
run: |
|
|
bash .github/bump_vllm_metal.sh vllm-project/vllm-metal backend/python/vllm/install.sh VLLM_METAL_VERSION
|
|
{
|
|
echo 'message<<EOF'
|
|
cat "VLLM_METAL_VERSION_message.txt"
|
|
echo EOF
|
|
} >> "$GITHUB_OUTPUT"
|
|
{
|
|
echo 'commit<<EOF'
|
|
cat "VLLM_METAL_VERSION_commit.txt"
|
|
echo EOF
|
|
} >> "$GITHUB_OUTPUT"
|
|
rm -rfv VLLM_METAL_VERSION_message.txt VLLM_METAL_VERSION_commit.txt
|
|
- name: Create Pull Request
|
|
uses: peter-evans/create-pull-request@v8
|
|
with:
|
|
token: ${{ secrets.UPDATE_BOT_TOKEN }}
|
|
push-to-fork: ci-forks/LocalAI
|
|
commit-message: ':arrow_up: Update vllm-project/vllm-metal (darwin)'
|
|
title: 'chore: :arrow_up: Update vllm-metal (darwin) to `${{ steps.bump.outputs.commit }}`'
|
|
branch: "update/VLLM_METAL_VERSION"
|
|
body: ${{ steps.bump.outputs.message }}
|
|
signoff: true
|