首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【大语言模型】本地部署个人Llama2 LLM服务并实现远程访问web交互界面

【大语言模型】本地部署个人Llama2 LLM服务并实现远程访问web交互界面

作者头像
aosei
发布于 2024-07-19 00:42:54
发布于 2024-07-19 00:42:54
34200
代码可运行
举报
文章被收录于专栏:csdn-nagiYcsdn-nagiY
运行总次数:0
代码可运行

前言

本文主要分享如何在群晖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镜像命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo docker  pull ollama/ollama:latest

*拉取Chatbot-Ollama镜像命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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地址访问,可以看到同样访问成功,这样一个固定且永久不变的公网地址就设置好了!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
steam网络连接错误、无法连接到服务器怎么办?steam登录报错及故障解决方案
电脑网络明明好好的,Steam却出现连接错误,打开商店转圈圈,下载游戏疯狂断连,甚至联机对战秒变PPT?是不是很抓狂?先别着急砸电脑,本文主要为大家讲解steam网络报错、连接不到服务器相关的故障和解决方案。网络连接故障排除请按以下步骤诊断 Steam 内的网络连接问题:
逐梦岛
2025/06/22
2.1K0
steam网络连接错误、无法连接到服务器怎么办?steam登录报错及故障解决方案
Jtti:修复 Linux 错误 - 连接超时
在使用 Linux 操作系统时,有时会遇到连接超时的错误。这个错误可能会导致无法访问网络或无法连接到其他计算机。本文将介绍一些常见的连接超时错误以及如何修复它们。
jtti
2024/09/04
7200
Python中网络请求超时的原因及解决方案
网络连接的不稳定性是最常见的原因之一。有时候,服务器响应时间长,或者网络本身存在波动,导致请求超时。就像是在高速公路上行驶,突然遇到交通堵塞,您的车速会变得很慢,甚至停滞不前。 解决方法:使用合适的超时时间,考虑到网络不稳定性,合理设置超时参数,以便及时捕获超时异常。此外,可以考虑实现重试机制,以增加请求成功的概率。
小白学大数据
2024/06/08
3810
【详解】ping得通外网IP,ping不通外网域名的解决办法
在日常的网络管理或开发过程中,有时会遇到一个奇怪的问题:能够通过IP地址成功ping通外网服务器,但使用域名时却无法ping通。这种情况下,问题通常不在于网络连接本身,而可能是DNS解析出现了问题。本文将探讨几种可能的原因及相应的解决方法。
大盘鸡拌面
2025/01/26
2.3K0
内网穿透避坑指南|6 大常见错误 + 保姆级解决方案!
在内网穿透部署中,哪怕是老手也可能踩坑!今天整理了6大高频错误场景+实战解决方案,帮你少走弯路,效率翻倍
零讯
2025/05/20
2810
内网穿透避坑指南|6 大常见错误 + 保姆级解决方案!
【详解】svn:Can'tconnecttohost'*.*.*.*':由于连接方在一段时间后没有正确答复或连接
在使用Subversion(SVN)进行版本控制时,有时会遇到“Can't connect to host '...': 由于连接方在一段时间后没有正确答复或连接”的错误。这个错误通常意味着你的客户端无法与SVN服务器建立连接。本文将探讨导致这一问题的可能原因,并提供相应的解决方案。
大盘鸡拌面
2025/01/06
4680
【java报错已解决】System.ServiceModel.EndpointNotFoundException
在Java开发的世界里,报错信息就像是一个个隐藏在代码迷宫中的小怪兽,时不时地跳出来给开发者们制造些麻烦。而今天我们要面对的这个“小怪兽”就是System.ServiceModel.EndpointNotFoundException。当它出现时,往往会让我们的程序在运行过程中戛然而止,让开发者们头疼不已。那么,该如何成功击败它,让我们的程序顺畅运行呢?下面就让我们一起来深入探讨这个报错信息的解决之道吧。
鸽芷咕
2025/05/29
930
网络 Ping 不通的原因及解决方法
网络通信是现代社会的重要组成部分,而“Ping”作为网络故障诊断中最常用的命令工具之一,在检测网络连通性方面扮演着至关重要的角色。Ping 是基于 ICMP(Internet Control Message Protocol)协议的命令,主要用于测试目标设备是否可达。对于网络管理员和普通用户来说,Ping 命令可以帮助确定设备的连接状态,并快速定位网络故障。
是山河呀
2024/10/01
5.4K0
解决能ping通但无法上网的问题
大家好,今天我要和大家分享一下当你的IP地址能够成功 ping 通,却无法上网时该如何解决这个问题。这是一个相当常见的情况,在网络故障排查中经常遇到。别担心,我将为你揭开这个谜题,提供一些解决方案和技巧。
华科云商小孙
2023/09/21
4.1K0
【详解】SQLServerJDBC到主机的TCP/IP连接失败
在使用 Java 应用程序连接 Microsoft SQL Server 数据库时,有时会遇到“SQL Server JDBC 到主机的 TCP/IP 连接失败”的错误。本文将探讨这个错误的原因及解决方法。
大盘鸡拌面
2025/01/12
6670
Docker登录问题:无法连接到Docker Hub
😔 作为一位充满热情的技术博主,我深入研究了Docker登录问题,尤其是由于无法连接到Docker Hub引发的困扰。本文将详细探讨Docker登录的重要性以及可能导致连接问题的原因,并提供解决方案,以确保您能够成功登录Docker Hub并继续您的容器化工作。搜索词条:Docker登录问题、无法连接Docker Hub、Docker登录失败解决。
默 语
2024/11/20
1.6K0
Docker登录问题:无法连接到Docker Hub
网络诊断指南:网络故障排查步骤与技巧
这里推荐一篇实用的文章:《【Linux系列】脚本中的if else》,作者:【kwan的解忧杂货铺】。
Echo_Wish
2024/12/01
4360
网络诊断指南:网络故障排查步骤与技巧
【Python】已解决:nltk.download(‘averaged_perceptron_tagger’) [nltk_data] Error loading averaged_perceptro
在使用Python的自然语言处理库NLTK(Natural Language Toolkit)时,有时需要下载额外的数据包以支持特定的功能,如词性标注、分词等。然而,在尝试使用nltk.download(‘averaged_perceptron_tagger’)命令下载词性标注模型时,可能会遇到如下报错:
屿小夏
2025/05/23
3460
故障排除指南:SOCKS5连接问题和解决方案
SOCKS5是一种常用的代理协议,它可以在客户端和目标服务器之间建立一个中间代理层,以实现更高的安全性和隐私保护。然而,在使用SOCKS5连接时,可能会遇到一些问题。本文将为您提供一个故障排除指南,帮助您解决SOCKS5连接问题。
用户614136809
2023/09/04
2.7K0
一文读懂华为防火墙不同类型 VPN 常见问题总结
远程办公和跨区域网络协作越来越普遍,VPN(虚拟专用网络)技术成为企业保障网络通信安全与便捷的重要工具。华为防火墙在 VPN 领域有着广泛的应用,不过,在实际使用过程中,不同类型的 VPN 难免会出现各种各样的问题。今天,阿祥就以华为防火墙为例,讲讲不同类型 VPN 常遇到的问题,希望能帮大家排忧解难。
ICT系统集成阿祥
2025/04/10
3760
一文读懂华为防火墙不同类型 VPN 常见问题总结
ConnectionRefusedError: [Errno 111] Connection Refused:连接被拒绝的完美解决方法
大家好,我是默语,一名专注于全栈开发、运维和人工智能技术的博主。在开发和部署网络应用时,ConnectionRefusedError: [Errno 111] Connection refused 是一个常见且令人头疼的错误。这篇文章将详细解析该错误的成因,并提供多种有效的解决方案,帮助你迅速排查和解决问题。通过本文的学习,你将能够掌握应对网络连接问题的技巧,提高应用的健壮性和可用性。
默 语
2024/11/22
5.3K0
找不到DNS地址的解决方案
WIN+R输入cmd回车输入命令输入命令 ipconfig /flushdns 并按回车键。将刷新DNS解析缓存
hacker707
2023/12/04
6.7K0
找不到DNS地址的解决方案
某些应用程序无法联网,如何解决?
是山河呀
2025/03/09
1.7K0
这10个网络排障工具建议每位网络工程师都能熟练使用!
作为一名网络工程师,会有很长一段时间去解决网络中出现的问题或解决与 IT 和网络状况相关的问题。
网络技术联盟站
2023/03/01
2.2K0
这10个网络排障工具建议每位网络工程师都能熟练使用!
快来围观:看看主流国产AI大模型分析数据包哪家强?
在数字化时代,网络通信已成为社会运转的核心基础设施。无论是企业内部系统、金融交易、医疗数据交互,还是日常的互联网访问,每一项操作都依赖于数据包在网络中的高效传输。然而,网络环境的复杂性与潜在威胁的多样性,使得数据包分析成为保障网络稳定、安全与高效的关键技术。
穿过生命散发芬芳
2025/04/10
4100
推荐阅读
相关推荐
steam网络连接错误、无法连接到服务器怎么办?steam登录报错及故障解决方案
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验