当前位置: 首页 > article >正文

Ollama + FastGPT搭建本地私有企业级AI知识库 (Linux)

一、为何搭建本地企业级AI知识库?

首先我们分析下搭建本地企业级AI知识库的核心要点:

1.数据安全性:本地部署可以更好地保护企业敏感数据,避免数据泄露的风险。
2.定制化:根据企业特定需求进行定制,提供更精准的解决方案和服务。
3.实时访问:本地知识库能够快速响应企业内部的查询需求,提高工作效率。
4.合规性:更容易符合行业监管和合规要求,确保数据管理和使用符合相关法律法规。
5.知识积累:集中管理和存储企业知识,促进知识共享与传承,提高整体团队的知识水平。
6.成本控制:减少对外部云服务的依赖,降低长期运营成本。
通过搭建本地企业级AI知识库,企业可以更好地管理知识资产,提升竞争力。

二、大模型与工作流结合的优势包括:

1.智能化决策:利用大模型的强大推理和分析能力,提升工作流中的决策质量。
2.自动化处理:自动化常规任务,减少人工干预,提高效率。
3.个性化体验:根据用户需求和上下文,提供定制化的工作流体验。
4.实时反馈:通过大模型的实时分析,快速调整工作流,优化业务流程。
5.知识共享:大模型能够整合和应用企业内部知识,提高团队协作效率。
6.灵活适应:能够快速响应市场变化,灵活调整工作流,提高企业敏捷性。
结合大模型与工作流,企业能够在效率、决策和创新方面获得显著提升。

三、FastGPT是什么?

在这里插入图片描述

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!

四、Ollama是什么?

在这里插入图片描述

Ollama 是一个旨在简化和加速机器学习模型使用和部署的平台。它提供了一个用户友好的界面,使开发者和数据科学家能够更轻松地运行和管理各种机器学习模型。Ollama 的主要特点包括:

1.简化部署:用户可以通过简单的命令将模型部署到本地或云环境中。
2.多种模型支持:支持多种类型的机器学习模型,包括自然语言处理、计算机视觉等。
3.快速迭代:允许开发者快速测试和迭代不同的模型,优化性能。
4.集成工具:与其他开发工具和框架的集成,使得工作流程更加高效。
Ollama 旨在帮助用户更高效地利用机器学习技术,减少技术门槛,使更多人能够参与到 AI 项目的开发中。

五、安装ollama

  1. 安装ollama

下载ollama官方linux安装程序,虚拟机储存最好在40G以上否则可能会崩溃下不下来完整的

地址:Ollama

在这里插入图片描述
在这里插入图片描述

安装命令如下:

curl -fsSL https://ollama.com/install.sh | sh

此过程略微有点漫长,耐心等待

手动安装

注意
如果想要之前安装过的版本升级,首先执行sudo rm -rf /usr/lib/ollama删除之前的库

下载解压安装包

curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

启动Ollama

ollama serve

检查安装是否成功

ollama -v

AMD GPU 安装

如果你有AMD GPU 安装包也可以下载并解压额外的ROCm包

curl -L https://ollama.com/download/ollama-linux-amd64-rocm.tgz -o ollama-linux-amd64-rocm.tgz
sudo tar -C /usr -xzf ollama-linux-amd64-rocm.tgz

ARM64 安装

下载并解压 ARM64-specific 安装包:

curl -L https://ollama.com/download/ollama-linux-arm64.tgz -o ollama-linux-arm64.tgz
sudo tar -C /usr -xzf ollama-linux-arm64.tgz

将Ollama 添加为启动服务 (推荐)

为Ollama创建用户和用户组:

sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)

/etc/systemd/system/ollama.service 中创建一个服务文件:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"

[Install]
WantedBy=default.target

然后启动服务:

sudo systemctl daemon-reload
sudo systemctl enable ollama

如果需要更新可以参考官方文档:
官方下载文档

  1. 下载模型
    ollama官网顶部Models,进入模型列表界面。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

六、准备 Docker 环境

Docker Compose 快速部署官方文档

# 安装 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker
# 安装 docker-compose
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
# 验证安装
docker -v
docker-compose -v
# 如失效,自行百度~

开始部署

1. 下载 docker-compose.yml

docker-compose.yml

非 Linux 环境或无法访问外网环境,可手动创建一个目录,并下载配置文件和对应版本的docker-compose.yml,在这个文件夹中依据下载的配置文件运行docker,

若作为本地开发使用推荐docker-compose-pgvector版本,并且自行拉取并运行sandboxfastgpt,并在docker配置文件中注释掉sandboxfastgpt的部分

Linux 快速脚本

mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json

# pgvector 版本(测试推荐,简单快捷)
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml

2. 修改环境变量

找到 yml 文件中,fastgpt 容器的环境变量进行下面操作:

FE_DOMAIN=你的前端你访问地址,例如 http://192.168.0.1:3000;https://cloud.fastgpt.cn

3. 启动容器

在 docker-compose.yml 同级目录下执行。请确保docker-compose版本最好在2.17以上,否则可能无法执行自动化命令。

# 启动容器
docker-compose up -d
# 等待10s,OneAPI第一次总是要重启几次才能连上Mysql
sleep 10
# 重启一次oneapi(由于OneAPI的默认Key有点问题,不重启的话会提示找不到渠道,临时手动重启一次解决,等待作者修复)
docker restart oneapi

4. 打开 OneAPI 添加模型

可以通过ip:3001访问OneAPI,默认账号为root密码为123456

在OneApi中添加合适的AI模型渠道。点击查看相关教程

5. 访问 FastGPT

目前可以通过ip:3000直接访问(注意防火墙)。登录用户名为 root,密码为docker-compose.yml环境变量里设置的 DEFAULT_ROOT_PSW

如果需要域名访问,请自行安装并配置 Nginx。

首次运行,会自动初始化 root 用户,密码为 1234(与环境变量中的DEFAULT_ROOT_PSW一致),日志里会提示一次MongoServerError: Unable to read from a snapshot due to pending collection catalog changes;可忽略。

FAQ

Mongo 副本集自动初始化失败

最新的 docker-compose 示例优化 Mongo 副本集初始化,实现了全自动。目前在 unbuntu20,22 centos7, wsl2, mac, window 均通过测试。仍无法正常启动,大部分是因为 cpu 不支持 AVX 指令集,可以切换 Mongo4.x 版本。

如果是由于,无法自动初始化副本集合,可以手动初始化副本集:

  1. 终端中执行下面命令,创建mongo密钥:
openssl rand -base64 756 > ./mongodb.key
chmod 600 ./mongodb.key
# 修改密钥权限,部分系统是admin,部分是root
chown 999:root ./mongodb.key
  1. 修改 docker-compose.yml,挂载密钥
mongo:
#  image: mongo:5.0.18
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
container_name: mongo
ports:
  - 27017:27017
networks:
  - fastgpt
command: mongod --keyFile /data/mongodb.key --replSet rs0
environment:
  # 默认的用户名和密码,只有首次允许有效
  - MONGO_INITDB_ROOT_USERNAME=myusername
  - MONGO_INITDB_ROOT_PASSWORD=mypassword
volumes:
  - ./mongo/data:/data/db
  - ./mongodb.key:/data/mongodb.key
  1. 重启服务
docker-compose down
docker-compose up -d
  1. 进入容器执行副本集合初始化
# 查看 mongo 容器是否正常运行
docker ps
# 进入容器
docker exec -it mongo bash

# 连接数据库(这里要填Mongo的用户名和密码)
mongo -u myusername -p mypassword --authenticationDatabase admin

# 初始化副本集。如果需要外网访问,mongo:27017 。如果需要外网访问,需要增加Mongo连接参数:directConnection=true
rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "mongo:27017" }
  ]
})
# 检查状态。如果提示 rs0 状态,则代表运行成功
rs.status()

如何修改API地址和密钥

默认是写了OneAPi的连接地址和密钥,可以通过修改docker-compose.yml中,fastgpt容器的环境变量实现。

OPENAI_BASE_URL(API 接口的地址,需要加/v1) CHAT_API_KEY(API 接口的凭证)。

修改完后重启:

docker-compose down
docker-compose up -d

如果问题没得到解决可以去官方文档寻找解决方案

Docker Compose 快速部署官方文档


http://www.kler.cn/a/471313.html

相关文章:

  • 基于YOLO5的机械臂视觉抓取实现
  • STM32裸机开发转FreeRTOS教程
  • SQL使用视图
  • Spring Boot教程之五十一:Spring Boot – CrudRepository 示例
  • 在 ASP.NET CORE 中上传、下载文件
  • Tableau数据可视化与仪表盘搭建-数据可视化原理
  • php将word转换为pdf
  • 使用Oracle的RPM包在Linux上安装MYSQL
  • 《探索 OpenCV 4.10.0:计算机视觉领域的璀璨新星》
  • docker学习记录:本地部署mongodb
  • K8S集群更新api-sever证书的SAN属性
  • 【11_只出现一次的数字】
  • flink的EventTime和Watermark
  • Couldn‘t resolve host name for http://mirrorlist.centos.org
  • 《Swift 结构体》
  • 基于SMT32U575RIT单片机-中断练习
  • 【蓝桥杯——物联网设计与开发】Part2:OLED
  • 债券回购简述
  • HTTP 协议中,GET、PUT、POST、DELETE、OPTIONS 和 PATCH 区别
  • Git 常用命令及其使用场景
  • RabbitMQ ubuntu 在线安装
  • _decl_class_registry 与 metadata.sorted_tables的区别
  • 以柔资讯-D-Security终端文件保护系统 logFileName 任意文件读取漏洞复现
  • 机器学习——线性回归
  • 运动相机拍摄的视频打不开怎么办
  • 如何解决Redis中的热点key问题