AI 本地化手把手教学:创建私有化本地知识库AI(1)服务部署
上一期分享了Ollama+Dify组合来完成本地大模型搭建和引用本地知识库之后,有很多朋友都留言想要知道具体的操作步骤。快给你的产品加个 AI 吧,本地大模型+本地知识库,纯 CPU 模式可用 那么这一期我们就来一起程序的部署工作,然后在下一期程序的配置工作,以及最后一期以本系列文章作为文档创建到知识库中,并在对话中引用查看效果。
前言
上一期分享了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 的集成配置,然后就开始搭建私人知识库啦,欢迎持续关注!
如果需要付费的技术服务支持也可以联系我。