• 首页
  • 随笔
  • 归档
  • 友链
  • 留言
  • 量化平台
  • 搜索
  • 夜间模式
    ©2019-2025  凌飞•Blog Theme by OneBlog
    搜索
    标签
    # 技术 # 汽车 # 游戏 # 诗词 # 分享 # 时评 # 文章 # 其他 # 教育 # 随笔
    技术分享

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

    2024.12.21 / 1.9 k 阅读 / 2 评论 / 4658 字
    技术分享

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

    阅读 1.9 k 评论 2 发表于2024.12.21

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

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

    部署前的准备

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

    • LobeChat 数据库版本自身
    • 带有 PGVector 插件的 PostgreSQL 数据库
    • 支持 S3 协议的对象存储服务
    • 受 LobeChat 支持的 SSO 登录鉴权服务

    稍后将通过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
    通过域名访问~
    完成

    本文著作权归作者 [ flynn ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    教程
    取消回复

    发表留言
    回复

    读者留言2

    1. 刘郎 Lv.4
      2024-12-25 04:23 回复

      这是实战经验吗😂

      1. flynn 博主
        2024-12-25 11:24 回复
        @刘郎

        对 哈哈

    加载更多评论
    加载中...
    — 已加载全部评论 —
    首页随笔归档友链留言量化平台
    Copyright©2019-2025  All Rights Reserved.  Load:0.038 s
    Theme by OneBlog V3.6.4
    夜间模式
    KUCAT盟2025101000号

    图片预览

    ×

    开源不易,请尊重作者版权,保留基本的版权信息。