群晖NAS本地部署并运行一个基于大语言模型Llama2的个人本地聊天机器人

前言

本文主要分享如何在群晖 NAS 本地部署并运行一个基于大语言模型 Llama 2 的个人本地聊天机器人并结合内网穿透工具发布到公网远程访问。本地部署对设备配置要求高一些,如果想要拥有比较好的体验,可以使用高配置的服务器设备.

目前大部分大语言模型的产品都是基于网络线上的,如果我们本地想自己部署一个自己的大语言模型,该如何操作呢,下面介绍一款可以在自己本地部署运行的大语言模型 Llama 2

Llama 2 是一款开源的大语言模型,其中训练的数据目前已经达到 7B 级别,在上下文长度为 4K 下的单轮与多轮对话中表现出色,部署运行 Llama 2 同时需要借助一个框架 Ollama.

Ollama 是一个强大的框架,设计用于在 Docker 容器中部署大型语言模型(LLM)。它的主要功能是简化在 Docker 容器内部署和管理 LLM 的过程。Ollama 通过提供简单的安装指令,使用户能够轻松地在本地运行大型开源语言模型.

借助 Ollama 框架可以很方便运行 Llama2 大语言模型,同时,为了方便与模型进行交互,还需要部署一个 web 交互 界面 Chatbot-Ollama.

Chatbot-Ollama 是一个基于 Ollama 框架的聊天机器人前端应用。它利用 Ollama 框架提供的接口和功能,将大型语言模型(LLM)集成到聊天机器人中,使其能够与用户进行交互,并提供各种聊天机器人服务。

Chatbot-Ollama 接入本地 Ollama 框架运行的 Llama2 大语言模型,使我们可以很轻松简便在本地创建一个聊天机器人.Chatbot-Ollama 同时也是基于 docker 本地部署的,本地部署,只能局限于本地访问,无法做到提供远程给其他人访问,下面我们还需要安装一个内网穿透工具 cpolar,使得本地聊天机器人可以被远程访问.

1. 拉取相关的 Docker 镜像

运行 Llama 2 需要借助 Ollama 镜像,对语言模型进行交互需要用到 Chatbot-Ollama 前端界面,所以我们需要拉取这两个 docker 镜像,本例群晖版本由于无法直接在群晖控制面板 docker 界面搜索下载镜像,所以采用命令行方式进行镜像下载,首先开启群晖 ssh 连接,然后使用工具通过 ssh 连接上群晖,分别执行下面 docker 命令 拉取

*拉取 Ollama 镜像命令

shell 复制代码
sudo docker  pull ollama/ollama:latest

*拉取 Chatbot-Ollama 镜像命令

shell 复制代码
sudo docker  pull ghcr.io/ivanfioravanti/chatbot-ollama:main

拉取成功后,我们可以在 Docker 界面看到拉取的两个镜像,下面开始运行两个镜像,首先运行 ollama

2. 运行 Ollama 镜像

选中镜像,点击运行进入配置界面,名称无需设置,默认即可,然后点击下一步

输入外部访问的端口,和容器内部端口一致,填写 11434 即可,然后点击下一步

然后点击完成即可运行 ollama

运行后,打开容器界面,可以看到运行的服务,下面开始下载运行 Llama 2 模型,点击选中 ollama 容器,点击操作

然后打开终端机,进入终端命令界面

然后选择左边新增一个 bash 命令界面

然后在 bash 命令界面,执行ollama run llama2命令,接着等待下载即可,最后出现 success,表示下载运行 Llama 2 模型成功,下载完成后可以关闭掉窗口.这样 ollama 容器启动,并运行 Llama 2 模型就成功了,下面运行 chatbot-ollama 镜像,配置前端交互界面

3. 运行 Chatbot Ollama 镜像

选中我们下载的镜像,点击运行,开始进行设置

名称可以默认,直接点击下一步

设置对外端口,本例设置 3001,具体可以自己自定义,这个端口也是我们浏览器上 web 访问的端口

然后设置一个环境变量,该变量就是连接我们上面运行 Ollama 框架服务的地址,我们设置本地地址:http://群晖局域网IP:11434即可,设置完成点击下一步,然后直接点击完成即可,chatbot Ollama 镜像就运行成功了,接下来我们进行本地访问.

4. 本地访问

上面我们运行设置 chatbot ollama 的对外端口是 3001(具体以自己设置的为准),下面我们在浏览器访问群晖 3001 端口,既可看到我们的 web 交互 界面,同时,上面显示了使用的 llama2 模型,下面输入文字即可对话,这样一个本地部署的机器人就完成了,对话的响应速度取决于设备的配置,尽量使用高配置的服务器运行部署哦,本地完成后,我们接下来设置远程也可以访问,下面安装 cpolar 工具,实现无公网 IP 也可以远程访问我们的聊天机器人界面!

5. 群晖安装 Cpolar

点击下面 Cpolar 群晖套件下载地址,下载相应版本的群晖 Cpolar 套件

https://www.cpolar.com/synology-cpolar-suite,

打开群晖套件中心,点击右上角的手动安装按钮。

选择我们本地下载好的 cpolar 套件安装包,然后点击下一步

点击同意按钮,然后点击下一步

最后点击完成即可。

安装完成后,在外部浏览器,我们通过群晖的局域网ip地址加9200端口访问 Cpolar 的 Web 管理界面,然后输入 Cpolar 邮箱账号与密码进行登录,如无账号可去官网注册:

cpolar 官网地址:https://www.cpolar.com/

6. 配置公网地址

点击左侧仪表盘的隧道管理------创建隧道,创建一个 chatbot 的公网地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择 http
  • 本地地址:3001 (本地访问的端口)
  • 域名类型:免费选择随机域名
  • 地区:选择 China

点击创建

隧道创建成功后,点击左侧的状态------在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是 http 和 https,下面我们使用生成的 http 地址访问

7. 公网访问

使用上面 cpolar 生成的 http 地址,在浏览器访问,同样可以看到聊天机器人主界面,公网地址访问成功,无需公网 IP,无需云服务器,即可把我们本地聊天机器人发布到公网进行访问!

小结

为了更好地演示,我们在前述过程中使用了 cpolar 生成的隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址由随机字符生成,不太容易记忆(例如:3ad5da5.r10.cpolar.top)。另外,这个地址在 24 小时内会发生随机变化,更适合于临时使用。

我一般会使用固定二级子域名,原因是我希望将网址发送给同事或客户时,它是一个固定、易记的公网地址(例如:chatbot.cpolar.cn),这样更显正式,便于流交协作。

8. 固定公网地址

由于以上使用 Cpolar 所创建的隧道使用的是随机公网地址,24 小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn 已备案】

注意需要将 cpolar 套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn 已备案】

登录 cpolar 官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

保留成功后复制保留成功的二级子域名的名称

返回登录 Cpolar web UI 管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道,点击右侧的编辑

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名的名称域名

最后,我们使用固定的公网 http 地址访问,可以看到同样访问成功,这样一个固定且永久不变的公网地址就设置好了!

相关推荐
承渊政道1 天前
自建服务越来越多怎么管理?Docker部署Flare,搭一个自己的数字入口
运维·docker·容器·内网穿透·cpolar·nas·flare
cpolar技术支持1 天前
喜欢的直播总要蹲点?用 bililive-go 在 NAS 后台自动录制直播并远程管理,再用 cpolar 让外地也能看回放
内网穿透·cpolar·nas·远程访问·自托管
cpolar技术支持5 天前
外网测试机的异常传不回内网?自托管 Sentry,用 cpolar 打通错误上报链路
python·nginx·docker·cpolar·sentry
cpolar技术支持5 天前
Spring Boot 接口本地正常,异地前端却报跨域?用 cpolar 跑通 CORS 预检与白名单
java·springboot·cpolar·前后端分离·cors
cpolar技术支持8 天前
本地数据库客户端只能自己用?用 cpolar 安全访问 NAS 上的 PostgreSQL 管理台
postgresql·内网穿透·cpolar·nas·pgadmin
cpolar技术支持13 天前
服务器上的 Nginx 只想改配置却不敢动?把 Nginx-UI 跑起来,用 MCP 让 AI 助手帮你安全改配置,再用 cpolar 把面板短时开给自己
nginx·ai·cpolar·mcp·nginx-ui
cpolar技术支持21 天前
本地 Playwright 测试报告怎么远程复盘?Trace Viewer 跑起来后,用 cpolar 分享失败现场
前端·自动化测试·测试工具·cpolar·playwright
池央22 天前
通勤听书不想来回切 App?用 Audiobookshelf 搭一个自己的有声书库
智能手机·cpolar
禁默22 天前
没有公网 IP 怎么远程抓取服务器指标?node_exporter + Prometheus + cpolar 实战
人工智能·cpolar
Xxtaoaooo23 天前
Prometheus 告警怎么推到钉钉?从单群通知到跨网络 Alertmanager 实战
钉钉·webhook·cpolar