LocalAI替代OpenAI:本地AI项目推荐排行榜
在本地跑AI大模型,一定要依赖昂贵的GPU吗?答案可能跟你想的不太一样。今天要聊的这个项目——LocalAI,就能让你在完全没有显卡、只靠CPU的情况下,顺畅地运行各种离线AI模型。而且最关键的是,它还能完美替代OpenAI的API,直接对接你本地的浏览器界面,实现私有化部署。
系统部署前的准备
正式开始之前,先新建一个文件夹,用来存放模型文件。本文实例中,我们在 /volume1/docker/localai 下创建了一个名为 models 的子目录。这个路径后面会反复用到,建议直接记下来。
一、下载模型
把下载好的模型文件放进刚才新建的 models 文件夹。模型去哪找?首选当然是抱脸虫(Hugging Face),不过国内用户访问可能需要一点特殊手段。如果不方便,可以用 Hugging Face 的镜像站 hf-mirror,下载速度会更友好一些。
二、docker-compose.yaml 配置
在刚才的项目文件夹下,新建一个 docker-compose.yaml 文件,把下面的配置代码复制进去。这里有几个关键点需要留意:THREADS 代表线程数,可以根据你CPU的实际情况调整;CORS=true 必须开启,否则后续API调用会出问题;而 CORS_ALLOW_ORIGINS=* 则是允许跨域访问的白名单设置。
version: "3.6"
services:
api:
image: quay.io/go-skynet/local-ai:master-ffmpeg-core
ports:
- 56787:8080
environment:
- MODELS_PATH=/models
#- DEBUG=true
- CORS=true
- CORS_ALLOW_ORIGINS=*
- THREADS=4
volumes:
- /volume1/docker/localai/models:/models:cached
networks: {}
三、部署方式:SSH(推荐)
如果你习惯用命令行,推荐走SSH部署。通过 Finalshell 或其他 SSH 工具登录到你的 NAS 系统,依次执行以下两条指令:
# 来到项目文件夹 cd /volume1/docker/localai/ # 启动容器(注意:需要管理员密码) sudo docker-compose up -d
搞定之后,容器就在后台跑起来了。
四、群晖部署(DSM 7.2)
对于群晖用户,操作同样直观:打开 Container Manager,选择“项目”,点击“新建”,然后直接选中刚才的 localai 路径,系统会自动识别 docker-compose.yaml,一路点击“下一步”即可完成部署。
五、威联通部署
威联通的用户则打开 Container Station,选择“创建应用程序”,把上面那段 docker-compose.yaml 代码复制进去,验证通过后直接部署。
系统使用
部署完成后,怎么验证是否正常运行?搞懂下面这几个操作,就能玩起来了。
一、查询现有模型
LocalAI 提供了两种查询已加载模型的方式。第一种最直接:在浏览器中访问 http(s)://ip:port/v1/models,页面会返回一个JSON列表,所有可用的模型一目了然。
第二种则适用于命令行爱好者:在终端执行 curl http(s)://localhost:port/v1/models,效果一样。
二、API 使用方案
调用模型也很简单,用一个 POST 请求就能搞定。举个例子:
curl http://localhost:56787/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "phi-2.Q8_0.gguf",
"prompt": "A long time ago in a galaxy far, far away",
"temperature": 0.7
}'
注意几个关键参数:model 要填的是你在 models 文件夹里存放的具体模型文件名;prompt 就是你输入给AI的提示语;temperature 控制输出的创造力,默认0.7,数值越大越“放飞”。
请求返回的结果,就是模型顺着你给的文本继续生成的内容,效果立竿见影。
三、与 ChatGPT-Next-Web 对接
如果你喜欢用 ChatGPT-Next-Web 这类前端界面,LocalAI 也能无缝接入。只需要在自定义接口地址里填上 http://ip:port(注意,不需要加 /v1/completions 路径),然后选择你下载好的模型,比如 phi-2.Q8_0.gguf。
在新对话设置中,选好模型后,还可以进一步调整随机性、新鲜度等参数。整个过程跟用官方 OpenAI API 几乎一样,但数据完全留在了本地,隐私和安全性都更有保障。