首页/AI/大模型部署与运维速查/LocalAI 本地 OpenAI 替代服务
部署形态与选型43 条

LocalAI 本地 OpenAI 替代服务

LocalAI 用 Go 编写的本地推理服务,兼容 OpenAI API,可挂载多种后端(llama.cpp 等),默认端口 8080,适合需要轻量自托管与多模态接口的实验环境。

LocalAI 是什么

LocalAI 是用 Go 编写的本地推理服务,对外暴露与 OpenAI 兼容的 REST 接口(模型列表、对话补全、嵌入、语音转写等),内部可挂载 llama.cpp、transformers、diffusers 等多种后端。定位是轻量自托管:一个进程同时提供文本、图像、语音能力,消费级硬件甚至纯 CPU 也能跑小模型,业务侧沿用官方 SDK 即可接入。默认监听 8080 端口。

基本信息

实现语言Go(单二进制/单容器分发)
默认端口8080
接口风格OpenAI 兼容(/v1/...)
内置后端llama.cpp、transformers、diffusers 等
模型目录容器内 /models,按目录约定放置
镜像localai/localai:latest(另有 GPU 变体)
硬件门槛CPU 可跑小模型,GPU 非必需

典型使用场景

  • 本地开发联调:业务代码先指向本地兼容接口,把模型服务换成真机时只改 base_url
  • 数据不出内网:文档摘要、客服草稿、内部知识问答在自有机器上推理
  • 多模态小工具:同一进程里同时要文本生成、图像生成与语音转写
  • 模型横向对比:同一套 OpenAI 客户端代码换模型只改 model 字段
  • 无 GPU 环境:开发笔记本或迷你主机上跑量化小模型做功能验证

容器快速启动

容器快速启动
docker run -d --name localai -p 8080:8080 \
  -v $PWD/models:/models \
  localai/localai:latest            # 把宿主模型目录挂进容器
docker logs -f localai              # 启动失败先看日志里的模型加载报错
curl http://127.0.0.1:8080/v1/models   # 确认服务在跑且模型已加载
curl -s http://127.0.0.1:8080/readyz   # 就绪探针:200 才代表可以接流量

OpenAI 客户端直连

OpenAI 客户端直连
from openai import OpenAI                 # 官方 SDK 即可,无需专用客户端
c = OpenAI(base_url="http://127.0.0.1:8080/v1", api_key="local")  # 本地一般不校验 key
r = c.chat.completions.create(
    model="<模型名>",                     # 取值必须与 /v1/models 返回的名字一致
    messages=[{"role": "user", "content": "你好"}],
)
print(r.choices[0].message.content)     # 拿到文本即链路通

常用端点对照

端点用途注意事项
/v1/models列出已加载模型模型没配好时这里为空
/v1/chat/completions对话补全绝大多数业务的入口
/v1/embeddings文本向量需要另行放置嵌入模型
/v1/audio/transcriptions语音转写需要 whisper 类模型
/readyz就绪探针给容器探针与负载均衡用
模型不是丢进 /models 就能用:官方 gallery 采用「模型文件 + 同名 YAML 配置」的目录结构,配置里写清后端类型与参数;只放一个裸 GGUF 常见的结果是进程正常起来但模型列表为空。
与同类工具的定位差别:Ollama 偏单机命令行体验,vLLM 偏 GPU 高并发吞吐,LocalAI 的卖点是「一个服务挂多后端 + 兼容接口 + 可跑 CPU」,适合做功能验证与轻量自建,不建议直接当高并发生产网关。

易错点

  • 模型文件与 YAML 配置不配套:服务能起来但 /v1/models 为空,请求直接 404
  • 容器没挂载 /models:镜像里的空目录被当成模型目录,会误判为模型有问题
  • 把它当生产高并发引擎:单机多后端在并发调度与显存管理上弱于专用推理引擎,先压测再决定
  • 把 api_key 当安全边界:本地服务通常不校验,公网暴露前必须在网关层做认证与限流

数据来源与参考

  • LocalAI 官方文档与仓库(localai.io)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌