Linux从零部署本地AI大模型对接本地知识库全记录

使用到的工具

  • docker
  • oneapi + fastgpt
  • ollama

安装docker

已安装有docker的话跳过这一步

执行命令安装docker(一行一行执行)

bash 复制代码
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker

执行命令安装docker-compose(速度会比较慢)

bash 复制代码
curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

如果github很慢可以把地址替换成镜像站

bash 复制代码
curl -L https://hub.nuaa.cf/docker/compose/releases/download/v2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

等待安装结束后,执行命令启动docker sudo systemctl start docker

输入命令docker -vdocker-compose -v,若出现版本号信息则说明docker已经安装成功

安装fastgpt

fastgpt文档:doc.fastai.site/docs/

fastgpt官网提供了多种部署方式,这里我们选择使用Docker Compose快速部署

创建一个文件夹,然后进入这个文件夹,然后下载两个文件

js 复制代码
mkdir /usr/local/fastgpt
cd /usr/local/fastgpt/
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/files/deploy/fastgpt/docker-compose.yml
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json

执行命令启动容器(第一次启动会先下载所有镜像)

js 复制代码
docker-compose up -d

配置oneapi

我们先不使用本地大模型,先使用第三方提供的线上版本

去【零一万物】注册一个账号,因为零一万物注册就送额度,不需要充钱,我们先拿它来做测试。

到api key管理页面获取一个key,这个key保存好后面要用到。 浏览器进入http://ip:3001 然后点击右上角登录

用户名:root;密码:123456,点击绿色登录 第一次登录会提示需要修改密码,可以不管它,直接点击上方导航栏的【渠道】 点击添加新渠道 填写相关信息 再点顶部导航栏【渠道】按钮,回到渠道列表页面

点击【测试】按钮,右上角出现成功提示,则说明配置成功了

修改config.json

oneapi配置成功后,接下来就是去fastgpt测试使用了,但是在这之前,需要修改之前下载的两个文件中的config.json文件,才能生效。

找到llmModels字段,上面已经存在了几个配置,我们在后面复制粘贴一个,然后把model和name两个字段改成刚在oneapi上配置的,看图:

改完后保存,然后重启服务:

复制代码
docker-compose down
docker-compose up -d

配置fastgpt

浏览器进入http://ip:3000 ,进入fastgpt登录页面

账号root,密码1234,点击登录

创建一个新应用 模型选择零一万物,这个零一万物就是刚才在config.json中配置出来的 点击【保存并预览】按钮,然后就可以对话了

安装ollama

ok,使用线上第三方平台的大模型已经成功了,现在开始部署本地大模型来测试

进入ollama官网ollama.com/ 点击下载,下载自己系统的安装包,可以看到linux已经准备好命令了

直接使用官网给的命令下载curl -fsSL https://ollama.com/install.sh | sh

ollama默认绑定的是127.0.0.1:11434,内网其他机器是无法访问的,需要修改环境变量,打开/etc/systemd/system/ollama.service文件,修改Environment的值为:"OLLAMA_HOST=0.0.0.0"

保存,然后重启ollama服务

复制代码
systemctl daemon-reload
systemctl restart ollama

重启好后,在浏览器进入地址:http://ip:11434 看到如下界面说明ollama已经安装并且配置成功

在ollama中安装大模型

在ollama官网右上角可以搜索你想要的大模型,我搜索【qwen】,进入模型详情页后,可以选择版本,这里我选择了最低的版本,你们可以根据你们的服务器情况选择合适的版本,右边已经给出了下载模型的命令,复制执行。

模型下载好后会自动进入,这时候就可以进行对话了,按ctrl+D退出

将本地模型接入oneapi中

浏览器进入http://ip:3001 刚才有操作过的,新建一个渠道,填写相关内容

  • 模型一栏选择【ollama】
  • 名称随便写
  • 模型这里要注意,首先先点击【清除所有模型按钮】,把自动填充的模型清除掉,然后在右侧输入框手动输入ollama里下载的模型名称,这个模型名称可以通过ollama list命令得到,名称一定要写完全一致,然后点击右侧【填入按钮】

继续填写:

  • 密钥:sk-key(固定写死就填这个)
  • 代理:http://ip:11434 (就是本地安装的ollama的地址)

点击提交,然后再回到渠道列表页,点击测试刚新添加的模型,右上角出现成功提示

接下来的步骤和之前测试零一万物时的步骤就一样了:

  1. 在config.json中新添加一个配置
  2. 重启服务
  3. 在fastgpt中新建应用
  4. 在这个应用中选择新添加的模型
  5. 点击【保存并预览】按钮
  6. 然后就可以在fastgpt中与本地的大模型对话了

安装m3e向量模型,接入本地知识库

与本地模型进行对话已经实现了,现在需要将大模型对接到本地的知识库,那么就要安装向量模型

使用docker安装,下载时间会比较长:

arduino 复制代码
docker run registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest

在oneapi中新建渠道,类型选择OpenAi,名称随便写,模型手动填入"m3e",密钥写【sk-aaabbbcccdddeeefffggghhhiiijjjkkk】,代理写【http://ip:6008

完成后去config.json中增加一个向量模型配置,这次和之前的不一样了,之前都是在llmModels里加的,向量模型需要加在vectorModels里;并且需要把之前新增的本地qwen模型中的datasetProcess改为true,这样在后续fastgpt中知识库中才能选到这个模型。

重启服务后,进入fastgpt,知识库中新建一个知识库,索引模型选择刚新建的向量模型m3e,文件处理模型选择之前在ollama里安装的模型,然后点击【确认创建】按钮

会默认有一个【手动录入】的文件夹,我们进这个文件夹手动录入一个数据测试

回到应用里,关联上这个知识库,然后点击【保存并预览】

就可以进行对话了,问一些刚才在知识库里相关的问题

也可以往知识库里上传一份文档让它分析 上传后等待索引完成,就可以回应用里问问题了

可以看到目前回答的还不太理想,后续可以在fastgpt中进行详细调教,或者更换其他语言模型测试

相关推荐
许白掰1 小时前
Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件
linux·运维·服务器·前端·学习·编辑器
longze_75 小时前
Ubuntu连接不上网络问题(Network is unreachable)
linux·服务器·ubuntu
Dirschs5 小时前
【Ubuntu22.04安装ROS Noetic】
linux·ubuntu·ros
qianshanxue116 小时前
ubuntu 操作记录
linux
AmosTian8 小时前
【系统与工具】Linux——Linux简介、安装、简单使用
linux·运维·服务器
这我可不懂11 小时前
Python 项目快速部署到 Linux 服务器基础教程
linux·服务器·python
车车不吃香菇11 小时前
java idea 本地debug linux服务
java·linux·intellij-idea
tan77º11 小时前
【Linux网络编程】Socket - TCP
linux·网络·c++·tcp/ip
EdisonZhou11 小时前
多Agent协作入门:群组聊天-AgentGroupChat
llm·aigc·.net core
kfepiza12 小时前
Linux的`if test`和`if [ ]中括号`的取反语法比较 笔记250709
linux·服务器·笔记·bash