使用LocalGPT+cpolar打造可远程访问的本地私有类chatgpt服务

news2024/12/25 12:50:59

文章目录

    • 前言
        • 环境准备
        • 1. localGPT部署
        • 2. 启动和使用
        • 3. 安装cpolar 内网穿透
        • 4. 创建公网地址
        • 5. 公网地址访问
        • 6. 固定公网地址

前言

本文主要介绍如何本地部署LocalGPT并实现远程访问,由于localGPT只能通过本地局域网IP地址+端口号的形式访问,实现远程访问还需搭配cpolar内网穿透。

LocalGPT这个项目最大的亮点在于:

1.使用LLM的力量,无需互联网连接,就可以向你的文档提问。100%私密,任何数据都不会离开你的执行环境。你可以摄取文档并提问,无需互联网连接!

2.使用LangChain和Vicuna-7B以及InstructorEmbeddings构建。可以借助LangChain构建更高级能力的pipeline。

image-20230802134214726

环境准备
  • windows10
  • Git
  • python3.11.4
  • C++编译器

下载安装依赖过程中需要C++编译器,我们先提前安装C++编译器,进入微软官方下载vs2022工具:

https://visualstudio.microsoft.com/visual-cpp-build-tools/

下载后打开进行安装,我们勾选第一个C++桌面开发,然后点击右下角安装,接下来等待安装完成即可

image-20230801170431559

1. localGPT部署

localGPT在Github 上面开源了,我们可以在里面复制克隆地址,把项目克隆到本地

GitHub 地址: https://github.com/PromtEngineer/localGPT

通过Git 把项目克隆到本地windows目录,在目录中打开Powershall,执行:

git clone https://github.com/PromtEngineer/localGPT.git

即可看到克隆下来的localGPT

image-20230801163816309

进入localGPT目录

cd localGPT

下载安装依赖,然后等待完成即可

pip install -r requirements.txt
2. 启动和使用

打开localGPT目录,可以看到一个文件夹,叫:SOURCE_DOCUMENTS,我们只需把文档放到该目录下

image-20230801174849469

这里测试,放入一个java编程思想文档

image-20230801175209867

然后打开我们刚刚的命令行,下面命令提取数据,此处如果出现错误,可以尝试开启科学上网!

python ingest.py

没有报错表示正常

image-20230801175859865

然后运行localGPT_API,运行会有点慢.可以稍等一下,这里运行的时候可以指定使用电脑GPU运行服务端,这样可以加快执行速度,详细可以参考Github上文档

python run_localGPT_API.py

启动后我们可以看到api 接口端口号和地址,注意,这个窗口不能关闭,需保持运行,因为web ui 界面需要和这个api 接口保持通信

image-20230802130859818

接下来启动web ui 服务,重新在localGPT目录打开一个新的Powershell命令行窗口,然后进入localGPTUI目录

cd localGPTUI

进入后执行启动web ui 界面命令

python localGPTUI.py

启动后可以看到访问的地址和端口号,端口号是:5111

image-20230802132046806

我们打开浏览器,输入上面的web ui 服务地址和端口号,即可看到操作的web ui 界面

image-20230802132313470

在输入框中,输入需要对你文档提问的信息,然后点击search

image-20230802134214726

即可看到返回我们上传的文档里面内容,到了这里,启动安装即完成了,下面设置远程访问

image-20230802134246847

3. 安装cpolar 内网穿透

cpolar内网穿透工具,永久免费且不限制流量,支持http/https/tcp协议,无需公网IP,也不用设置路由器,使用简单。

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

访问cpolar官网,注册一个账号,然后下载并安装客户端,具体安装教程可以参考官网文档教程。

  • windows系统:在官网下载安装包后,双击安装包一路默认安装即可。
  • linux系统:支持一键自动安装脚本,详细请参考官网文档——入门指南

cpolar安装成功后,在浏览器上访问本地9200端口【http://localhost:9200】,使用cpolar账号登录。

20230130105810

4. 创建公网地址

点击左侧仪表盘的隧道管理——创建隧道,创建一个我们上面的localGPT 的web ui 的5111隧道

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

点击创建

image-20230802134612688

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

image-20230802134643932

5. 公网地址访问

我们使用http公网地址访问,可以看到,我们访问到了localGPT web UI 界面,这样一个公网地址访问就创建好了

image-20230802134751529

6. 固定公网地址

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

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

登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择china vip top ,然后设置一个二级子域名名称,填写备注信息,点击保留

image-20230801141655483

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

image-20230801141712030

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

image-20230801141756806

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

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

点击更新

image-20230802134942316

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

image-20230802135003869

最后,我们使用固定的公网地址访问localGPT webui 界面可以看到访问成功,一个永久不会变化的远程访问方式即设置好了

image-20230802135042314

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1634278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电子式汽车机油压力传感器的接线方法及特点

电子式机油压力传感器由厚膜压力传感器芯片、信号处理电路、外壳、固定电路板装置和两根引线(信号线和报警线)组成。信号处理电路由电源电路、传感器补偿电路、调零电路、电压放大电路、电流放大电路、滤波电路和报警电路组成。 厚膜压力传感器是20世纪…

杰发科技AC7840——SPI通信简介(1)_跑通Demo

0. 简介 一些配置项: CPHA:相序 CPLO:极性 看着demo需要按键,于是去掉按键,去掉打印,直接输出波形看逻辑分析仪的信号。 其实现在做这些demo测试应该都有逻辑分析仪,直接看波形更直观一点。…

git误操作版本回退的方法

场景:在使用git进行代码提交的时候不小心执行了git reset 命令进行了版本回退但是在这之前进行了git add . git commit -m "提交"等命令,正常情况下就可以直接使用 git reset 版本号 进行代码的回退,但是发现自己不能找打上一个提…

搭建MongoDB副本集

文章目录 一、什么是MongoDB的副本集二、副本集的架构三、副本集的成员四、部署副本集1、节点划分2、安装MongoDB2.1、下载解压安装包 3、创建主节点3.1、创建存储数据和日志的目录3.2、新建配置文件3.3、启动节点服务 4、创建副本节点4.1、创建存储数据和日志的目录4.2、新建配…

场景文本检测识别学习 day06(Vi-Transformer论文精读)

Vi-Transformer论文精读 在NLP领域,基于注意力的Transformer模型使用的非常广泛,但是在计算机视觉领域,注意力更多是和CNN一起使用,或者是单纯将CNN的卷积替换成注意力,但是整体的CNN 架构没有发生改变VIT说明&#x…

面试笔记——线程池

线程池的核心参数&#xff08;原理&#xff09; public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler)corePoolSize …

2024年 Java 面试八股文——Redis篇

目录 1、介绍下Redis Redis有哪些数据类型 难度系数&#xff1a;⭐ 2、Redis提供了哪几种持久化方式 难度系数&#xff1a;⭐ 3、Redis为什么快 难度系数&#xff1a;⭐ 4、Redis为什么是单线程的 难度系数&#xff1a;⭐ 5、Redis服务器的的内存是多大…

RustGUI学习(iced)之小部件(三):如何使用下拉列表pick_list?

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 概述 这是本专栏的第三篇,主要讲述下拉列表pick_list部件的使用,会…

c#创建新项目

确保已安装.NET Core SDK。&#xff08;visual studio installer中可安装&#xff09; cmd中先引用到文件夹目录下。 mkdir MyConsoleApp MyConsoleApp是项目文件夹的名字。 mkdir 是一个命令行工具&#xff0c;用于在文件系统中创建新的目录&#xff08;文件夹&#xff09;…

【YOLO改进】换遍IoU损失函数之DIoU Loss(基于MMYOLO)

DIoU损失函数 论文链接&#xff1a;https://arxiv.org/pdf/1911.08287 DIoU损失函数&#xff08;Distance Intersection over Union Loss&#xff09;是一种在目标检测任务中常用的损失函数&#xff0c;用于优化边界框的位置。这种损失函数是IoU损失函数的改进版&#xff0c;…

windows驱动开发-电源状态(二)

Modern Standby这个特性其实很难准确的讲清楚&#xff0c;因为它是一个系统行为不是驱动功能行为&#xff0c;应用层、功能驱动、系统总线、设备本身都有不同程度的参与&#xff0c;并且它属于否决性的&#xff0c;一个系统中&#xff0c;只要有一个设备不支持Modern Standby&a…

新手如何用Postman做接口自动化测试?

1、什么是自动化测试 把人对软件的测试行为转化为由机器执行测试行为的一种实践。 例如GUI自动化测试&#xff0c;模拟人去操作软件界面&#xff0c;把人从简单重复的劳动中解放出来&#xff0c;本质是用代码去测试另一段代码&#xff0c;属于一种软件开发工作&#xff0c;已…

Q02UCPU 三菱Q系列通用型QnUCPU模块20K步40ns

Q02UCPU 三菱Q系列通用型QnUCPU模块20K步40ns Q02UCPU外部连接, Q02UCPU可以用Q03UDVCPU替换。 Q02UCPU参数说明&#xff1a;输入输出2048点、I/O软元件点数8192、程序容量20K、基本处理速度40ns、程序内存80K、USB/RS232连接。 Q02UCPU图片 三菱通用型QnUCPU模块20K步Q02UCPU…

Linux实现简单进度条(附原理解释和动图效果)

1&#xff0c;行缓冲区 先看下面的代码和运行结果&#xff0c; #include<stdio.h> #include<unistd.h> int main() {printf("你好\n");sleep(3);return 0; }只是一个简单的打印“你好”然后休眠三秒&#xff0c;最后程序结束 再看下面的代码和运行结果…

LT6911UXE HDMI 2.0 至双端口 MIPI DSI/CSI,带音频 龙迅方案

1. 描述LT6911UXE 是一款高性能 HDMI2.0 至 MIPI DSI/CSI 转换器&#xff0c;适用于 VR、智能手机和显示应用。HDMI2.0 输入支持高达 6Gbps 的数据速率&#xff0c;可为4k60Hz视频提供足够的带宽。此外&#xff0c;数据解密还支持 HDCP2.3。对于 MIPI DSI / CSI 输出&#xff0…

Linux学习之Tcp与Udp

目录 UDP Udp协议的格式 UDP的传输特性 UDP的缓冲区 基于UDP的应用层协议 TCP协议 TCP的报文格式 1.ACK确认应答机制 2.超时重传 3.TCP的链接管理机制 为什么要三次握手呢&#xff1f; 理解TIME_WAIT状态 流量控制&#xff08;可靠性效率&#xff09; 滑动窗口 拥塞…

C++栈和队列模拟

栈和队列所用的容器默认都为deque&#xff0c;这种容器可以看作是一种vector和list的中间性能容器。 而deque虽然头插、尾插效率很好&#xff0c;且支持 [ ] 访问&#xff08;默认容器为它的原因&#xff09;&#xff0c;但是 他的缺点也很明显&#xff1a; 1.中间插入删除会…

【C++算法竞赛 · 图论】树

目录 前言 树 树的定义 树的相关概念 树的遍历 1 先序遍历 2 中序遍历 3 后序遍历 前言 前两篇文章&#xff08;【C算法竞赛 图论】图论基础、【C算法竞赛 图论】图的存储&#xff09;中&#xff0c;介绍了图的相关概念与存储&#xff0c;还不了解的可以去补补课。 …

【百度Apollo】探索自动驾驶:小白教学如何使用 Dreamview 播放数据包

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 引入一、Dreamview 简介二、使用 Dreamview 具体步骤步骤一&#xff1a;进入 Apollo Docker 环境步骤二&#xff…

数学建模--图论最短路径基础

1.图的定义 学过数据结构或者离散数学的小伙伴们应该知道图的概念&#xff0c;我在这里简单的介绍一下&#xff1a; 图的概念和我们理解的是很不一样的&#xff0c;这里的图并不是我们的生活里面的图片&#xff0c;而是一种表示不同的数据之间的关系&#xff0c;例如这里的5个…