超简单搭建一个自用的ChatGPT网站(支持给网站添加访问密码)

news2024/12/25 12:39:12

前言:

有小伙伴留言想在自己的服务器搭建上图所示的ChatGPT网站,那么今天就是教大家如何在自己的服务器搭建像上图所示的ChatGPT网站

准备条件:
1)一台服务器(这里用centos7)
2)ChatGPT的API-KEY

一、Docker环境部署
Centos安装Docker和Docker-compose(中文)
Ubuntu安装Docker和Docker-compose(中文)

二、克隆本项目到服务器

1.切换到root用户

sudo -i 

 2.将项目clone到本地

git clone https://github.com/ddiu8081/chatgpt-demo  

3.进入chatgpt-demo目录

cd chatgpt-demo 

4.复制.env配置文件

cp -r .env.example .env

5.将自己的chatGPT的key填入.env中的OPENAI_API_KEY的值
如果要给自己的网站设置密码需要填SITE_PASSWORD这个值

vim .env   #进入编辑模式填入自己的key

.env详解

# Your API Key for OpenAI
#您的OpenAI API密钥
#如果不知道如何获取,可参考https://techaccount.top获取OPENAI_API_KEY
OPENAI_API_KEY= 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
# Provide proxy for OpenAI API. e.g. http://127.0.0.1:7890
# 提供OpenAI API的代理。例如:http://127.0.0.1:7890
HTTPS_PROXY=
# Custom base url for OpenAI API. default: https://api.openai.com
# OpenAI API的自定义基础URL。默认值为:https://api.openai.com。
OPENAI_API_BASE_URL=
# Inject analytics or other scripts before </head> of the page
# 在页面的</head>标签之前注入分析或其他脚本。
HEAD_SCRIPTS=
# Secret string for the project. Use for generating signatures for API calls
# 项目的密钥字符串。用于为API调用生成签名。
SECRET_KEY=
# Set password for site. If not set, site will be public
# 设置网站密码。如果未设置,则网站将是公开的。
SITE_PASSWORD=
# ID of the model to use. https://platform.openai.com/docs/api-reference/models/list
#要使用的模型的ID。可参考https://platform.openai.com/docs/api-reference/models/list。
OPENAI_API_MODEL=

三、使用docker-compose生成项目网站
1.(此步骤可选)

vim docker-compose.yml    #默认是3000端口,如果自己的3000端口被占用了可以到这里更改

2.执行docker-compose命令生成容器
由于需要在本地构建docker镜像所以可能需要一段时间,耐心等待即可

docker-compose up -d  

3.查看是否成功

docker-compose ps

如下图状态STATUS是up代表容器运行成功

NAME                IMAGE               COMMAND                  SERVICE             CREATED             STATUS              PORTS
chatgpt-demo        chatgpt-demo        "docker-entrypoint.s…"   app                 16 seconds ago      Up 15 seconds       0.0.0.0:3000->3000/tcp, :::3000->3000/tcp

四、打开网页即可使用ChatGPT
默认是
http://ip:3000
如:
http://324.97.195.203:3000/

使用总结
这种方式搭建自用的chatgpt网站的优点

1.可以设置密码,只有自己可以用
2.chatGPT的key用完了,直接修改.env更换key即可,方便快捷

好了以上就是全部内容,如果还是不会怎么弄,可联系V:TechAccount 帮您解答

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

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

相关文章

存储资源调优技术——SmartThin智能精简配置技术

目录 基本概念 工作原理 SmartThin关键技术 SmartThin主要功能 应用场景 精简LUN&#xff0c;存储空间超分配 按需动态分配存储资源&#xff0c;提高存储资源利用率 Thick和Thin LUN的区别如下 基本概念 Thin Lun属于存储资源的虚拟化&#xff0c;因此需要基于RAID 2.0存…

当影像遇上Python:用MoviePy库轻松搞定视频编辑

I. 简介 当影像遇上Python&#xff1a;用MoviePy库轻松搞定视频编辑 I. 简介II. 安装III. 使用 &#x1f680;&#x1f3ac;1. 创建一个视频剪辑对象2. 剪辑视频3. 剪切视频片段4. 改变视频尺寸和速度5. 合并视频6. 合并多个视频7. 用混合模式合并视频8. 添加音频9. 添加背景音…

台北房价预测

目录 1.数据理解1.1分析数据集的基本结构&#xff0c;查询并输出数据的前 10 行和 后 10 行1.2识别并输出所有变量 2.数据清洗2.1输出所有变量折线图2.2缺失值处理2.3异常值处理 3.数据分析3.1寻找相关性3.2划分数据集 4.数据整理4.1数据标准化 5.回归预测分析5.1线性回归&…

C++之深入解析如何实现一个线程池

一、基础概念 当进行并行的任务作业操作时&#xff0c;线程的建立与销毁的开销是&#xff0c;阻碍性能进步的关键&#xff0c;因此线程池&#xff0c;由此产生。使用多个线程&#xff0c;无限制循环等待队列&#xff0c;进行计算和操作&#xff0c;帮助快速降低和减少性能损耗…

Linux-初学者系列4_rpm-yum软件包管理

Linux-初学者系列4_rpm-yum软件包管理 一、软件包管理 系统软件安装后默认目录路径&#xff1a; /user/local /opt这两个目录用来存放用户自编译安装软件的目录&#xff0c;对于通过源码包安装的软件&#xff0c;如果没有指定安装目录&#xff0c;一般会装在以上目录中。 使…

利用Python轻松实现视频合成!

&#x1f3a5; 利用Python轻松实现视频合成&#xff01;&#x1f4bb; 你是否曾经尝试过在一个视频中添加另一个小视频的场景呢&#xff1f;如果是&#xff0c;你一定会知道这是一项令人头疼的任务。但是&#xff0c;有了Python的 moviepy 库&#xff0c;这个任务将变得非常简单…

Java AIO(Java Asynchronous I/O:异步非阻塞IO)

1.基本介绍 1>.JDK7引入了Asynchronous I/O,即AIO.在进行I/O编程中,常用到两种模式:Reactor和Proactor; 2>.Java的NIO就是Reactor,当有事件触发时,服务器端得到通知,进行相应的处理; 3>.AIO即NIO2.0,叫做异步不阻塞的IO.AIO引入了异步通道的概念,采用了Proactor模式…

Java之类和对象

一、类和对象 C和Java都是面向对象编程的语言,而C和Go是面向过程编程的语言. 主要概述一下面向对象编程,也就是op.在面向对象的世界中,一切皆对象.解决问题的途径主要是靠对象之间的交互去完成. 类的模板 类就是对一种事物的概述,比如说猫类,狗类,人类等等,在这些类中,有成…

为什么WEB端通常采用3DTILES 格式进行发布?

为什么WEB端通常采用3DTILES 格式进行发布? 随着互联网技术的发展和普及&#xff0c;Web端三维数据可视化和呈现越来越受到关注和重视。在这个背景下&#xff0c;采用合适的标准格式进行数据发布和交换变得尤为重要。3DTILES是一种新型的三维数据标准格式&#xff0c;具有多种…

数据降维 | MATLAB实现基于LFDA基于局部费歇尔判别的分类数据降维可视化

数据降维 | MATLAB实现基于LFDA基于局部费歇尔判别的分类数据降维可视化 目录 数据降维 | MATLAB实现基于LFDA基于局部费歇尔判别的分类数据降维可视化基本介绍模型描述程序设计学习小结基本介绍 MATLAB实现基于LFDA基于局部费歇尔判别的分类数据降维可视化 模型描述 局部费歇尔…

Linux之【多线程】线程互斥(锁)线程同步(条件变量)

Linux之【多线程】线程互斥&#xff08;锁&#xff09;&线程同步&#xff08;条件变量&#xff09; 一、引入&#xff1a;线程安全问题二、浅谈""和"- -"非原子性操作三、Linux线程互斥3.1 互斥量-->mutex⚠️3.1.1 互斥锁的理解3.1.2 深入了解锁的…

倾斜摄影超大场景的三维模型的顶层合并的优势浅析

倾斜摄影超大场景的三维模型的顶层合并的优势浅析 倾斜摄影超大场景的三维模型的顶层合并具有以下优势&#xff1a; 1、三维可视化效果好&#xff1a;通过倾斜摄影技术可以获得高分辨率的地面影像&#xff0c;将其与三维建模相结合可以生成非常逼真的三维场景。这种高度可视化…

SpringBoot事务管理-5个面试核心类源码刨析

“简单的事重复做&#xff0c;你就是专家&#xff1b;重复的事用心做&#xff0c;你就是赢家。” 在开始讲解SpringBoot事务之前&#xff0c;我们先来整体回顾下事务的概念及特性&#xff0c;便于我们了解SpringBoot是如何解决事务相关问题的&#xff0c;另外这部分也是面试必…

Windows安装配置Tomcat服务器教程 - 外网远程访问

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 转载自cpolar文章&#xff1a;外网访问本地Tomcat服务器【cpolar内网穿透】…

Cadence (1) 手动制作SMD封装

前提&#xff1a;软件版本 焊盘设计 &#xff1a;Pad Designer16.6PCB设计 &#xff1a;PCB Editor16.6PCB参考&#xff1a;LP Viewer 10.2 文章目录 SMD封装制作(R0603)封装信息SMD焊盘制作新建工程添加焊盘库路径到PCB EditorPCB Editor设计预处理放置焊盘放置丝印放置1脚标识…

【10.HTML入门知识-CSS元素定位】

1 标准流&#xff08;Normal Flow&#xff09; 默认情况下&#xff0c;元素都是按照normal flow&#xff08;标准流、常规流、正常流、文档流【document flow】&#xff09;进行排布  从左到右、从上到下按顺序摆放好  默认情况下&#xff0c;互相之间不存在层叠现象 1.1…

【13.HTML-动画】

1 CSS属性 - transform 1.1 位移 - translate translate的百分比可以完成一个元素的水平和垂直居中&#xff1a; 1.2 缩放 - scale 1.3 旋转 - rotate 1.4 transform-origin 形变的原点 1.5 倾斜 - skew 1.6 transform设置多个值 2 transition动画 2.1 认识transition动画 2…

Java反射(原理剖析与使用)

一、反射机制是什么 1、Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息&#xff0c;从而操作类或对象的属性和方法。本质是JVM得到class对象之后&#xff0c;再通过class对象进行反编译&#xff0c;从而获取对象的各种信息。 2、Java属于先编译再运行的语言&a…

2023年第二十届五一数学建模竞赛C题:“双碳”目标下低碳建筑研究-思路详解与代码答案

该题对于模型的考察难度较低&#xff0c;难度在于数据的搜集以及选取与处理。 这里推荐数据查询的网站&#xff1a;中国碳核算数据库&#xff08;CEADs&#xff09; https://www.ceads.net.cn/ 国家数据 国家数据​data.stats.gov.cn/easyquery.htm?cnC01 以及各省市《统…

第四届“长城杯”信息安全铁人三项赛决赛RE-obfuscating

这里主要是加了混淆 这里要用到IDA的一个插件D810和去混淆脚本deflat.py。值得注意的是deflat.py无法在主逻辑去混淆&#xff0c;这里可以参考这篇文章的脚本利用angr符号执行去除控制流平坦化 - 0x401RevTrain-Tools (bluesadi.github.io)。在使用deflat.py和这文章中的脚本轮…