独立部署开源大模型并用于内部知识库的整体实现方案

独立部署知识库对于组织和企业来说具有多方面的必要性,以下是一些关键原因:

  1. 知识管理: 知识库使信息和知识有序化,有助于捕获、存储和分享组织内部的专业知识、经验和最佳实践。这有助于减少信息孤岛,促进团队协作,加速问题解决和创新。
  2. 提高工作效率: 知识库通过有效的信息管理和知识分享,帮助员工快速找到所需信息,减少信息过载,提高工作效率。
  3. 定制化和控制: 独立部署的知识库允许组织根据自己的特定需求进行定制,包括安全性、隐私保护、数据控制和个性化功能。
  4. 避免依赖第三方服务: 依赖第三方知识库服务可能面临数据安全和隐私风险,以及服务中断的风险。独立部署可以提供更高的数据控制权和稳定性。
  5. 合规性和数据主权: 对于某些行业,如金融、医疗等,可能有严格的数据保护法规。独立部署的知识库可以帮助企业更好地遵守这些法规,确保数据主权。

下面介绍用 FastGpt + Oneapi + Gemma:2b + M3E + Mongo + Pg + Ollama-webui 搭建的本地知识库,系统运行环境为 centos7,cpu 4核,内存 16G

安装完成后的调试效果如下:

独立部署开源大模型并用于内部知识库的整体实现方案

支持手机上的对话:

独立部署开源大模型并用于内部知识库的整体实现方案

第一步:升级python \ pip 并安装docker

1. 更新yum
   sudo yum update
2.安装EPEL源
   sudo yum install epel-release
3.安装Python
   sudo yum install python3
4.验证安装
   python3 --version
5.安装pip
   sudo yum install python3-pip
6.更新pip
   pip3 install --upgrade pip
7. 卸载旧版本的Docker(如果有)
   sudo yum remove docker docker-client docker-client-latest docker-common  docker-latest  docker-latest-logrotate  docker-logrotate docker-engine
8.安装必要的依赖包
   sudo yum install -y yum-utils device-mapper-persistent-data lvm2
9.设置Docker的yum源
   sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
10.安装Docker Engine
   sudo yum install docker-ce docker-ce-cli containerd.io
11.启动Docker服务
   sudo systemctl start docker
12.设置Docker开机自启
   sudo systemctl enable docker
13.验证Docker安装
   sudo docker run hello-world
14.安装 docker-compose
   pip3 install docker-compose

第二步: 安装 M3E (更详细的细节参考我的另个文章:
https://www.toutiao.com/item/7340953638493241875/)

#安装前要查看下端口是否被占用
sudo yum install lsof
sudo lsof -i:<端口号>

如果输出为空,说明端口可用,比如m3e 我使用了 6008端口

docker run -d --name m3e -p 6008:6008 registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api

使用docker安装,需要简单了解几个命令,非常有用

docker stop m3e   #停止这个容器
docker start m3e  #启动容器
docker rm m3e     #移除容器
docker ps         #查看容器进程
docker logs m3e   #查看日志
docker rmi m3e    #删除镜像

第二步:安装one-api

#由于fastgpt也用3000端口,避免冲突,one-api 改用 4000 端口
docker run --name oneapi -d --restart always -p 4000:3000 -e TZ=Asia/Shanghai -v /data/llm/one-api:/data justsong/one-api

第三步:安装fastGpt

mkdir fastgpt
cd fastgpt
wget http://raw.githubusercontent.com/labring/FastGPT/main/files/deploy/fastgpt/docker-compose.yml
wget https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json

openssl rand -base64 756 > ./mongodb.key
chmod 600 ./mongodb.key
chown 999:root ./mongodb.key
docker-compose pull
docker-compose up -d

第四步:初始化mongo数据库

# 查看 mongo 容器是否正常运行
docker ps
# 进入容器
docker exec -it mongo bash

# 连接数据库
mongo -u myname -p mypassword --authenticationDatabase admin

# 初始化副本集。如果需要外网访问,mongo:27017 可以改成 ip:27017。
#但是需要同时修改 FastGPT 连接的参数
#(MONGODB_URI=mongodb://myname:mypassword@mongo:27017/fastgpt?authSource=admin => MONGODB_URI=mongodb://myname:mypassword@ip:27017/fastgpt?authSource=admin)
rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "mongo:27017" }
  ]
})
# 检查状态。如果提示 rs0 状态,则代表运行成功
rs.status()

第五步:安装 ollama

wget https://github.com/ollama/ollama/releases/download/v0.1.27/ollama-linux-amd64
scp -r ollama-linux-amd64  /usr/bin/ollama
wget https://github.com/ollama/ollama/releases/download/v0.1.27/ollama-linux-amd64
scp -r ollama-linux-amd64  /usr/bin/ollama

设置 ollama的监听方式及启动策略

#打开配置
vi /etc/systemd/system/ollama.service

#输入以下内容
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3

[Install]
WantedBy=default.target

#保存后执行
sudo systemctl daemon-reload
sudo systemctl enable ollama

systemctl start ollama

#可以通过以下命令来查看日志
journalctl -u ollama

#查看状态
systemctl status ollama

几个服务启动的命令可以记下,非常有用

#停止命令
sudo systemctl stop ollama
sudo systemctl disable ollama

#删除命令
sudo rm /etc/systemd/system/ollama.service
sudo rm -r /usr/share/ollama
sudo userdel ollama
sudo groupdel ollama

#开放防火墙命令
sudo firewall-cmd --zone=public --add-port=11434/tcp --permanent
sudo firewall-cmd --reload

第六步:安装Gemma:2b (详细可参考我另篇文章:
https://www.toutiao.com/item/7338355730514330175/)

ollama run gemma:2b  #google 开源模型;
ollama run qwen      #阿里开源模型

第七步:安装 open-webui

mkdir webui
cd webui

# 如果拉不动的话加个代理
docker pull ghcr.dockerproxy.com/open-webui/open-webui:main

# 重命名镜像(如果是通过代理下载的)
docker tag ghcr.dockerproxy.com/open-webui/open-webui:main ghcr.io/open-webui/open-webui:main

# 删除代理镜像(如果是通过代理下载的)
docker rmi ghcr.dockerproxy.com/open-webui/open-webui:main

#启动容器
docker run -d \
--restart unless-stopped \
--name ollama-webui \
-p 11433:8080 \
-v $(pwd)/data:/webui/data \
-e OLLAMA_API_BASE_URL=http://外部ip地址:11434/api \
-e WEBUI_SECRET_KEY=123456 \
ghcr.io/open-webui/open-webui:main

等1-2分钟后,页面就能访问了:配置连接即可

独立部署开源大模型并用于内部知识库的整体实现方案

第八步:配置oneapi,增加渠道

独立部署开源大模型并用于内部知识库的整体实现方案

以 gemma:2b 为例,配置项注意:地址和模型要对应起来

独立部署开源大模型并用于内部知识库的整体实现方案

第九步:配置fastGpt,核心配置 fastgpt 目录下的 config.json 和 docker-compose.yml文件;

docker-compose.yml 中增加oneapi的支持:

 environment:
      # root 密码,用户名为: root
      - DEFAULT_ROOT_PSW=1234
      # 中转地址,如果是用官方号,不需要管。务必加 /v1 只改下面这两项
      - OPENAI_BASE_URL=http://你的oneapi地址:4000/v1 
      - CHAT_API_KEY=你的令牌环,从oneapi里面获取
      - DB_MAX_LINK=5 # database max link
      - TOKEN_KEY=any

config.json 中增加 模型支持:

llmodels 中增加:
,
    {
      "model": "gemma:2b",
      "name": "gemma:2b",
      "maxContext": 128000,
      "maxResponse": 4000,
      "quoteMaxToken": 100000,
      "maxTemperature": 1.2,
      "charsPointsPrice": 0,
      "censor": false,
      "vision": true,
      "datasetProcess": false,
      "toolChoice": true,
      "functionCall": false,
      "customCQPrompt": "",
      "customExtractPrompt": "",
      "defaultSystemChatPrompt": "",
      "defaultConfig": {}
    }

vectorModels 中增加:
,
    {
      "model": "m3e",
      "name": "M3E",
      "price": 0.1,
      "defaultToken": 500,
      "maxToken": 1800
    }

处理完后,重启fastGpt

docker-compose  down
docker-compose up -d

第十步: 页面上配置fastgpt 应用和知识库

关于fastgpt的配置非常多的文档,大家可以参考
https://doc.fastgpt.in/docs/development/

至此,完整的本地部署的知识库已经可以运行了;由于我的机器没有任何显卡,跑起来稍微有点吃力,但速度还可以接受;

发布者:三丰,转载请注明出处:http://nft.aiju.com/news/96569.html,如涉及作品内容、版权及其它问题,请联系本站!

『声明:根据央行等部门发布的《关于进一步防范和处置虚拟货币交易炒作风险的通知》,本文内容仅用于信息分享,不对任何经营与投资行为进行推广与背书,请读者严格遵守所在地区法律法规,不参与任何非法金融行为』
(0)
三丰的头像三丰
上一篇 2024年3月8日
下一篇 2024年3月11日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)

  • xing的头像
    xing 2024年4月3日 13:33

    配置图片都看不到呀