前言
最新发现了一个功能强大的 ChatGPT Web 应用 - LobeChat
功能特性:
- 免代理
- 支持语音输入输出
- 支持图像识别
- 支持PWA应用
- 多角色助手
- 丰富的插件生态系统
- 支持Vercel、Zeabur、Docker部署
- ......
相关准备&链接
- 服务器 / VPS、Vercel、Zeabur账号
- 服务器需要安装docker、docker-compose环境
- 反代服务(宝塔、Caddy、Nginx、Nginx Proxy Manager 等反代工具)
- 官方 Demo:chat-preview.lobehub.com
- LobeChat GitHub地址:github.com/lobehub/lob...
搭建方式
推荐两种部署方式:
- 有服务器:Docker部署
- 无服务器:Vercel、Zeabur部署
Vercel、Zeabur部署
如果想在 Vercel 或 Zeabur 上部署该服务,可以按照以下步骤进行操作:
- 准备好你的 OpenAI API Key 。
- 点击下方按钮开始部署: 直接使用 GitHub 账号登录即可,记得在环境变量页填入
OPENAI_API_KEY
(必填)和ACCESS_CODE
(推荐); - 部署完毕后,即可开始使用;
- 绑定自定义域名(可选):Vercel 分配的域名 DNS 在某些区域被污染了,绑定自定义域名即可直连。目前 Zeabur 提供的域名还未被污染,大多数地区都可以直连。
使用 Vercel 部署 | 使用 Zeabur 部署 |
---|---|
戳我部署 | 戳我部署 |
保持更新 如果你根据 README 中的一键部署步骤部署了自己的项目,你可能会发现总是被提示 "有可用更新"。这是因为 Vercel 默认为你创建新项目而非 fork 本项目,这将导致无法准确检测更新。
建议按照 📘 LobeChat 自部署保持更新 步骤重新部署。
Docker部署
docker命令方式
可以直接执行下面命令把 Docker 容器启动起来:
ini
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e ACCESS_CODE=lobe66 \
lobehub/lobe-chat
docker-compose方式
docker-compose.yml
配置文件如下:
yaml
version: '3.8'
services:
lobe-chat:
image: lobehub/lobe-chat
container_name: lobe-chat
ports:
- '3210:3210'
environment:
OPENAI_API_KEY: sk-xxxx
ACCESS_CODE: xxxxxx
然后在 docker-compose.yml
文件的目录下执行下面命令即可启动容器:
docker-compose up -d
环境变量
环境变量 | 类型 | 描述 | 示例 |
---|---|---|---|
OPENAI_API_KEY |
必选 | 这是你在 OpenAI 账户页面申请的 API 密钥 | sk-xxxxxx...xxxxxx |
OPENAI_PROXY_URL |
可选 | 如果你手动配置了 OpenAI 接口代理,可以使用此配置项来覆盖默认的 OpenAI API 请求基础 URL | https://api.chatanywhere.cn/v1 默认值: https://api.openai.com/v1 |
OPENAI_FUNCTION_REGIONS |
可选 | 当你使用 Vercel 部署 Lobe-Chat,而且有需求指定响应调用 OpenAI 接口的请求的 Edge Function 的 Region 时,可以使用该配置进行配置,该值的类型为逗号分隔的字符串数组 | iad1,sfo1 |
ACCESS_CODE |
可选 | 添加访问此服务的密码,你可以设置一个长密码以防被爆破 | awCTe)re_r74 or rtrt_ewee3@09! |
如果需要配置
OPENAI_PROXY_URL
,可以参考:免费 API 代理服务 完整环境变量可见 📘环境变量
配置Nginx反选代理
Docker 容器运行成功后,可以配置反向代理,用域名进行访问,Nginx 配置示例如下:
ini
server {
server_name lobe-chat.example.com;
listen 443 ssl http2;
ssl_certificate <SSL证书路径>.cer;
ssl_certificate_key <SSL证书路径>.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
listen 80;
if ($scheme = http) {
return 301 https://$host:443$request_uri;
}
location / {
proxy_pass http://127.0.0.1:3210;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http:// https://;
}
}
使用
配置成功后,用配置的域名打开你的网站即可使用。
注意事项
- 如果想要使用图片识别功能,需要使用
gpt-4-vision-preview
模型 - 语音输入默认会自动结束,可以在 设置 -> 语音助手 -> 语音识别设置 中修改
自动结束语音识别
开关
更新
bash
# 进入 LobeChat 项目的 `docker-compose.yml` 文件的目录下,执行下面命令
# 拉取新镜像
docker-compose pull
# 更新项目容器
docker-compose up -d
# 删除未被使用的镜像(prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像)
docker image prune
卸载
bash
# 进入 LobeChat 项目的 `docker-compose.yml` 文件的目录下,执行下面命令
docker-compose down
# 然后删除 LobeChat 对应的文件/文件夹即可