AI 本地化手把手教学:创建私有化本地知识库AI(1)服务部署

上一期分享了Ollama+Dify组合来完成本地大模型搭建和引用本地知识库之后,有很多朋友都留言想要知道具体的操作步骤。快给你的产品加个 AI 吧,本地大模型+本地知识库,纯 CPU 模式可用 那么这一期我们就来一起程序的部署工作,然后在下一期程序的配置工作,以及最后一期以本系列文章作为文档创建到知识库中,并在对话中引用查看效果。

AI 本地化手把手教学:创建私有化本地知识库AI(1)服务部署

前言

上一期分享了Ollama+Dify组合来完成本地大模型搭建和引用本地知识库之后,有很多朋友都留言想要知道具体的操作步骤。快给你的产品加个 AI 吧,本地大模型+本地知识库,纯 CPU 模式可用

那么这一期我们就来一起程序的部署工作,然后在下一期程序的配置工作,以及最后一期以本系列文章作为文档创建到知识库中,并在对话中引用查看效果。

搭建 Ollama

下载 ⏬

访问 Ollama 官网 https://ollama.com/

Ollama 提供一键式安装,如果是 Windows 或 MacOS 可以直接下载安装包,如果是 Linux 则使用管理员权限执行命令安装即可curl -fsSL https://ollama.com/install.sh | sh

完成安装后,在命令行状态下就可以输入 ollama -v 查看安装的版本,如果成功执行则说明安装成功。

GPU加速

如果你有英伟达的N卡,也就是诸如 GTX系列、A系列还有老版的P计算卡系列,只要是能支持CUDA以及有超过6GB的显存,Ollama都会自动加载为GPU模式,可以在日志中查看确认。

日志查看

Window是可以在托盘区右键 Ollama 头像,点击 View Logs,会自动打开文件管理器可以查看日志:一般而言查看 server.log 就可以找到问题了,在 Windows 上安装 git 环境,使用 Git bash 也可以使用 Linux 命令 tail - f server.log 持续打印最新日志。

Linux 可以使用 journalctl -u ollama -f 查看最新日志

本地对话

中文LLM模型有很多,Ollama 直接可以拉取的镜像可选 llama2-chinese、qwen,当然还有很多模型可以在 Models 中查看。

现在我们就已 qwen 为例,默认 qwen 是 4B 模型,执行 ollama pull qwen 拉取模型到本地来。

然后运行 ollama run qwen 就可以进行对话了。 如果想要知道 Token 的输出效率可以增加 --verbose 在命令后面,就可以打印执行效率了:包括token生成效率等将在每段内容输出后进行打印。

运行截图

因为需要把 ollama 的运行服务暴露为接口供 Dify 使用,因此我们需要做出一点配置调整(如果 ollama 和 dify 都是跑在同一台设备上的那倒是不需要处理此部分内容)

调整暴露Ollama接口服务

Windows

windows 其实更简单一点, 增加一个环境变量,可以控制 ollama 监听的IP

打开环境变量配置

1、在文件管理器中对此电脑右键,点击属性

2、点击高级系统设置

3、点击 环境变量,打开环境变量配置

然后在用户变量或者系统变量中添加(两者区别是生效范围,仅在当前用户下生效或全部用户下生效,可能对大多数人而言没有太多区别)一个变量

然后确定,一路点击确认关闭窗口

变量名为 OLLAMA_HOST 值修改为 0.0.0.0 (当然你也可以指定为你的设备获取的可用IP的具体值)

接着,在托盘区右键退出 ollama 然后重新在开始菜单打开 ollama 通过查看日志,确认其监听 从 Listening on 127.0.0.1:11434 变成了 Listening on [::]:11434

Linux

直接编辑 /etc/systemd/system/ollama.service 文件

增加:
[Service] Environment="OLLAMA_HOST=0.0.0.0" 并保存

刷新服务配置,然后重启服务 systemctl daemon-reloadl;systemctl restart ollama

服务配置

通过查看日志或直接确认监听端口变化成功,就可以了

监听端口确认

确认可用

在浏览器中访问你的设备IP:11434,确认可访问即可,这里为了后续方便沟通,我们就把这个地址作为本文的一个沟通代词:Ollama访问地址 即代表了 http://IP:11434 这串内容

服务可用确认

拉取 embed 模型

我们需要一个合适的文字嵌入模型,在 ollama 提供的 models 中搜索 embed 有很多可选择。

关于嵌入式数据的排名可以在这里找到 Massive Text Embedding Benchmark (MTEB) 地址

我这里个人使用了dmeta-embedding-zh,执行命令拉取数据模型即可 ollama pull shaw/dmeta-embedding-zh

搭建 Dify

接下来就是搭建 Dify 了,Dify 的启动推荐使用 docker-compose 当然,你也可以通过其他例如 k8s 的方式排列容器启动,这里还是以 docker-compose 为例。

你可以访问 Dify 官网 查看教程

大致就是拉取 Dify 开源代码,使用代码中的 docker-compose 模板进行启动,完成启动后,程序就会在设备的80端口上可访问使用。

  # 拉取代码
  git clone https://github.com/langgenius/dify.git
  # 进入 docker compose 模板目录
  cd dify/docker
  # 启动容器,请注意,如果你并不想以80端口访问,记得修改端口映射
  docker compose up -d
  # 检查容器运行是否正常
  docker compose ps

如果不出意外的话,Dify 就可以访问了,第一次会让你创建一个管理员的账号,请牢记账号密码。

小结

至此,我们就完成了 ollama 和 dify 的搭建工作,下一步,我们将在 dify 完成与 ollama 的集成配置,然后就开始搭建私人知识库啦,欢迎持续关注!

如果需要付费的技术服务支持也可以联系我。

本站总访问量 本站访客数人次