私有化部署LobeChat

一、LobeChat介绍

LobeChat 是开源的高性能聊天机器人框架,支持语音合成、多模态、可扩展的(Function Call)插件系统。
支持一键免费部署私人 ChatGPT/LLM 网页应用程序。

官方 GitHub 地址:https://github.com/lobehub/lobe-chat
官方 Demo:https://chat-preview.lobehub.com
官方文档:https://github.com/lobehub/lobe-chat/wiki

二、安装步骤

一、Vercel一键部署

点击 一键部署,登录账号

image-20231222153219601

创建仓库

image-20231222153400768

填写 OPEN_API_KEY

image-20231222153427973

点击Deploy进行部署,等待部署完成撒花即可

image-20231222154916680

然后就可以愉快地聊天了

image-20231222155529190

如果你想设置访问密码,可以在设置页面添加环境变量,变量名称为 ACCESS_CODE

image-20231222155514166

然后重新部署下项目使配置生效

image-20231222160401999

设置访问密码后许输入正确的访问密码才能使用

image-20231222162433068

如果想要定时自动同步代码,可以 启动自动更新

进入自己Fork的仓库内,找到Actions

image-20240828170744200

创建sync.yml文件

image-20240828171239489

内容直接从官方文件复制

https://github.com/lobehub/lobe-chat/blob/main/.github/workflows/sync.yml

同步频率默认为6小时同步一次,我觉得同步太频繁了,可以改为每周同步一次,比如每周的周日进行同步

1
2
3
on:
schedule:
- cron: '0 0 * * 0' # every Sunday at midnight

二、Docker Compose部署

1
2
3
4
5
6
7
sudo -i

mkdir -p /root/docker_data/lobe

cd /root/docker_data/lobe

vim docker-compose.yml

英文模式下输入 i ,粘贴以下内容

1
2
3
4
5
6
7
8
9
10
11
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: sglobe

修改以下内容

OPENAI_API_KEY: 你的 OpenAI key,可在登录OpenAi后访问https://platform.openai.com/api-keys 进行创建

ACCESS_CODE: 访问密码,别人可以用你的访问密码进行登录,不过消耗的是你的Api额度

修改好之后,按一下 esc,然后 :wq 保存退出

安全组放行 3210端口,也可调整为其他端口,例如调整为8080端口

1
2
ports:
- '8080:3210'

新增放行规则

image-20231212232741903

执行 docker-compose up -d 进行部署

image-20231212215152969

部署成功后首次访问进入如下界面

image-20231212233148931

使用以下命令即可使用一键启动 LobeChat 服务:

1
2
3
4
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e ACCESS_CODE=lobe66 \
lobehub/lobe-chat

如果你需要通过代理使用 OpenAI 服务,你可以使用 OPENAI_PROXY_URL 环境变量来配置代理地址:

1
2
3
4
5
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e OPENAI_PROXY_URL=https://api-proxy.com/v1 \
-e ACCESS_CODE=lobe66 \
lobehub/lobe-chat

2.1环境变量

该项目提供了一些额外的配置项,使用环境变量进行设置:

环境变量 类型 描述 示例
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!

2.2 更新

项目最近更新比较频繁,建议大家及时跟着更新。

1
2
3
4
5
6
7
8

cd /root/docker_data/lobe

docker-compose pull

docker-compose up -d # 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

提示:

1
2
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

输入 y

2.3 卸载

同样进入安装页面,先停止所有容器。

1
2
3
4
5
6
7
cd /root/docker_data/lobe

docker-compose down

cd ..

rm -rf /root/docker_data/lobe # 完全删除

五、使用

1、设置自定义提示词

image-20231222135306808

2、内置角色

image-20231222135042998

3、插件商店

有天气、时钟、搜索引擎 和 网络爬虫等实用插件

image-20231222135751427

例如用询问一下最近一周Github上star最多的项目

image-20231222134041240

使用该功能需绑定插件API密钥

联网插件API获取:https://serpapi.com/

注册需要邮箱即手机号验证

免费账号一个月有100次调用额度

image-20231222134746196

4、语音功能

点击小话筒可以语音输入,也可将反馈的结果语音朗读

image-20231222140257503