凌飞阁

AI系列:支持视觉识别和语音的多模态AI聊天项目:Lobe-chat数据库版部署教程

  经过多年快速发展,人工智能已融入我们生活的方方面面。它不仅成为日常生活的得力助手,也是工作中的高效工具。您现在阅读的这段文字,正是在我采纳了AI提供的修改建议后完成的。所以拥有一个自己的AI项目是一件非常有必要的事情。这里给大家带来一个极其优秀的支持语音合成、多模态、带有可扩展插件系统的开源项目-LobeChat
  此教程对于缺乏IT技能的人来说难度较大。如在部署过程中遇到问题,欢迎在评论区留言,我会及时解答。如果条件不允许,可以直接下载 (Cherry Studio)并绑定API进行使用。没有API的同学在阅读前请先通过我的邀请链接注册硅基流获得API以及14元的赠金。

教程开始前你首先需要具备以下知识和技能
==1、一个稳定可连接的服务器,并且已部署好LNMP环境==
==2、能进行基本的Linux下的命令行操作==
==3、已经安装好docker以及docker compose。==
==4、拥有一个可以用的域名==
==如果你尚未掌握这些技能,请自行搜索相关教程并学习。==

部署前的准备

想要完整的运行 LobeChat 数据库版本,需要至少拥有如下四个服务

稍后将通过Docker Compose部署第1项和第2项。
S3协议的对象储存服务将以Cloudflare为例。
登录鉴权服务将以Auth0为例

通过Docker-compose部署LobeChat数据库版及PostgreSQL数据库并设置鉴权服务

在你想要部署的文件夹里新建Docker-compose.yml文件 并复制以下内容

version: '3'
# docker-compose.yml
services:
  postgresql:
    image: pgvector/pgvector:pg16
    container_name: lobe-postgres
    ports:
      - 7432:5432 #7432是外部端口可根据你的需求自行更改
    volumes:
      - './data:/var/lib/postgresql/data'
    environment:
      - 'POSTGRES_USER=postgres' #数据库用户名
      - 'POSTGRES_DB=lobe'       #数据库名
      - 'POSTGRES_PASSWORD=password' #数据库密码
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U postgres']
      interval: 5s
      timeout: 5s
      retries: 5
    restart: always


  lobe:
    image: lobehub/lobe-chat-database
    container_name: lobe-database
    depends_on:
      - postgresql 
    ports:
      - 3210:3210 #左侧的端口是外部端口,可自行更改
    env_file:
      - .env
    restart: always


docker-compose文件编辑好后,在同目录新建一个.env文件,并复制以下内容。

APP_URL=https://yourdomin.com/  #填写你的项目域名
# DB 必须
KEY_VAULTS_SECRET=jgwsK28dspyVRTUIf8/33IIH345336LYY21NXeLpy6u=  #密钥可以使用openssl rand -base64 32 生成
DATABASE_URL=postgresql://postgres:password@postgresql:5432/lobe #记得修改密码
# NEXT_AUTH 相关
NEXT_AUTH_SECRET=  #NextAuth 的密钥,可以使用 openssl rand -base64 32 生成
NEXT_AUTH_SSO_PROVIDERS=auth0 
NEXTAUTH_URL= #参照后续鉴权内容
AUTH_AUTH0_ID= #指定鉴权服务提供商
AUTH_AUTH0_SECRET= #参照后续鉴权内容
AUTH_AUTH0_ISSUER= #参照后续鉴权内容

# S3 相关
S3_ACCESS_KEY_ID= #参照后续Cloudflare R2内容
S3_SECRET_ACCESS_KEY= #参照后续Cloudflare R2内容
S3_BUCKET= #参照后续Cloudflare R2内容
S3_ENDPOINT=#参照后续Cloudflare R2内容
S3_PUBLIC_DOMAIN=#参照后续Cloudflare R2内容

鉴权服务注册及设置。以 Auth0,为例(这里照搬官方文档)

注册并登录 Auth0,点击左侧导航栏的「Applications」,切换到应用管理界面,点击右上角「Create Application」以创建应用。

填写你想向组织用户显示的应用名称,可选择任意应用类型,点击「Create」。

创建成功后,点击相应的应用,进入应用详情页,切换到「Settings」标签页,就可以看到相应的配置信息

在应用配置页面中,还需要配置 Allowed Callback URLs,在此处填写:

http(s)://yourdomain/api/auth/callback/auth0


点击左侧导航栏的「Users Management」,进入用户管理界面,可以为你的组织新建用户,用以登录 LobeChat

更具Auth0的信息填写之前.env文件内容

NEXTAUTH_URL=   #https://yourdomin.com/api/auth
AUTH_AUTH0_ID=   #Auth0 应用程序的 Client ID
AUTH_AUTH0_SECRET= #Auth0 应用程序的 Client Secret
AUTH_AUTH0_ISSUER= #Auth0 应用程序的 Domain,

S3服务注册及设置,以Cloudflare R2为例

注册# Cloudflare
选择R2服务创建一个桶(BUCKET) 并且创建API(权限选择读与写)


创建完成后,就可以看到对应的 S3 API token 填入之前的配置文件

S3_ACCESS_KEY_ID= ##你创建API显示的ID
S3_SECRET_ACCESS_KEY= #你创建API显示的key
S3_BUCKET=lobechat # 你创建的桶的名字
S3_ENDPOINT=https:/xxxxx.r2.cloudflarestorage.com #CF显示存桶对外的访问域名 
S3_PUBLIC_DOMAIN=https://xxxxx.your-domain.com #记得按照CF说明Cname到这个域名,由CF管理的域名会自动Cname

在R2页面下的CORS跨域设置编辑添加一下规则

[
  {
    "AllowedOrigins": ["https://你lobechat的domin"],
    "AllowedMethods": ["GET", "PUT", "HEAD", "POST", "DELETE"],
    "AllowedHeaders": ["*"]
  }
]

回到你创建docker-compose.yml的目录 输入命令

docker-compose up -d

利用宝塔或着其他工具反代lobechat的外部端口,这里是3210
通过域名访问~
完成

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »