LobeChat 是什麼?
LobeChat 是一個現代化設計的開源聊天應用與開發框架,旨在為用戶提供 ChatGPT、Gemini、Claude 和 Ollama 等多種大語言模型的接入。它支持語音合成、多模態互動以及可擴展的插件系統,使用戶可以輕鬆創建和管理自己的聊天應用。
LobeChat 的特性
- 多模型服務商支持:可以接入多種大語言模型。
- 本地大語言模型支持:允許用戶在本地運行大語言模型。
- 模型視覺識別:具備視覺識別能力。
- 語音會話(TTS & STT):支持文本轉語音和語音轉文本。
- 文本生成圖像:實現文本到圖像的轉換功能。
- 插件系統:可擴展功能,通過插件實現特定需求。
- 助手市場:提供多種助手供用戶選擇。
- 多用戶管理:支持多用戶環境。
- 漸進式 Web 應用(PWA):兼容移動設備,提供良好的用戶體驗。
- 自定義主題:用戶可以自定義界面風格。
為什麼要部署服務端資料庫版?
使用 1panel 部署 LobeChat 的服務端資料庫版,用戶可以享受更強大的數據管理能力。相較於客戶端資料庫模式,服務端資料庫模式的優勢在於:
- 數據存儲位置:數據存儲在伺服器上,可以跨設備訪問。
- 訪問權限:支持多用戶共享,適合團隊或組織使用。
- 數據量:適合存儲大數據量,支持高併發訪問。
安裝需要的前提條件
-
Docker 手動安裝:
- LobeChat 資料庫版本:
lobehub/lobe-chat-database
- 帶有 PGVector 插件的 PostgreSQL 資料庫:
pgvector/pgvector:pg17
- LobeChat 資料庫版本:
-
1panel 一鍵安裝:
- 支持 S3 協議的對象存儲服務,自建 S3 存儲:MinIO
-
1panel 一鍵安裝(也可以 Docker 手動安裝):
- 受 LobeChat 支持的 SSO 登入鑑權服務,自建 SSO 服務:Casdoor
安裝帶有 PGVector 插件的 PostgreSQL 資料庫
首先,我們將根據官方教程,使用 Docker 容器新建一個 PostgreSQL 資料庫。
為什麼不使用 1panel 的一鍵構建?
有些小夥伴可能會疑惑,為什麼不使用 1panel 的一鍵構建?因為 1Panel 的一鍵構建不預裝 PGVector 插件。在這裡,我們將手動安裝,圖形化操作也非常簡單。
拉取 PGVector 鏡像
- 在 1panel 中,點擊 容器。
- 點擊 鏡像 ,然後選擇 拉取鏡像。
- 輸入鏡像名稱:
pgvector/pgvector:pg17
(官方教程中使用的是 16 版本)。 - 點擊 拉取。
這樣,您就可以成功拉取並安裝帶有 PGVector 插件的 PostgreSQL 資料庫了。
創建 PostgreSQL 容器
在這一步,我們將創建一個名為 my-postgres
的 PostgreSQL 容器。
容器設置
- 名稱:
my-postgres
- 鏡像名:
pgvector/pgvector:pg17
- 端口:
- 暴露端口:
5432
- 注意:如果該端口已被佔用,請修改為其他可用的伺服器端口。
- 暴露端口:
- 網絡:選擇默認的 1panel 網絡即可。
- IPv4 地址:留空
- 請注意,不留空無法創建容器。
掛載卷設置
- 宿主機目錄(本機目錄):
/opt/1panel/apps/postgresql/my-postgre/data
- 容器目錄:
/var/lib/postgresql/data
環境變數設置
PostgreSQL 環境變數設置
在創建 PostgreSQL 容器時,請設置以下環境變數:
POSTGRES_USER=admin
POSTGRES_PASSWORD=admin
PGDATA=/var/lib/postgresql/data
這些環境變數將幫助您配置 PostgreSQL 容器的用戶名、密碼和數據存儲位置。確保在創建容器時正確設置這些變數,以便順利運行 PostgreSQL。
- 用戶名:請設置您的 PostgreSQL 用戶名。
- 密碼:請設置您的 PostgreSQL 密碼。
- 掛載目錄:確保掛載目錄正確配置。
檢測資料庫是否可用
- 通過 1panel 內置的資料庫功能,添加遠程伺服器。
- 點擊 有驗證,如果顯示可用,則表示資料庫已成功連接。
新建一個資料庫
在此步驟中,您需要新建一個資料庫,以便稍後使用。
連接 PostgreSQL 時的注意事項
- 防火牆設置:
- 請確保防火牆已關閉,或者手動開放 PostgreSQL 的端口(通常是 5432)。
- 這一點非常重要,否則您將無法通過內網的 IP 連接到資料庫。
確保遵循以上步驟,以便順利檢測和連接 PostgreSQL 資料庫。
支持 S3 協議的對象存儲服務 – MinIO
如果您已經擁有 S3 對象存儲,可以跳過當前這個步驟。
MinIO 的使用方式
使用 MinIO 非常簡單,主要步驟如下:
-
安裝 MinIO:
- 可以通過 1panel 一鍵安裝。
- 在應用商店中搜索 MinIO 進行安裝。
-
創建桶:
- 安裝完成後,您需要創建一個桶(bucket)來存儲您的對象。
-
更改權限:
- 根據需要設置桶的訪問權限。
-
設置秘鑰:
- 設置相應的訪問秘鑰和密鑰,以便進行身份驗證。
端口設置
- 端口:
- 如果端口被佔用,請修改端口設定。
外部訪問
- 確保已開放相應端口以便外部訪問。
這樣,您就可以順利使用 MinIO 來支持 S3 協議的對象存儲服務。如果您有其他問題或需要進一步的幫助,請隨時告訴我!
新建一個桶
創建桶的步驟
- 進入 Buckets 頁面。
- 點擊 Create Bucket。
- 輸入桶的名稱 Name,然後點擊 Create Bucket。
- 將桶的訪問權限更改為 公共:
- 如果不設為公共,則無法訪問桶中的內容。
設置訪問策略
- 在 Buckets 頁面中,選擇您剛創建的桶(例如:
lobechat
)。 - 點擊 Access Policy。
- 選擇 Public。
創建秘鑰
-
新建一個秘鑰,系統將會生成以下秘鑰:
- Access Key:
E4c8Q1iXg625sMBUJ0B5
- Secret Key:
hX7T0kGl0Pdg9v2B93DgvOk9MayNHhP9mopGUPuJ
- Access Key:
訪問域名
- 訪問域名格式為:
ip + 端口
- 例如:
http://10.255.255.242:9009
這樣您就能順利創建一個公共桶並設置訪問秘鑰。
受 LobeChat 支持的 SSO 登錄鑑權服務 – Casdoor
安裝步驟
-
一鍵安裝 Casdoor:
- 通過 1panel 的應用商店搜索 Casdoor 進行安裝。
-
端口設置:
- 如果端口被佔用,請修改端口設定。
- 我這裡使用的端口為 8000。
-
外部訪問:
- 確保已開放相應端口以便外部訪問。
注意事項
- 由於我上方安裝的是 PostgreSQL 資料庫,這與 1panel 的一鍵安裝可能不兼容,因此需要特別注意。
這樣您就能順利安裝 Casdoor 作為 SSO 登錄鑑權服務。
以下是您提供的內容整理為 Markdown 格式:
創建 Casdoor 容器
1. 數據庫設置
- 手動新建一個 PostgreSQL 數據庫,以下是設置參數:
- 用戶名:
mycasdoor
- 名稱:
mycasdoor
- 密碼:
mEjT7KnFfAW44knZ
- 用戶名:
2. 容器設置
- 名稱:
my-casdoor
- 鏡像名:
casbin/casdoor: 版本
- 端口:
- 默認暴露端口:
8000
- 如果端口被佔用,請修改為
8001
。
- 默認暴露端口:
- 網絡:選擇默認的 1panel 即可。
- IPv4:
172.18.0.253
(請根據您的實際地址進行調整,為了防止衝突,我使用最後幾個地址)。 - 掛載:
- 本機目錄:
/opt/1panel/apps/casdoor/mycasdoor/conf
- 容器目錄:
/conf
(請注意是本機目錄,手動創建的不要重複)。
- 本機目錄:
3. 環境變量設置
- 設置以下環境變量:
plaintext
RUNNING_IN_DOCKER=true # 告訴系統運行在容器中
dataSourceName=user=mycasdoor password=mEjT7KnFfAW44knZ host=10.255.255.242 port=5432 sslmode=disable dbname=mycasdoor
dbName=mycasdoor
driverName=postgres
4. 訪問界面檢測
- 默認登錄用戶名:
admin
- 默認密碼:
123
新建一個 Casdoor 應用
1. 添加應用
根據官方教程進行設置:
- 身份認證 -> 應用 -> 添加
應用設置參數:
- 名稱:
LobeChat
- 顯示名稱:
LobeChat
- 客戶端 ID:
86094cf0438b7df7d2db
(自定生成,不需要填寫,下面要用) - 客戶端秘鑰:
0eb22f536455ddfdde06639652a8763ac3862db7
(自定生成,不需要填寫,下面要用) - 重定向 URLs:
http://10.255.255.242:3210/api/auth/callback/casdoor
(LobeChat 服務地址,如果您更改了端口請注意修改)
2. 保存設置
- 保存即可,其他設置可以保持默認。
搭建好後的注意事項
- 確保端口已開放,並檢查防火牆設置,否則無法正常訪問。
開始安裝 LobeChat 數據庫版
1. 拉取 LobeChat 鏡像
按照以下步驟進行操作:
- 點擊 容器。
- 點擊 鏡像。
- 點擊 拉取鏡像。
- 輸入鏡像名:
lobehub/lobe-chat-database
(不加版本則默認為最新版)。 - 點擊 拉取。
2. 創建 LobeChat 數據庫容器
根據官方教程進行設置:
- 名稱:
my-lobe-chat-database
- 鏡像名:
lobehub/lobe-chat-database:latest
- 端口:
- 默認暴露端口:
3210
- 如果端口被佔用,請修改為其他可用的伺服器端口。
- 默認暴露端口:
- 網絡:選擇默認的 1panel 即可。
- IPv4:
172.18.0.251
(請根據您的實際地址進行調整,為了防止衝突,我使用最後幾個地址)。
這樣您就能順利安裝 LobeChat 數據庫版。如果您有其他問題或需要進一步的幫助,請隨時告訴我!
環境變量:
# 你 LobeChat 访问的地址,请注意你的端口号是否正确
APP_URL=http://192.168.1.105:3210
#DB 必须的环境变量
# 用于加密敏感信息的密钥,可以使用 openssl rand -base64 32 生成
KEY_VAULTS_SECRET='dvy9O/6gMcy8k7Jnfbb1mI8he03efDQ6m0iknR8XppQ='
# Postgres 数据库连接字符串
# 格式:postgres://username:password@host:port/dbname,如果你的 pg 实例为 Docker 容器,请使用容器名,当然可以内网访问的也可以使用内网 ip
# DATABASE_URL=postgres://mylobehub:4jMwz6Gr43SafXMX@my-postgres:5432/mylobehub
DATABASE_URL=postgres://lobe_chat_postgres:[email protected]:5432/lobe_chat_postgres
#SSO 必须的环境变量
#加密敏感信息的秘钥
NEXT_AUTH_SECRET=3904039cd41ea1bdf6c93db0db96e250
#你使用的 sso 的类型
NEXT_AUTH_SSO_PROVIDERS=casdoor
#不同类型的变量名称不同,请注意,下面是客户端 ID 和客户端秘钥
AUTH_CASDOOR_ID=c7c8efbc87681140e018
AUTH_CASDOOR_SECRET=42766e67b2e4f9c82ac27fb6264707590705f0f9
#填写 casdoor 访问地址即可
AUTH_CASDOOR_ISSUER=http://192.168.1.105:8000
#填写的 lobechat 的地址,请注意你的端口,要和前面 APP_URL 一样哦
NEXTAUTH_URL=http://192.168.1.105:3210/api/auth
#debug,用来看日志反馈
NEXT_AUTH_DEBUG=1
#s3 必须的环境变量
#id
S3_ACCESS_KEY_ID=VKx90CsvzZEPAtL8etPO
#秘钥
S3_SECRET_ACCESS_KEY=od6fPuicuIbGaHvnSS7PS2D7O3TFGFwBHScbl5DA
#minIO 访问的 API 地址,端口更改了请注意
S3_ENDPOINT=http://192.168.1.105:9001
#s3 桶名
S3_BUCKET=lobechat
#s3 访问地址,我这里没有做操作依旧是 api 的地址
S3_PUBLIC_DOMAIN=http://192.168.1.105:9001