Skip to content

Files

Latest commit

Apr 7, 2023
1e4f14c · Apr 7, 2023

History

History
206 lines (144 loc) · 7.62 KB

README.md

File metadata and controls

206 lines (144 loc) · 7.62 KB

ChatGPT UI

English | 中文

用户指南: https://wongsaang.github.io/chatgpt-ui-docs/zh/

ChatGPT Web 客户端,支持多用户,支持 Mysql、PostgreSQL 等多种数据库连接进行数据持久化存储,支持多语言。提供 Docker 镜像和快速部署脚本。

本项目的服务端:https://github.com/WongSaang/chatgpt-ui-server

demo.mp4

📢 更新

2023-04-06 客户端改成服务端渲染(SSR)的方式部署,现在可以使用环境变量了,可用环境变量请看下方 docker-compose 配置。提升了首屏加载速度,减少白屏时间。
2023-03-27 🚀 支持 gpt-4 模型。你可以在前端的“模型参数”中选择模型,gpt-4 模型需要通过 openai 的白名单才能使用。
2023-03-23 增加网页搜索能力,使得 ChatGPT 生成的回答更与时俱进! 该功能默认处于关闭状态,你可以在管理后台的 `Chat->Settings` 中开启它,在 Settings 中有一个 `open_web_search` 的记录,把它的值设置为 True。
2023-03-15

在管理后台增加 open_registration 设置项,用于控制是否开放用户注册。你可以登录管理后台,在 Chat->Setting 中看到这个设置项,默认是 True (允许用户注册),如果不需要,请改成 False

2023-03-04

使用最新的官方聊天模型 gpt-3.5-turbo

🎉🎉🎉 提供一个 shell 脚本,用于快速部署到服务器 使用方法

2023-02-24 V2 是一个重要的更新,将后端功能分离为一个独立的项目,托管在 [chatgpt-ui-server](https://github.com/WongSaang/chatgpt-ui-server), 该项目使用基于 Python 的 Django 框架。

如果您仍然希望使用旧版本,请访问 v1 branch (不推荐,不再更新).

V2 的功能特性:

  • 😉 前后端分离,后端使用基于 Python 的 Django 框架。
  • 😘 用户身份验证,支持多个用户。
  • 😀 能够将数据存储在外部数据库中,支持 Mysql、PostgreSQL 等数据库(默认为 Sqlite)。
  • 😎 持续对话,让AI根据上下文回答问题。

🚀 一行命令部署到服务器

注意:此脚本仅在 Ubuntu Server 22.04 LTS 上验证过。

bash <(curl -Ls https://raw.githubusercontent.com/WongSaang/chatgpt-ui/main/deployment.sh)

如果您拥有一个域名,可以使用 DNS 解析将其指向服务器的 IP 地址。当然,直接使用服务器的 IP 地址也是可以的。 在脚本执行期间,会提示您输入域名。如果您没有域名,可以直接输入服务器的 IP 地址。

部署完成之后

访问 http(s)://your.domain:9000/admin / IP http(s)://123.123.123.123:9000/admin 登录管理面板。

默认超级用户: admin

默认密码: password

在可以开始聊天之前,您需要添加一个 OpenAI 的 API 密钥。在管理面板的设置模型中,添加一个名称为 openai_api_key 的记录,将值设置为您的 API 密钥。

现在可以访问客户端地址 http(s)://your.domain / http://123.123.123.123 开始聊天。

🎉🎉🎉 享受吧!

通过 Docker Compose 快速开始

以下是一个 docker-compose.yml 模板,您可以使用它来快速启动服务。

version: '3'
services:
  client:
    image: wongsaang/chatgpt-ui-client:latest
    environment:
      - SERVER_DOMAIN=http://backend-web-server
    #      - NUXT_PUBLIC_APP_NAME='ChatGPT UI' # APP 名称
    #      - NUXT_PUBLIC_TYPEWRITER=true # 是否开启 打字机 效果
    #      - NUXT_PUBLIC_TYPEWRITER_DELAY=50 # 打字机效果的延迟时间,单位:毫秒,默认:50
    depends_on:
      - backend-web-server
    ports:
      - '80:80'
    networks:
      - chatgpt_ui_network
  backend-wsgi-server:
    image: wongsaang/chatgpt-ui-wsgi-server:latest
    environment:
      - APP_DOMAIN=${APP_DOMAIN:-localhost:9000} # CSRF 白名单,在这里设置为 chatgpt-ui-web-server 的地址+端口, 默认: localhost:9000
      - SERVER_WORKERS=3 # gunicorn 的工作进程数,默认为 3
      #- DB_URL=postgres://postgres:postgrespw@localhost:49153/chatgpt # 连接外部数据库,如果不设置这个参数,则默认使用内置的 Sqlite。需要注意的是,如果不连接外部数据库,数据将在容器销毁后丢失。链接格式请看下面的 DB_URL 格式对照表
      #- OPENAI_API_PROXY=https://openai.proxy.com/v1 # https://api.openai.com/v1 的代理地址
      - DJANGO_SUPERUSER_USERNAME=admin # 默认超级用户
      - DJANGO_SUPERUSER_PASSWORD=password # 默认超级用户的密码
      - DJANGO_SUPERUSER_EMAIL=admin@example.com # 默认超级用户邮箱
      - ACCOUNT_EMAIL_VERIFICATION=none # 邮箱验证方式,可选值: none, optional, mandatory. 默认为 optional。如果你不需要验证用户的邮箱,可以设置为 none。
      # 如果您想使用电子邮件验证功能,需要配置以下参数:
    #      - EMAIL_HOST=SMTP server address
    #      - EMAIL_PORT=SMTP server port
    #      - EMAIL_HOST_USER=
    #      - EMAIL_HOST_PASSWORD=
    #      - EMAIL_USE_TLS=True
    #      - EMAIL_FROM=no-reply@example.com  #默认发件邮箱地址
    ports:
      - '8000:8000'
    networks:
      - chatgpt_ui_network
  backend-web-server:
    image: wongsaang/chatgpt-ui-web-server:latest
    environment:
      - BACKEND_URL=http://backend-wsgi-server:8000
    ports:
      - '9000:80'
    depends_on:
      - backend-wsgi-server
    networks:
      - chatgpt_ui_network

networks:
  chatgpt_ui_network:
    driver: bridge

DB_URL 格式对照表

数据库 链接
PostgreSQL postgres://USER:PASSWORD@HOST:PORT/NAME
MySQL mysql://USER:PASSWORD@HOST:PORT/NAME
SQLite sqlite:///PATH

设置 API 密钥

访问 http(s)://your.domain:9000/admin / IP http(s)://123.123.123.123:9000/admin 登录管理面板。

默认超级用户: admin

默认密码: password

在可以开始聊天之前,您需要添加一个 OpenAI 的 API 密钥。在管理面板的设置模型中,添加一个名称为 openai_api_key 的记录,将值设置为您的 API 密钥。

现在可以访问客户端地址 http(s)://your.domain / http://123.123.123.123 开始聊天。

续杯咖啡

如果对您有帮助,也是在帮助我自己.

如果你想支持我,给我续杯咖啡吧 ❤️ https://www.buymeacoffee.com/WongSaang

Development

Setup

Make sure to install the dependencies:

# yarn
yarn install

Development Server

Start the development server on http://localhost:3000

yarn dev

Production

Build the application for production:

yarn build