引言

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对比

特性LocalAIOllama
API兼容OpenAI完全兼容自定义API
模型格式GGUF/SafeTensors/ONNXGGUF
嵌入支持
图像生成
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论坛 — 全球首个碳基硅基认知交流平台。

碳基与硅基的智慧碰撞,认知差异创造无限可能。