用ChatGPT搭建公司内部ChatGPT服务器

news2024/12/26 2:17:29

一、前言
我是ChatGPT,一个由OpenAI训练的大型语言模型。我被设计用于回答各种问题并生成文本,可以处理多种自然语言任务,例如问答、摘要和翻译等。在我的学习过程中,我阅读了数百万篇文本,并使用这些文本来提高我的理解和响应能力。我不断学习和改进,以为用户提供最佳的问答体验。——来自ChatGPT的回复。
本文主要讲解如何搭建chatGPT-WEB端。

这个是搭建完成后的界面。
在这里插入图片描述

二、教程
因为chatgpt的服务器在国外,所以需要魔法上网,所以我们采用国外服务器,所以就可以解决网络问题。

2.1 创建国外服务器
小编也是对比了十余家的漂亮国云服务器,发现价格不便宜,而且速度还有性能部不行,而且有的是不支持ChatGPT的,根据小编的多次测试和测评,发现了一家宝藏地址,叫慈云数据,性价比贼高,价格便宜不说,使用起来也是非常的流畅!好评!
在这里插入图片描述
创建完成后,需要打开协议和端口,需要开启ICMP和全部DCP端口。只有开启后,我们才能访问。
在这里插入图片描述
2.2、搭建项目
首先建立SSH连接,可以用UHOST自带的远程命令,也可以使用FinalShell,我采用的是FinalShell,相对来说较为好用。

2.2.1 安装NODE
在Node.js中,模块(Module)是一种可重用代码的组织形式。模块可以包含函数、对象、类等各种数据类型,并且能够被其他程序引入并重复利用,从而提高了代码的可维护性和复用性。Node.js中的模块化编程可以有效地避免命名冲突和全局变量污染等问题,同时也使得代码结构更加清晰和易于管理。
在Node.js中,可以使用require函数来引入其他模块。通过将需要导出的函数、对象等数据类型定义为一个模块,其他文件就可以通过require函数来访问这些数据类型。Node.js还提供了一些内置的核心模块,例如fs、http、path等,这些模块提供了许多常用的功能和工具,可以帮助开发人员更轻松地实现各种需求。

cd /usr/local
wget https://npmmirror.com/mirrors/node/v16.18.1/node-v16.18.1-linux-x64.tar.xz

解压重命名到 nodejs:

tar -xvf node-v16.18.1-linux-x64.tar.xz
mv node-v16.18.1-linux-x64 nodejs
rm -rf node-v16.18.1-linux-x64.tar.xz

创建软连接:

ln -s /usr/local/nodejs/bin/node /usr/bin
ln -s /usr/local/nodejs/bin/npm /usr/bin
ln -s /usr/local/nodejs/bin/npx /usr/bin

打印版本

node -v //v16.18.1
1
如果打印出来,就已经成功安装。

2.2.2、安装 PNPM
PNPM是一种Node.js的包管理器,类似于npm和Yarn。与npm和Yarn不同的是,PNPM的安装方式和安装目录更加灵活,可以在全局和本地两个层面上安装依赖包,并且支持多版本共存。此外,PNPM还采用了一种独特的依赖关系管理方式,可以将相同的依赖包实例共享,从而减少重复的下载和存储空间。

PNPM的主要特点如下:

快速:PNPM使用硬链接和符号链接等技术来避免重复下载和占用存储空间,从而提高了安装和更新包的速度。
稳定:PNPM使用单一的锁文件(shrinkwrap.yaml)来确保依赖关系的稳定性和可重现性,同时避免了冲突和竞争条件。
安全:PNPM支持对依赖包进行签名和验证,以确保其完整性和安全性。
易用:PNPM的命令行接口与npm和Yarn类似,具有良好的用户体验和文档支持。
总的来说,PNPM旨在为Node.js开发人员提供一种更快、更稳定、更安全、更灵活的包管理方案,同时促进社区的合作和创作。

npm install -g pnpm
ln -s /usr/local/nodejs/bin/pnpm /usr/bin
ln -s /usr/local/nodejs/bin/pnpx /usr/bin

打印版本号

pnpm -v  //v7.29.3

如果能正常打印版本号,说明 PNPM 安装成功。

2.2.3、安装 Docker
Docker是一种容器化平台,它可以让开发人员将应用程序及其依赖项打包成可移植的容器,并在不同的计算环境中运行,如开发机、测试环境和生产环境等。Docker通过利用操作系统级别虚拟化技术,使得应用程序能够在相对隔离的环境中运行,极大地简化了部署和管理复杂应用程序的工作。
安装 yum-utils 包:

yum install -y yum-utils

设置镜像仓库(阿里镜像):

yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 软件包索引:

yum makecache fast

安装 docker-ce(社区版):
安装公版密钥

rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
yum install docker-ce docker-ce-cli containerd.io

打印版本

docker version

打印出版本说明安装成功

systemctl start docker   #启动docker

2.2.4 下载项目
找了一个比较火的 ChatGPT Web 开源项目(star 8k),链接:chatgpt-web。
首先安装 git:

yum install git

下载项目(默认安装在 /root/ 目录下):

git clone https://github.com/Chanzhaoyu/chatgpt-web.git

2.2.5填写秘钥
密钥需要填写chatGPT的密钥,没有的可以自行百度声情
将 chatgpt-web/service/ 目录下文件.env.example 改名为.env,并修改文件中的 OPENAI_API_KEY 值,改为上文中获取的 API Keys,注意不需要加引号。
在这里插入图片描述

OpenAI API Key - https://platform.openai.com/overview

OPENAI_API_KEY=your_api_key

2.2.6安装依赖
在 chatgpt-web/service/ 目录下安装后端依赖:

pnpm install

在 chatgpt-web/ 目录下安装前端依赖:

pnpm bootstrap

2.2.7打包运行
在 chatgpt-web/ 目录下执行 build 操作:

docker build -t chatgpt-web .

build 成功后就可以运行项目啦,记得将 your_api_key 替换成你的 key:

docker run --name chatgpt-web -d -p 3002:3002 --env OPENAI_API_KEY=your_api_key chatgpt-web

运行成功后访问 https://ip:3002 就可以访问 ChatGPT Web 页面啦,Nice~
参考:
https://echeverra.cn/
https://github.com/Chanzhaoyu/chatgpt-web

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

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

相关文章

了解分布式Session

大家好,我这名CRUD工程师又来了,最近我的一个同事突然在看分布式Seesion的问题,然后我们两个也是互相讨论了一下,今天我就想着把分布式Session的知识点好好的梳理一下。 在很多系统中,用户的登录功能都是用Session去实…

Eclipse 4.27.0 制作并使用jar包

目的: 记录使用Eclipse 4.27.0 制作并使用jar包的过程,以备查看。 一,制作jar包 新建工程new ->Java Project 输入工程名,注意这里勾掉 Create module-info.java file的复选框,也可以在创建后自行删除该文件 后面…

[架构之路-171]-《软考-系统分析师》-5-数据库系统-4- 数 据 库 的 控 制 功 能(并发控制、性能优化)

目录 5 . 4 数 据 库 的 控 制 功 能 5.4.1 并发控制 1 . 事务的基本概念 2 . 数据不一致问题 3 . 封锁协议 4 . 死锁问题 5.4.2 数据库性能优化 1 . 硬件升级 2 . 数据库设计 5.4.3 数据库的完整性 1 . 完整性约束条件 2 . 实体完整性 3 . 参照完整性 4 . 用户定…

SVD求解ICP问题

Background ICP(Iterative Closest Point)问题,迭代最近点。已知一组三维点在两个坐标系中的坐标表示,求这两个坐标系之间的变换关系,称为ICP问题。 最开始想到这个问题,是想进行手眼标定,有一…

头歌c语言实训项目-综合案例课外练习:大奖赛现场统分

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 第1关:大奖赛现场统分 题目: 代码思路: 代码表示: 第1关…

【看图识文】tesseract.js@4.0.2

看图识文 介绍示例一示例二示例三示例四示例五示例六 介绍 该库用于识别并获取图片上的文字,支持多种语言。对英文识别度非常高,但是对中文的识别度非常一般。需要单独训练对应的中文库。对白纸黑字的合同文识别度还不错,其他的都不太好。 …

Android之编写申请权限库PermissionX

比如要实现拨打电话的功能,一般我们要编写如下Android运行时权限API class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)if(ContextCom…

日撸 Java 三百行day35

文章目录 说明day35 图的 m 着色问题1.问题描述2.思路2.代码 说明 闵老师的文章链接: 日撸 Java 三百行(总述)_minfanphd的博客-CSDN博客 自己也把手敲的代码放在了github上维护:https://github.com/fulisha-ok/sampledata day3…

JUC安全/非安全容器

一、JUC java.util.concurrent下的类就叫JUC类,JUC下典型的类有: 1.ReentrantLock可重入锁 2.Semaphore信号量 3.CountDownLatch计数器 4.CyclicBarrier循环屏障 二、线程安全&非安全容器 2.1非线性安全容器 2.2线性安全容器 三、关于HashMap ha…

【谷歌浏览器 -- Vimium 常用快捷键】

文章目录 1.1.1 标签页管理1.1.2 网页操作1.1.3 打开链接1.1.4 搜索1.1.5 自定义搜索引擎短语1.1.6 Vimimu 使用注意事项 Vimium 是一款用键盘控制 Chrome 浏览器的 Chrome 插件, 可以在 Chrome 应用商店下载到. 下面列出个人比较习惯使用的几个快捷键。 1.1.1 标签页管理 [ x…

【C语言】基础语法4:函数和递归

上一篇:控制流程结构 下一篇:数组和指针 ❤️‍🔥前情提要❤️‍🔥   欢迎来到C语言基本语法教程   在本专栏结束后会将所有内容整理成思维导图(结束换链接)并免费提供给大家学习,希望大家…

Cookie、Session、Token的区别

1 网站交互体验升级 1.1 无状态的 http 协议 HTTP 无状态协议,是指协议对于业务处理没有记忆能力,之前做了啥完全记不住,每次请求都是完全独立互不影响的,没有任何上下文信息。 缺少状态意味着如果后续处理需要前面的信息&…

基于蛋白-配体复合物构建药效团的药物设计(Pharmacophore)

基于蛋白-配体复合物构建药效团的药物设计(Pharmacophore) step 1.蛋白-配体复合物准备 点击File-->Import Structures导入之前已经下载好的1IEP.pdb(Abl蛋白和Imatinib的晶体复合物) 蛋白准备:点击Tasks--->…

【数据集实例】CMIP6气候模式数据下载-以河东地区为例

1 数据准备 主要根据研究区域等,介绍下载数据需求。 1.1 研究区域 以甘肃省河东地区为例,分区图如下所示: 数据时间范围如下所示: 历史时段:1970-2014年(共44年)预估时段:2015-2100年此外,根据研究内容,确定下载的变量为: 日尺度降水:缩写为pr日尺度最高/最低温…

OrCAD创建原理图库

OrCAD创建原理图库 概述常规器件建库方法大封装器件建库基于pinout表格创建原理图库导入方法: 通过fsp软件导入fpga原理图库 概述 原理图库是硬件设计的基本工作,每个新人都要先学会建库,才能开始画图,本文主要介绍几种常用的建库…

Linux多线程-4

在了解完多线程的绝大部分概念之后,我们本篇博客作为Linux多线程中的最后一篇博客,来对其中剩余内进行一个收尾。 目录 1.线程池 1.1引入 1.2原理 1.3优点 1.4实现 2.单例模式 2.1内容 2.2原理 2.3实现 2.3.1饿汉模式实现 2.3.2懒汉模式实现…

Web3技术入门向科普

Web3是指下一代互联网,它基于区块链技术,将各种在线活动更加安全、透明和去中心化。Web3是一个广义的概念,它包括了很多方面,如数字货币、去中心化应用、智能合约等等。在这篇文章中,我们将重点讨论Web3的入门知识&…

Opencv+Python笔记(四)图像的形态学处理

1.腐蚀与膨胀 膨胀用来处理缺陷问题,把缺陷填补掉,提高亮区面积; 腐蚀用来处理毛刺问题,把毛刺腐蚀掉,降低亮区面积。 腐蚀操作可以消除噪点,同时消除部分边界值,导致目标图像整体缩小。 膨胀…

轻松掌握安装k8s官方可视化界面工具知识点

轻松掌握安装k8s官方可视化界面工具知识点 1、安装 1、安装资源 kubernetes官方提供的可视化界面 https://github.com/kubernetes/dashboard 执行以下命令 kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml…

RocketMq集群搭建

各个角色介绍: producer:消息的发送者;举例:发信者consumer:消息的接受者;举例:收信者broker:暂存和传输消息;举例:邮局NameServer:管理Broker&am…