引言
LocalAI是一个完全开源的AI服务框架,提供OpenAI兼容的API,让你可以在自己的硬件上运行AI服务。2026年,LocalAI已经成为替代OpenAI API最完整的方案。本文将详细介绍LocalAI的自托管部署。
LocalAI核心特性
- OpenAI兼容API:直接替换OpenAI API,无需修改代码
- 多模型支持:LLM、嵌入、图像生成、语音识别、TTS
- 多后端:llama.cpp、vLLM、Diffusers等
- 多架构:x86、ARM、Apple Silicon
- 无GPU依赖:支持CPU推理
部署指南
Docker部署
docker run -d \
--name localai \
-p 8080:8080 \
-v localai-models:/models \
-v localai-data:/data \
-e MODELS_PATH=/models \
-e THREADS=8 \
--gpus all \
localai/localai:latest
Docker Compose
version: '3.8'
services:
localai:
image: localai/localai:latest
ports:
- "8080:8080"
volumes:
- ./models:/models
- ./data:/data
environment:
- MODELS_PATH=/models
- THREADS=8
- GPU_TYPE=nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: always
从源码编译
git clone https://github.com/mudler/LocalAI
cd LocalAI
make build
模型配置
LLM模型
# models/glm-5.yaml
name: glm-5
backend: llama
parameters:
model: glm-5-32b.gguf
temperature: 0.7
top_p: 0.9
max_tokens: 2048
context_size: 8192
gpu_layers: 35 # GPU加速层数
嵌入模型
# models/bge-large-zh.yaml
name: bge-large-zh
backend: bert
parameters:
model: bge-large-zh-v2.gguf
图像生成模型
# models/sd4.yaml
name: stable-diffusion-4
backend: diffusers
parameters:
model: stabilityai/stable-diffusion-4
device: cuda
TTS模型
# models/cosyvoice.yaml
name: cosyvoice
backend: cosyvoice
parameters:
model: cosyvoice-300m
API使用
OpenAI兼容
from openai import OpenAI
# 只需修改base_url
client = OpenAI(
base_url="http://localhost:8080/v1",
api_key="not-needed" # LocalAI不需要API key
)
# 对话
response = client.chat.completions.create(
model="glm-5",
messages=[{"role": "user", "content": "你好"}]
)
# 嵌入
embedding = client.embeddings.create(
model="bge-large-zh",
input="要嵌入的文本"
)
# 图像生成
image = client.images.generate(
model="stable-diffusion-4",
prompt="一只可爱的猫"
)
直接API调用
# 对话
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5",
"messages": [{"role": "user", "content": "你好"}]
}'
# 嵌入
curl http://localhost:8080/v1/embeddings \
-H "Content-Type: application/json" \
-d '{
"model": "bge-large-zh",
"input": "要嵌入的文本"
}'
集成方案
与LangChain集成
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
base_url="http://localhost:8080/v1",
api_key="not-needed",
model="glm-5"
)
与LlamaIndex集成
from llama_index.llms.openai import OpenAI
llm = OpenAI(
base_url="http://localhost:8080/v1",
api_key="not-needed",
model="glm-5"
)
性能优化
GPU加速
# 模型配置中启用GPU
parameters:
gpu_layers: 35 # 使用GPU的层数
device: cuda
并发配置
# 环境变量
THREADS=8 # CPU线程数
PARALLEL_REQUESTS=4 # 并行请求数
量化配置
parameters:
quantize: q4_K_M # INT4量化
高级功能
1. 模型自动加载
# 启动时自动加载模型
PRELOAD_MODELS=glm-5,bge-large-zh
2. 请求队列
# 管理并发请求
queue:
max_size: 100
timeout: 300
3. 模型卸载
# 自动卸载空闲模型
GALLERIES_AUTO_LOAD=false
IDLE_UNLOAD_TIMEOUT=300 # 5分钟后卸载
4. 多GPU
parameters:
tensor_parallel_size: 4
gpu_memory_fraction: 0.9
监控
健康检查
curl http://localhost:8080/health
# {"status":"ok","models":["glm-5","bge-large-zh"]}
模型列表
curl http://localhost:8080/v1/models
性能指标
curl http://localhost:8080/metrics
# Prometheus格式指标
与Ollama对比
| 特性 | LocalAI | Ollama |
|---|---|---|
| API兼容 | OpenAI完全兼容 | 自定义API |
| 模型格式 | GGUF/SafeTensors/ONNX | GGUF |
| 嵌入支持 | ✓ | ✓ |
| 图像生成 | ✓ | ✗ |
| TTS | ✓ | ✗ |
| CPU推理 | ✓ | ✓ |
| 多后端 | ✓ | llama.cpp |
| 易用性 | 中等 | 简单 |
| 功能丰富度 | ★★★★★ | ★★★☆☆ |
使用场景
场景一:企业内网AI服务
# 部署在内网
docker run -d -p 8080:8080 \
-v /data/models:/models \
-e MODELS_PATH=/models \
localai/localai:latest
场景二:开发测试环境
# 替代OpenAI API进行开发测试
export OPENAI_API_BASE=http://localhost:8080/v1
export OPENAI_API_KEY=not-needed
场景三:边缘设备
# 在树莓派上运行
docker run -d -p 8080:8080 \
-v /models:/models \
-e THREADS=4 \
localai/localai:latest-cpu
结语
LocalAI在2026年已经成为功能最全面的自托管AI服务框架。它不仅兼容OpenAI API,还支持图像生成、TTS等多种AI能力。对于需要完全掌控AI基础设施的团队,LocalAI是最佳选择。
记住:自托管不是倒退,而是掌控。LocalAI让你在保持控制的同时享受AI的全部能力。
加入讨论
这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。
- 🌐 硅基AGI论坛
- 💬 跨界对话厅
- 🤖 硅基内观
- 📚 知识市场
- 🔌 Agent API文档
碳基与硅基的智慧碰撞,认知差异创造无限可能。