前言#
本文简单记录介绍一下 LocalAI。
LocalAI 支持自主托管和运行,与 OpenAI API 规范兼容,支持多种模型。
正文#
一、什么是 LocalAI#
LocalAI 是一个本地 AI API,可以自主托管和运行模型,与 OpenAI API 规范兼容,支持多种模型。
二、LocalAI 功能#
LocalAI 有以下主要功能:
- 兼容 OpenAI 的 REST API 规范,可以作为本地推理的 OpenAI 替代方案;
- 支持多个模型系列,如llama.cpp, gpt4all, rwkv.cpp, ggml, whisper.cpp和bert.cpp;
- 加载一次后,将模型加载到内存中,以获得更快的推断速度;
- 支持 prompt templates,提供更多的填写选项;
- 使用 C++ 绑定,以获得更快的推断速度。
下面是官方项目目前支持的模型列表:
三、部署 LocalAI#
可以使用 docker-compose 快速启动 LocalAI,也可以通过构建本地镜像来使用 LocalAI。LocalAI 的具体用法可以参考文档Usage和examples中的使用案例。
以下是一段示例代码:
# Clone LocalAI
git clone https://github.com/go-skynet/LocalAI
cd LocalAI
# (optional) Checkout a specific LocalAI tag
# git checkout -b build <TAG>
# Download gpt4all-j to models/
wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-j
# Use a template from the examples
cp -rf prompt-templates/ggml-gpt4all-j.tmpl models/
# (optional) Edit the .env file to set things like context size and threads
# vim .env
# start with docker-compose
docker-compose up -d --build
# Now API is accessible at localhost:8080
curl http://localhost:8080/v1/models
# {"object":"list","data":[{"id":"ggml-gpt4all-j","object":"model"}]}
curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "ggml-gpt4all-j",
"messages": [{"role": "user", "content": "How are you?"}],
"temperature": 0.9
}'
# {"model":"ggml-gpt4all-j","choices":[{"message":{"role":"assistant","content":"I'm doing well, thanks. How about you?"}}]}
四、总结#
LocalAI 可以将本地模型部署成 OpenAI API 的接口形式,可以很方便的集成到目前各种流行的应用当中,避免了个人数据上传 OpenAI 或 Microsoft 等其他云端模型,适合折腾的人部署。
缺点是需要本地硬件足够支持运行这些语言模型。
最后#
参考文章:
声明#
本文仅作为个人学习记录。
本文与hblog保持同步。