零基础入门:Rocky Linux 9系统安装LocalAI详细步骤

云信安装大师
90
AI 质量分
10 5 月, 2025
3 分钟阅读
0 阅读

零基础入门:Rocky Linux 9系统安装LocalAI详细步骤

引言

LocalAI是一个开源项目,它允许你在本地运行类似OpenAI的API服务,使用开源的大型语言模型(LLM)。本文将详细介绍如何在Rocky Linux 9系统上安装和配置LocalAI,让你能够在不依赖云服务的情况下运行自己的AI模型。

准备工作

在开始之前,请确保你的系统满足以下要求:

  • Rocky Linux 9已安装并更新到最新版本
  • 至少16GB RAM(运行大型模型需要更多内存)
  • 50GB以上可用磁盘空间
  • 具备sudo权限的用户账户
  • 稳定的网络连接

第一步:系统更新与依赖安装

首先,我们需要确保系统是最新的,并安装必要的依赖项。

代码片段
# 更新系统
sudo dnf update -y

# 安装基础开发工具和依赖
sudo dnf groupinstall "Development Tools" -y
sudo dnf install cmake git wget openssl-devel bzip2-devel libffi-devel -y

注意事项
Development Tools组包含GCC编译器和其他构建工具,是编译软件的基础
libffi-devel是Python扩展模块需要的库

第二步:安装Go语言环境

LocalAI是用Go语言编写的,因此我们需要先安装Go环境。

代码片段
# 下载最新版Go(请检查https://go.dev/dl/获取最新版本)
wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz

# 解压到/usr/local目录
sudo tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz

# 设置环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
source ~/.bashrc

# 验证安装
go version

原理说明
– Go语言是LocalAI的后端实现语言,我们需要它来编译和运行LocalAI
– GOPATH环境变量告诉Go在哪里查找和存储代码库

第三步:克隆LocalAI仓库并构建

现在我们可以获取LocalAI源代码并进行构建。

代码片段
# 克隆仓库(使用国内镜像加速)
git clone https://github.com/go-skynet/LocalAI.git --depth=1

# 进入项目目录
cd LocalAI

# 构建项目(这可能需要一些时间)
make build

实践经验
--depth=1参数只克隆最新的提交,减少下载量
make build会编译所有必要的组件,包括前端和后端
– 如果遇到网络问题,可以尝试设置GOPROXY:export GOPROXY=https://goproxy.cn

第四步:下载模型文件

LocalAI本身不包含模型,我们需要单独下载所需的模型文件。

代码片段
# 创建模型目录并进入
mkdir -p models && cd models

# 下载一个示例模型(这里使用较小的ggml-gpt4all-j模型)
wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O ggml-gpt4all-j.bin

# 返回上一级目录
cd ..

注意事项
– ggml-gpt4all-j.bin是一个约3.8GB的英文语言模型文件
– 你可以根据需要选择其他兼容的GGML格式模型文件
– Large Language Models (LLMs)通常很大,确保你有足够的磁盘空间

第五步:配置LocalAI服务

创建配置文件以指定我们想要使用的模型。

代码片段
# 复制示例配置文件模板到models目录下并编辑它:
cp -rf prompt-templates/ models/
cp examples/configurations/gpt4all-j.yaml models/

# (可选)编辑配置文件以匹配我们的设置:
nano models/gpt4all-j.yaml

典型的配置文件内容如下:

代码片段
name: gpt4all-j # model name to display in API responses 
backend: llama # backend to use (llama, gpt2, gptj, etc.)
context_size: 512 # context size for the model 
f16: true # use float16 precision if supported 
gpu_layers: # number of layers to offload to GPU (if any)
model: ggml-gpt4all-j.bin # model file name in the models directory 
prompt_template: "### Human:
%[1]s 
### Assistant:
" # template for prompts 
threads: # number of threads to use (default is auto)

第六步:启动LocalAI服务

现在我们可以启动LocalAI服务了。

代码片段
# LocalAI默认监听8080端口启动服务(在后台运行)
./local-ai --models-path ./models &

验证服务是否正常运行:

代码片段
curl http://localhost:8080/v1/models | jq .

你应该看到类似以下的输出:

代码片段
{
    "object": "list",
    "data": [
        {
            "id": "gpt4all-j",
            "object": "model",
            "owned_by": "localai"
        }
    ]
}

注意事项
jq是一个JSON处理工具,如果没有安装可以运行sudo dnf install jq -y
– LocalAPI默认监听8080端口,确保该端口没有被其他程序占用

第七步:测试API功能

让我们测试一下API是否能正常工作:

代码片段
curl http://localhost:8080/v1/completions \
-H "Content-Type: application/json" \
-d '{
     "model": "gpt4all-j",
     "prompt": "The capital of France is",
     "temperature": 0.7,
     "max_tokens":24,
     "stream": false,
     "top_p":1,
     "frequency_penalty":0,
     "presence_penalty":0,
     "stop":[".", "\n"]
   }' | jq .

预期会得到类似这样的响应:

代码片段
{
    "id":"cmpl-b3b3b3b3b3b3b3b3",
    "object":"text_completion",
    "created":1680000000,
    "model":"gpt4all-j",
    "choices":[
        {
            "text":" Paris.",
            ...
        }
    ],
    ...
}

(可选)第八步:设置系统服务(长期运行)

为了让LocalAI在系统启动时自动运行并保持稳定运行状态:

代码片段
# 创建systemd服务文件 
sudo nano /etc/systemd/system/localai.service 

添加以下内容:

代码片段
[Unit]
Description=Local AI Service 
After=network.target 

[Service]
User=$USER 
WorkingDirectory=/path/to/LocalAI 
ExecStart=/path/to/LocalAI/local-ai --models-path /path/to/LocalAI/models 
Restart=always 

[Install] 
WantedBy=multi-user.target 

替换$USER为你的用户名和正确的路径后执行:

代码片段
sudo systemctl daemon-reload 
sudo systemctl enable localai.service 
sudo systemctl start localai.service 

#检查状态  
sudo systemctl status localai.service  
journalctl -u localai.service -f  

FAQ常见问题解决

Q1: API请求返回404错误

A:
1.确认models目录下有正确的配置文件和模型文件
2.检查启动命令是否正确指定了–models-path参数

Q2: API响应非常慢

A:
1.尝试减小模型的上下文大小(context_size)
2.增加threads参数使用更多CPU线程

Q3: GPU加速支持

A:
目前支持CUDA加速,需要额外配置NVIDIA驱动和CUDA工具包

Q4:内存不足错误

A:
1.尝试更小的模型文件(如ggml-model-q4_0.bin等量化版本)
2.增加swap空间或物理内存

总结

通过以上步骤,我们成功在Rocky Linux9上完成了:
✓ Local AI环境的搭建
✓ Go语言的安装配置
✓ Local AI服务的编译部署
✓ AI模型的下载与加载
✓ API接口的测试验证

现在你可以基于这个本地部署的Open AI兼容API开发自己的应用了!下一步可以尝试:
•加载更大的中文或专业领域模型
•开发基于此API的Web应用或聊天机器人
•探索RAG(检索增强生成)等高级应用场景

原创 高质量