最近找工作,微信上hr问我做一个AI客服聊天这么个东西,所以最近几天就研究了一下这方面,还真给我捣鼓了点成果出来:一个能在本地运行的AI小助手,可以对接自己喜欢的大模型,还能导入知识库(比如员工手册,商品手册,论文等),然后让AI根据知识库来回答自己的问题,成果如下图,知识库是自己随手写的一个文具店商铺的txt文件。在这里写一篇文章给大家分享一下搭建过程。
一. 准备工作: 需要准备好linux环境并安装docker-compose
(这一步是给使用windows的同学看的,linux环境的同学可以跳过,记得安装一下docker-compose就行)
- 下载docker-desktop并安装 www.docker.com/products/do…,这样自己的电脑就有dokcer和docker-compose了,命令行里输入docker-compose -v可以查看版本。
- 开启windows的wsl功能,开启后在powershell中输入wsl -l可以查看版本,说明开启成功
- 在powershell中输入wsl –set-default-version 2,将WSL2设置为安装新linux发行版时的默认版本
- 在应用商店搜索ubuntu,随便挑一个安装,我下载的是22.04.3LTS版本
- 安装完毕后,打开开始菜单搜索ubuntu就能看到刚刚安装的那个ubuntu了,点击就能进入到linux系统的命令行
二. 安装ollama大模型框架
ollama是一个AI大模型框架,我们可以通过ollama下载市面上的开源大模型到本地,并且可以运行模型,和AI对话,详细可以看官网Ollama。下面介绍一下安装和使用步骤:
- 在linux系统的命令行中输入curl -fsSL ollama.com/install.sh | sh 就能自动下载并安装好ollama,安装完成后输入ollama list可以查看已经下载的大模型列表,一开始应该是空的
- 通过ollama下载自己喜欢的大模型,可以在官网右上方的models里面看到大模型列表和安装命令,我这里是安装了千问大模型,安装命令是 ollama run qwen2:7b
- 安装完之后这一步就结束了,这时你的本地已经有一个大模型了,你可以在命令行里面和大模型对话,问一些问题。
三. 通过docker-compose运行启动oneapi和fastgpt
-
创建fastgpt文件夹,把fastgpt的docker-compose.yml文件和config.json文件放进去。这两份文件的下载链接可以去fastgpt的官方部署文档里找到Docker Compose 快速部署 | FastGPT,如图所示:
文件下载好后直接放到fastgpt目录下即可,如图所示,在此电脑的左侧下面可以进入到linux系统,然后进入到root目录,里面有个fastgpt文件夹,把下载好的文件复制进去就行。
-
运行docker-compose pull拉取镜像,这一步需要梯子。如果没有梯子的话,在docker-compose.yml文件里会看到每一个image镜像下面都有个被注释的阿里云镜像,把所有阿里云镜像的注释放开,之前的镜像注释掉,就可以不用梯子下载好镜像了。
-
安装好后运行docker-compose up -d,就把oneapi和fastgpt启动起来了
-
安装M3E向量模型,运行docker run -d -p 6008:6008 –name=m3e-large-api registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest
-
访问localhost:3001进入到oneapi页面,点击上方的渠道,页面里会看到”添加新的渠道按钮”,在这里我们需要把刚刚安装好的千问大模型和M3E向量模型都添加进去。具体的表单填法如图所示:
这张图是添加千问大模型的,11434是ollama对外暴露的端口,ollama会帮我们去调用大模型
这张图是添加M3E向量模型的,这个6008端口就是刚刚安装M3E的docker对外暴露的端口
-
添加好模型后,在页面上方有个令牌,点击进入到令牌页面,点击”添加新的令牌”,名字随便起,里面选择永不过期和设为无限额度,然后保存。保存完毕返回,在列表页可以看到自己刚刚添加好的令牌,右边有个复制按钮,点击复制,就把这个令牌复制到粘贴板了。
-
带着复制的令牌,打开fastgpt目录下的docker-compose文件,用编辑器打开,在里面找到CHAT_API_KEY,把等号后面的值换成刚刚复制下来的令牌:
-
打开fastgpt目录下的config.json文件,用编辑器打开,然后在文件里的llmModels下面把千问大模型添加进去。文件里有一些其他模型的配置,复制一个配置然后把model和name修改为qwen2:7b即可
文件里面还有个vectorModels,把M3E模型的配置信息填写进去
-
到这里,配置方面就结束了,运行docker-compose down,docker-compose up -d重启容器加载更新后的配置文件
四. 在fastgpt页面创建自己的知识库,并关联知识库创建AI应用
- 访问localhost:3000,进入到fastgpt页面
- 左侧点击知识库,右上角新建知识库,名字随便起,文件模型选择千问(这些都是我们刚刚在config.json里配置好的,在这里都显示出来了)
- 右上角新建数据源,选择本地文件,然后自己上传一个知识库文件进去,比如员工手册,我是自己随便编了个电商介绍的txt文件丢进去了。
- 知识库创建完毕后,左侧点击工作台,右上角新建简单应用,选择知识库+对话引导,名字随便填
- 进入到创建应用的界面,左侧点击关联知识库,把自己刚刚创建的知识库选上,然后就可以和AI聊天了,可以看到AI的对话里会显示引用了自己创建的知识库。大功告成!
- 搭建好的应用可以通过链接分享给他人使用,也可以调用api接口访问。在应用上方的”发布渠道”按钮里点开就可以看到。api访问需要在页面里生成一个api密钥,调用接口时放在请求头里,具体可以在api访问的页面里有文档链接