Chatbot UI老外在用的gpt网页版 搭建方法分享!

news/2024/9/15 12:06:28/

新建了一个网站

https://ai.weoknow.com/

每天给大家更新可用的国内可用chatGPT资源

Chatbot UI

高仿ChatGPT官网,中文还支持贼好,界面美观度间距还需要打磨。是老外做的吗?

环境部署

更新环境

apt update -y  && apt upgrade -y && apt install -y curl wget sudo socat

安装 Docker

curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

curl -L "https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 

chmod +x /usr/local/bin/docker-compose

部署GPT网页版

部署命令

docker run -d --name chatbot-ui -e OPENAI_API_KEY=xxxxxxxx -p 3000:3000 ghcr.io/mckaywrigley/chatbot-ui:main

xxxxxxxx 改成自己的API

已经有帐号了。获取自己的OPENAI的APIkey

https://platform.openai.com/account/api-keys

NGINX反向代理到域名

创建nginx目录结构

mkdir -p /home/nginx

touch /home/nginx/nginx.conf

mkdir -p /home/nginx/certs

申请证书

curl https://get.acme.sh | sh

~/.acme.sh/acme.sh --register-account -m xxxx@gmail.com

~/.acme.sh/acme.sh --issue -d gpt.kjlion.ga --standalone

下载证书

~/.acme.sh/acme.sh --installcert -d gpt.kjlion.ga  --key-file /home/nginx/certs/gpt_key.pem --fullchain-file /home/nginx/certs/gpt_cert.pem

进入目录编辑文件

cd /home/nginx/ && nano nginx.conf

反向代理配置,代理指定IP加端口

events {

    worker_connections  1024;

}

http {

  client_max_body_size 1000m;  

  #上传限制参数1G以内文件可上传

  

server {

    listen 80;

    server_name gpt.kjlion.gq;

    return 301 https://$host$request_uri;

  }

server {

  listen 443 ssl http2;

  server_name gpt.kjlion.gq;

  ssl_certificate /etc/nginx/certs/gpt_cert.pem;

  ssl_certificate_key /etc/nginx/certs/gpt_key.pem;

  location / {

    proxy_pass http://0.0.0.0:3000;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  }

  location /websocket {

    proxy_pass http://0.0.0.0:3000/websocket;

    proxy_http_version 1.1;

    proxy_set_header Upgrade $http_upgrade;

    proxy_set_header Connection "Upgrade";

  }

}

}

部署容器

docker run -d --name nginx -p 80:80 -p 443:443 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/certs:/etc/nginx/certs -v /home/nginx/html:/usr/share/nginx/html nginx:latest

查看运行状态

docker ps -a

开机自启动

docker update --restart=always nginx

docker update --restart=always chatbot-ui

欢迎关注转发

你们亲爱的麦田君会每天更新更多更好的资源


http://www.ppmy.cn/news/75272.html

相关文章

SpringCloud学习-实用篇04

以下内容的代码可见:SpringCloud_learn/day04 1.初始MQ 同步通讯和异步通讯 微服务间通讯有同步和异步两种方式,同步通讯就像打电话需要实时响应,异步通讯就像发邮件不需要马上回复。两种方式各有优劣,比如打电话能立即得到响应&a…

Kali-linux分析密码

在实现密码破解之前,介绍一下如何分析密码。分析密码的目的是,通过从目标系统、组织中收集信息来获得一个较小的密码字典。本节将介绍使用Ettercap工具或MSFCONSOLE来分析密码。 8.2.1 Ettercap工具 Ettercap是Linux下一个强大的欺骗工具,也…

08 集合框架1

什么是数据结构? 存储数据,组织数据的方法,就是对数据做增删改查的操作 常见的数据结构有哪些?各自的优缺点是什么? 数组:擅长修改 查找操作,不擅长增加 删除操作 链表:有单项链表和双向链表,擅长增加和删除操作,不擅长修改和查找的操作 队列:擅长操作头和尾,先进先出,…

LeetCode94. 二叉树的中序遍历(递归与非递归)

写在前面: 题目链接:添加链接描述 编程语言:c 题目难度:简单 一、题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 输入:root [1,null,2,3] 输出:[1,3,2] 示例 2:…

使用Amazon EC2实例部署三个项目

在部署这三个项目时,以下是一种可能的思路: 1. **配置服务器环境:**确保你的服务器已经安装了适当的操作系统(例如Linux)和所需的软件(如Python、Node.js等)。 2. **设置域名和端口:…

【图论】想越狱的小衫

题目描述 这次小杉来到了经典美剧《越狱》的场景里……他被抓起来了(-.-干嘛幻想这么郁闷的场景……)。 小杉身为新一代的Scofield,在挖了半个月之后终于挖通牢房里的地道。 在地道里,无数的管道路线困惑了他。 小杉看了看自己…

游戏洞察丨自来水还是井水,后流量时代的私域挑战

流量生意本质上是买卖用户浏览时间的生意,如果用户增长到顶,那就意味着供给到顶。对比 2021 年,2022 年的游戏出海在谷歌和 Facebook 上投入的广告成本几乎翻了一倍。新晋“渠道王者”TikTok 逐渐走进大家的视野。该现象背后的原因在于&#…

MySQL数据库最常见的6种故障的排除方法

MySQL数据库最常见的6中故障的排除方法 1.MySQL无法启动 2.MySQL连接不上 3.MySQL打开文件失败 4.MySQL挂起(hung) 5.MySQL崩溃(crash) 6.忘记用户密码 1.MySQL无法启动 1.无法访问系统资源 2.参数设置错误 无法访问系统…

ffmpeg命令行工具源码之结构体分析1-命令行参数(未完结,持续更新)

前言 ffmpeg作为多媒体文件转换工具,至少需要有一个要转换的输入文件信息(不仅仅是普通文件,还可以是摄像头设备,网络流等),和通常至少需要一个输出格式的文件(输出文件不仅仅指普通的文件&…

【SQL】MySQL的数据类型

MySQL的数据类型 MySQL是一种广泛使用的关系型数据库管理系统,它支持各种数据类型,包括数字、字符串、日期和时间等。在MySQL中,数据类型是用来定义表中列的类型,它决定了表中的数据如何被存储和操作。 数字类型 MySQL支持多种…

完犊子!原单位的离职证明丢了,下周要入职了,用AI做一个行不行?

弄丢了离职证明怎么办? 一位网友哀叹: 完犊子!原单位的离职证明丢了,下周要入职了,现在怎么办?用AI做一个行不行? 有相同经历的网友安慰他,离职证明没了没事,新公司会要求…

格式化数据写入sprintf的用法

sprintf 是一个常见的 C 语言函数,用于将格式化的数据写入字符串缓冲区中。它的原型如下: int sprintf(char *str, const char *format, …); sprintf 函数将按照指定的格式 format 将数据写入字符串 str 中,并返回写入的字符数(不…

linux动态库版本控制

文章目录 1. 动态库相关概念2. ldd 查看依赖项3. 动态链接器 ld.so的加载路径4. 动态版本库版本控制5. ldconfig自动更新soname到linkname6. 可执行程序的执行过程 linux 动态库版本控制 1. 动态库相关概念 Soname、linkname和realname都是在Linux系统下与共享库(s…

firewalld防火墙

文章目录 firewalld概述firewalld 与 iptables 的区别firewalld 区域的概念firewalld防火墙预定义了9个区域 firewalld数据处理流程firewalld检查数据包的源地址的规则 firewalld防火墙的配置方法常用的firewall-cmd 命令选项区域管理服务管理端口管理设置地址转换 firewalld概…

大学4年做出来这个算不算丢人

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

【计算机网络基础】辨析专题④ 网络层

文章目录 重要简写重要概念重要简写 1.IP——网际协议 2.APR——地址解析协议 3.ICMP——网际控制报文协议 4.IGMP——网际组管理协议 5.HLB——集线器 6.ICANN——互联网名字和数字分配机构 7.CIDR——无分类域间路由选择 8.RARP——逆地址解析协议 9.IGP——内部网关…

Vue安全

vue的安全措施 HTML内容 不论使用模板还是渲染函数&#xff0c;内容都会被自动转义。也就是说对于这份模板&#xff1a; <h1>{{ userProvidedString }}</h1>如果 userProvidedString 包含了&#xff1a; <script>alert("hi")</script>则…

使用TTL管理ClickHouse数据生命周期

ClickHouse中数据随着时间变迁可能需要定期移动、删除或汇总数据。这依赖数据保留需求和历史数据的SLA(服务等级协议)&#xff0c;可以对历史数据采用更高的压缩级别节约更多空间。举例&#xff0c;对于超过1个月的数据采用lz4hc压缩算法&#xff0c;则需要DDL语法使用TTL的REC…

MyBatis动态推理参数类型

前言 思考一个问题&#xff0c;前面的#{}和${}的区别中&#xff0c;我们知道了#{}&#xff0c;MyBatis底层调用的是preparestatement这种预编译的方式&#xff0c;这种方式sql语句会预先编程 select * from t_user where id ?这种形式&#xff0c;随后调用setInt(),setString…

Postman传递@requestbody标注的List集合的传参遇到的问题

Postman传递requestbody标注的List集合的传参遇到的问题 引子如何测试以及遇到的问题参考文献 引子 我们想测试如下接口 RequestMapping(value "saveMessageRecover", method RequestMethod.POST) ResponseBody public AjaxMessage saveMessageRecover(RequestBod…