LocalAI:无需GPU在本地跑起LLM、语音与图像模型的开源AI引擎
【免费下载链接】LocalAILocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.项目地址: https://gitcode.com/GitHub_Trending/lo/LocalAI
如果你想在自家服务器上部署一套"类 OpenAI"的 AI 服务,LocalAI 是目前门槛较低的选择之一:它是一个开源 AI 引擎,一个核心加按需拉取的后端,能在纯 CPU 或消费级硬件上运行 LLM、图像、视频、语音等多模态模型,并直接提供 OpenAI / Anthropic / ElevenLabs 兼容的 REST API。数据不出内网,也不产生按 token 计费。
本地模型服务的痛点,LocalAI 如何解决
把模型跑在本地,通常要面对三件事:
- 环境复杂:llama.cpp、vLLM、whisper.cpp、Stable Diffusion 各是一套依赖,逐个装会消耗大量时间;
- API 不统一:每接入一种能力(文本、图像、语音),就要适配一套不同的调用方式;
- 数据外发顾虑:企业或隐私敏感场景下,请求不能离开自己的机器。
LocalAI 的解法是把"能力"和"入口"拆开:
| 问题 | LocalAI 的做法 |
|---|---|
| 后端依赖重 | 核心是一个小二进制(或容器),llama.cpp、vLLM、whisper.cpp、MLX 等引擎各自打包成独立 OCI 镜像,只在真正加载对应模型时才拉取,后端实现代码 均独立维护 |
| 调用方式碎片化 | 统一暴露/v1/chat/completions、/v1/images/generations、/v1/audio等 OpenAI 风格端点,现有 OpenAI SDK 改个 base URL 即可接入 |
| 模型来源分散 | 模型可从内置模型库、Hugging Face、Ollama 注册表或 YAML 配置导入,gallery/ 目录下是全部可用模型的清单与量化变体 |
它还有两个常被忽略的附加能力:内置 Web 界面(聊天、模型管理、代理配置、系统监控一站式完成),以及多用户支持(API Key 鉴权、用户配额、角色控制),这意味着它既能给一个人当本地工具箱,也能给一个小团队当内部 AI 网关。
小核心 + 插件式后端:LocalAI 的架构思路
理解 LocalAI 只需要记住一句话:核心很小,后端是插上去的。
具体来说:
- 每个后端是一个独立的 gRPC 服务进程,围绕某个成熟引擎构建(比如 llama.cpp 负责文本生成,whisper.cpp 负责语音转写);
- 后端可以单独安装、升级、移除,甚至部署到另一台机器上,单个后端故障不会影响核心和其他服务;
- 后端契约只是一份简单的 gRPC 接口(见 backend.proto),所以你可以用任意语言写自己的后端插进来。
这种设计的直接好处:装了什么就跑什么,镜像体积和内存占用都只与你要用的能力相关,而不是与"全家桶"相关。
CPU 上 3 步跑起 LocalAI
推荐路径是容器。一条命令启动(纯 CPU 镜像,无需任何 GPU 参数):
docker run -ti --name local-ai -p 8080:8080 localai/localai:latest然后打开http://localhost:8080,你会看到 Web 界面。接着在 Models 页面安装一个小模型,官方快速上手文档(quickstart.md)建议从qwen3-4b这类 CPU 友好、支持工具调用的小模型开始,装好即可在 Chat 页面直接对话。
如果你习惯命令行,也可以用内置 CLI 从模型库直接拉起模型并开聊:
local-ai run qwen3-4b local-ai chat --model qwen3-4b其他模型来源同样是一条local-ai run:huggingface://指 GGUF 文件、ollama://指 Ollama 注册表、oci://指 OCI 镜像、https://...yaml指模型配置文件。需要源码参与时再执行git clone https://gitcode.com/GitHub_Trending/lo/LocalAI获取仓库(仓库为只读参考)。
能力清单与边界:它能跑什么、不能跑什么
能跑什么——项目文档(overview.md)列出的完整能力面:
- 文本生成:llama.cpp、vLLM、SGLang、transformers、MLX 等 60+ 后端,支持函数调用、受约束语法(grammar)、结构化输出;
- 音频:TTS(Kokoro、Piper、MOSS-TTS 等)、ASR 转写(whisper.cpp、parakeet.cpp)、说话人分离、实时语音对话(Realtime API + WebRTC);
- 图像与视频:Stable Diffusion、Flux 等图像生成,LTX-2 / WAN 视频生成,目标检测与图像理解;
- 嵌入与重排:embeddings、reranker 端点,配套内置向量库 local-store;
- 代理:内置自治 Agent,支持 MCP 工具、RAG、技能,可在 UI 里直接创建(services/agents)。
边界在哪里——几点务实的提醒:
- CPU 推理速度有限:小模型(1B–8B 量化版)在普通服务器上可日常使用,70B 级别模型在纯 CPU 下延迟会很高,大模型场景建议配 GPU 镜像;
- 不是云端算力:它解决的是"在自己的硬件上按自己的条件跑",吞吐上限取决于你的机器,横向扩展要用它自带的分布式模式(PostgreSQL + NATS 的 worker 集群,见 services/distributed);
- 对外暴露需要防护:官方明确建议远程部署时至少设置
LOCALAI_API_KEY,多用户场景开启LOCALAI_AUTH=true启用角色与配额。
从加载模型到接入应用:一条典型工作流
一个比较完整的落地过程大致是这样:
起服务:
docker run启动 CPU 或 GPU 镜像,确认http://localhost:8080可访问;选模型:在 Web 界面的 Models 页按类型(文本生成 / TTS / 图像 / 嵌入)和标签(cpu、gguf、function-calling 等)筛选,点击安装;或
local-ai models install <name>;验证:在 Chat 页面发一条消息,或用最短的 API 调用确认:
curl http://localhost:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"qwen3-4b","messages":[{"role":"user","content":"你好"}]}'这条请求返回的就是标准 OpenAI 格式,换 SDK、换语言都不需要改协议。
接应用:把现有 OpenAI 客户端的 base URL 指向
http://<主机>:8080即可;需要语音、图像生成时,对应的/v1/audio/...、/v1/images/...端点也是同一风格。加能力(可选):装 TTS/ASR 后端做多模态、创建 Agent 挂 MCP 工具、开启分布式模式扩容。
选型建议:按硬件选镜像,按场景选模型
硬件与镜像的对应关系(摘自 containers.md):
| 硬件 | 镜像 |
|---|---|
| 纯 CPU | localai/localai:latest |
| NVIDIA(CUDA 12/13) | localai/localai:latest-gpu-nvidia-cuda-12/13(加--gpus all) |
| AMD(ROCm) | localai/localai:latest-gpu-hipblas |
| Intel GPU | localai/localai:latest-gpu-intel |
| Vulkan | localai/localai:latest-gpu-vulkan |
| Apple Silicon | 支持 MLX 系列后端,macOS 有独立 DMG/Launcher |
几点选择建议:
- 个人开发机 / 笔记本:纯 CPU 镜像 + 4B 以下量化模型,优先体验 API 兼容性与工作流,别急着上大模型;
- 团队内部服务:NVIDIA 镜像 + vLLM 或 llama.cpp 后端跑 7B–70B,开启 API Key 与配额,作为私有 AI 网关;
- 多机 / 边缘设备:用分布式模式或 P2P 联邦推理把模型拆到多台机器上,services/nodes 里是节点管理的实现;
- 需要私有后端:对照 后端目录 用 gRPC 契约实现自己的推理服务,接入方式与内置后端完全一致。
动手前检查清单
开始之前过一遍这五项:
- 确认硬件档位:纯 CPU 可跑小模型;7B+ 模型建议 GPU;
- 端口 8080 空闲,容器运行时(Docker / Podman)可用;
- 明确了要暴露还是内网使用——远程访问记得配
LOCALAI_API_KEY或LOCALAI_AUTH; - 挑好第一个模型(官方建议
qwen3-4b这类小且支持工具调用的模型); - 预留模型下载空间与带宽,量化版(q4/q8)比全精度省数倍磁盘。
下一步就是执行第一条docker run,装一个模型,发第一句对话。跑通之后,再按能力清单逐项接入你的应用。
【免费下载链接】LocalAILocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.项目地址: https://gitcode.com/GitHub_Trending/lo/LocalAI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考