mudler / LocalAI

mudler/LocalAI

open_in_new前往仓库

LocalAI 是开源 AI 引擎,可在任何硬件上运行任意模型(LLM、视觉、语音、图像、视频),无需 GPU。

项目概览

项目概述

LocalAI 是一个开源的 AI 引擎,旨在让用户在任何硬件上运行各种 AI 模型,包括大语言模型(LLM)、视觉、语音、图像和视频模型,且无需 GPU。它采用模块化架构,核心是一个轻量级二进制文件,通过按需拉取独立的推理后端(如 llama.cpp、vLLM、whisper.cpp 等)来支持不同模型。LocalAI 提供与 OpenAI、Anthropic 和 ElevenLabs API 兼容的接口,支持多用户认证、内置 AI 代理、RAG、MCP 等功能,并强调隐私保护,数据可完全留在用户自己的基础设施中。

核心功能

  • 多模态支持:文本生成、语音识别(ASR)、文本转语音(TTS)、图像生成、视频生成、3D 生成、目标检测、人脸识别等。
  • API 兼容:提供 OpenAI、Anthropic、ElevenLabs 兼容的 API,可无缝替换现有应用。
  • 模块化后端:支持 60+ 后端,按需安装,无需安装不需要的组件。
  • 硬件加速:支持 NVIDIA CUDA、AMD ROCm、Intel oneAPI、Apple Silicon Metal、Vulkan 等,也支持纯 CPU 运行。
  • 内置 AI 代理:支持自主代理、工具调用、RAG、MCP、技能系统,可通过 WebUI 或 API 管理。
  • 多用户与认证:支持 API 密钥、用户配额、基于角色的访问控制。
  • 分布式推理:支持 P2P 和分布式模式,可水平扩展。
  • 模型管理:内置模型画廊,可一键安装模型,支持从 Hugging Face、Ollama 等导入。
  • WebUI:提供完整的 Web 界面,用于模型管理、聊天、配置等。

适用与不适用场景

适用场景:

  • 希望在本地或私有云中运行 AI 模型,注重数据隐私的用户。
  • 需要在不具备 GPU 的硬件上运行 AI 模型的场景。
  • 希望使用 OpenAI 兼容 API 但不想依赖云服务的开发者。
  • 需要多模态能力(文本、语音、图像、视频)的统一 API 平台。
  • 需要构建自主代理、RAG 应用或 MCP 集成的开发者。

不适用场景:

  • 需要超大规模模型(如数千亿参数)且对性能要求极高的场景,可能不如专用云服务。
  • 需要官方技术支持的企业级部署,LocalAI 是社区驱动项目。
  • 对模型推理延迟有极致要求的场景,本地硬件可能不如云端 GPU 集群。

技术架构与依赖

LocalAI 采用 Go 语言编写,核心是一个轻量级二进制文件,通过 gRPC 与各个后端通信。后端是独立的可执行文件或容器镜像,按需下载。主要依赖包括:

  • Go 1.21+(项目当前使用 Go 1.26)
  • C/C++ 工具链(用于编译原生后端)
  • Protocol Buffers(用于 gRPC 代码生成)
  • ffmpeg(用于音频/视频处理)
  • 可选:CUDA、ROCm、oneAPI、Vulkan 等 GPU 驱动

后端引擎包括 llama.cpp、vLLM、whisper.cpp、stable-diffusion、MLX 等,每个后端封装在独立镜像中。

安装与快速开始

使用 Docker(推荐)

# CPU 版本
docker run -ti --name local-ai -p 8080:8080 localai/localai:latest

# NVIDIA GPU 版本
docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-gpu-nvidia-cuda-13

使用命令行工具

# 安装 CLI(macOS 可下载 DMG)
# 运行模型
local-ai run llama-3.2-1b-instruct:q4_k_m

从源码构建

git clone https://github.com/mudler/LocalAI.git
cd LocalAI
make build
./local-ai

典型使用方法

加载模型

# 从模型画廊
local-ai run llama-3.2-1b-instruct:q4_k_m
# 从 Hugging Face
local-ai run huggingface://TheBloke/phi-2-GGUF/phi-2.Q8_0.gguf
# 从 Ollama 注册表
local-ai run ollama://gemma:2b

调用 API

# 聊天补全
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "llama-3.2-1b-instruct", "messages": [{"role": "user", "content": "Hello"}]}'

# 音频转录
curl http://localhost:8080/v1/audio/transcriptions \
  -H "Content-Type: multipart/form-data" \
  -F file="@audio.wav" -F model="whisper-1"

使用内置代理

# 启动代理聊天
local-ai chat --model llama-3.2-1b-instruct:q4_k_m

配置与部署要点

  • 环境变量:LocalAI 主要通过环境变量配置,如 LOCALAI_MODELS_PATH、LOCALAI_API_KEY、LOCALAI_THREADS 等。
  • 模型配置:使用 YAML 文件定义模型参数、后端、模板等,可放在 models 目录或通过 URL 指定。
  • GPU 加速:根据硬件选择对应的 Docker 镜像,并设置 gpu_layers 等参数。
  • 反向代理:支持通过 Nginx、HAProxy 等配置 HTTPS 和子路径。
  • VRAM 管理:支持 LRU 淘汰、并发组、看门狗等机制,自动管理模型内存。
  • 分布式部署:支持 PostgreSQL + NATS 的分布式模式,可水平扩展。
  • 认证:可配置 API 密钥、OIDC 等。

限制、风险与许可证

  • 许可证:MIT 许可证,由 Ettore Di Giacinto 创建,社区维护。
  • 风险:模型下载可能来自不可信来源,存在安全漏洞风险;社区驱动,无官方支持。
  • 限制:VRAM 估算不精确;某些后端可能不支持所有硬件;SYCL 后端存在 mmap 挂起问题。

官方链接

信息来源和分析时间

  • 信息来源:GitHub 仓库 README、文档、CONTRIBUTING.md 等。
  • 分析时间:2026-08-07(基于最新发布 v4.8.2)。