本篇文章主要通過 Flexus 云服務器 X 實例 部署 RAG 開源項目 FastGPT,通過 FastGPT 可以使用大模型生成用戶需要的內容。 Flexus 云服務器 X 實例具有柔性算力,六倍性能,旗艦體驗,覆蓋高科技、零售、金融、游戲等行業大多數通用工作負載場景,完全可以支持 FastGPT 的部署、運行和使用,而且,Flexus 云服務器 X 實例 能夠提供完備的產品能力,可以基于業務訴求靈活自定義拓撲組網,支持靈活自定義 vCPU 和內存配比,完全基于業務資源訴求選擇合適規格,節省資源開銷等優勢,需要的小伙伴趕緊用起來吧!
一、FastGPT 簡介****
FastGPT 是一個基于 LLM 大語言模型的知識庫問答系統,提供開箱即用的數據處理、模型調用等能力。同時可以通過 Flow 可視化進行工作流編排,從而實現復雜的問答場景!
具有如下特性:
(1)專屬 AI 客服:通過導入文檔或已有問答對進行訓練,讓 AI 模型能根據你的文檔以交互式對話方式回答問題;
(2)簡單易用的可視化界面:FastGPT 采用直觀的可視化界面設計,為各種應用場景提供了豐富實用的功能。通過簡潔易懂的操作步驟,可以輕松完成 AI 客服的創建和訓練流程;
(3)自動數據預處理:提供手動輸入、直接分段、LLM 自動處理和 CSV 等多種數據導入途徑,其中“直接分段”支持通過 PDF、WORD、Markdown 和 CSV 文檔內容作為上下文。FastGPT 會自動對文本數據進行預處理、向量化和 QA 分割,節省手動訓練時間,提升效能;
(4)工作流編排:基于 Flow 模塊的工作流編排,可以幫助你設計更加復雜的問答流程。例如查詢數據庫、查詢庫存、預約實驗室等;
(5)強大的 API 集成:FastGPT 對外的 API 接口對齊了 OpenAI 官方接口,可以直接接入現有的 GPT 應用,也可以輕松集成到企業微信、公眾號、飛書等平臺。
二、FastGPT 部署****
2.1 下載啟動文件****
首先,創建一個目錄方便存儲部署的文件,執行如下命令創建目錄。
root@flexusx-7305:~# mkdir fastgpt
進入 fastgpt 目錄,下載 config.json 文件。
root@flexusx-7305:~# cd fastgpt
root@flexusx-7305:~/fastgpt# curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed
100 6637 100 6637 0 0 17283 0 --:--:-- --:--:-- --:--:-- 17283
root@flexusx-7305:~#
如上所示,下載成功。config.json 文件是用于配置 FastGPT,包括大模型、向量數據庫、重排模型等,config.json 文件部分內容如下所示。
{
"feConfigs": {
"lafEnv": "https://laf.dev" // laf 環境。 https://laf.run (杭州阿里云) ,或者私有化的 laf 環境。如果使用 Laf openapi 功能,需要最新版的 laf 。
},
"systemEnv": {
"vectorMaxProcess": 15,
"qaMaxProcess": 15,
"pgHNSWEfSearch": 100 // 向量搜索參數。越大,搜索越精確,但是速度越慢。設置為 100,有 99%+精度。
},
"llmModels": [
{
"model": "gpt-4o-mini", // 模型名(對應 OneAPI 中渠道的模型名)
"name": "gpt-4o-mini", // 模型別名
"avatar": "/imgs/model/openai.svg", // 模型的 logo
"maxContext": 125000, // 最大上下文
"maxResponse": 16000, // 最大回復
"quoteMaxToken": 120000, // 最大引用內容
"maxTemperature": 1.2, // 最大溫度
"charsPointsPrice": 0, // n 積分/1k token(商業版)
"censor": false, // 是否開啟敏感校驗(商業版)
"vision": true, // 是否支持圖片輸入
"datasetProcess": true, // 是否設置為知識庫處理模型(QA),務必保證至少有一個為 true,否則知識庫會報錯
"usedInClassify": true, // 是否用于問題分類(務必保證至少有一個為 true)
"usedInExtractFields": true, // 是否用于內容提取(務必保證至少有一個為 true)
"usedInToolCall": true, // 是否用于工具調用(務必保證至少有一個為 true)
"usedInQueryExtension": true, // 是否用于問題優化(務必保證至少有一個為 true)
"toolChoice": true, // 是否支持工具選擇(分類,內容提取,工具調用會用到。目前只有 gpt 支持)
"functionCall": false, // 是否支持函數調用(分類,內容提取,工具調用會用到。會優先使用 toolChoice,如果為 false,則使用 functionCall,如果仍為 false,則使用提示詞模式)
"customCQPrompt": "", // 自定義文本分類提示詞(不支持工具和函數調用的模型
"customExtractPrompt": "", // 自定義內容提取提示詞
"defaultSystemChatPrompt": "", // 對話默認攜帶的系統提示詞
"defaultConfig": {}, // 請求 API 時,挾帶一些默認配置(比如 GLM4 的 top_p)
"fieldMap": {} // 字段映射(o1 模型需要把 max_tokens 映射為 max_completion_tokens)
},
{
"model": "gpt-4o",
"name": "gpt-4o",
"avatar": "/imgs/model/openai.svg",
"maxContext": 125000,
"maxResponse": 4000,
"quoteMaxToken": 120000,
"maxTemperature": 1.2,
"charsPointsPrice": 0,
"censor": false,
"vision": true,
"datasetProcess": false,
"usedInClassify": true,
"usedInExtractFields": true,
"usedInToolCall": true,
"usedInQueryExtension": true,
"toolChoice": true,
"functionCall": false,
"customCQPrompt": "",
"customExtractPrompt": "",
"defaultSystemChatPrompt": "",
"defaultConfig": {},
"fieldMap": {}
},
然后,下載 Docker yml 文件,執行如下命令。
root@flexusx-7305:~/fastgpt# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml
% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed
100 5577 100 5577 0 0 14448 0 --:--:-- --:--:-- --:--:-- 14448
root@flexusx-7305:~#
docker-compose.yml 里面的鏡像需要修改為國內鏡像,如下所示。
version: '3.3'
services:
# db
pg:
#image: pgvector/pgvector:0.7.0-pg15 # docker hub
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0 # 阿里云
container_name: pg
restart: always
ports: # 生產環境建議不要暴露
- 5432:5432
networks:
- fastgpt
environment:
# 這里的配置只有首次運行生效。修改后,重啟鏡像是不會生效的。需要把持久化數據刪除再重啟,才有效果
- POSTGRES_USER=username
- POSTGRES_PASSWORD=password
- POSTGRES_DB=postgres
volumes:
- ./pg/data:/var/lib/postgresql/data
mongo:
#image: mongo:5.0.18 # dockerhub
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
# image: mongo:4.4.29 # cpu 不支持 AVX 時候使用
container_name: mongo
restart: always
ports:
- 27017:27017
networks:
- fastgpt
command: mongod --keyFile /data/mongodb.key --replSet rs0
environment:
- MONGO_INITDB_ROOT_USERNAME=myusername
- MONGO_INITDB_ROOT_PASSWORD=mypassword
volumes:
- ./mongo/data:/data/db
entrypoint:
- bash
- -c
- |
openssl rand -base64 128 > /data/mongodb.key
chmod 400 /data/mongodb.key
chown 999:999 /data/mongodb.key
echo 'const isInited = rs.status().ok === 1
if(!isInited){
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "mongo:27017" }
]
})
}' > /data/initReplicaSet.js
# 啟動 MongoDB 服務
exec docker-entrypoint.sh "$$@" &
# 等待 MongoDB 服務啟動
until mongo -u myusername -p mypassword --authenticationDatabase admin --eval "print('waited for connection')" > /dev/null 2>&1; do
echo "Waiting for MongoDB to start..."
sleep 2
done
# 執行初始化副本集的腳本
mongo -u myusername -p mypassword --authenticationDatabase admin /data/initReplicaSet.js
# 等待 docker-entrypoint.sh 腳本執行的 MongoDB 服務進程
wait $$!
fastgpt
sandbox:
container_name: sandbox
#image: ghcr.io/labring/fastgpt-sandbox:latest # git
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:latest # 阿里云
networks:
- fastgpt
restart: always
fastgpt:
container_name: fastgpt
#image: ghcr.io/labring/fastgpt:v4.8.9 # git
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.9 # 阿里云
ports:
- 3000:3000
networks:
- fastgpt
depends_on:
- mongo
- pg
- sandbox
restart: always
environment:
# root 密碼,用戶名為: root。如果需要修改 root 密碼,直接修改這個環境變量,并重啟即可。
- DEFAULT_ROOT_PSW=1234
# AI 模型的 API 地址哦。務必加 /v1。這里默認填寫了 OneApi 的訪問地址。
- OPENAI_BASE_URL=http://oneapi:3000/v1
# AI 模型的 API Key。(這里默認填寫了 OneAPI 的快速默認 key,測試通后,務必及時修改)
- CHAT_API_KEY=sk-fastgpt
# 數據庫最大連接數
- DB_MAX_LINK=30
# 登錄憑證密鑰
- TOKEN_KEY=any
# root 的密鑰,常用于升級時候的初始化請求
- ROOT_KEY=root_key
# 文件閱讀加密
- FILE_TOKEN_KEY=filetoken
# MongoDB 連接參數. 用戶名 myusername,密碼 mypassword。
- MONGODB_URI=mongodb://myusername:mypassword@mongo:27017/fastgpt?authSource=admin
# pg 連接參數
- PG_URL=postgresql://username:password@pg:5432/postgres
# sandbox 地址
- SANDBOX_URL=http://sandbox:3000
# 日志等級: debug, info, warn, error
- LOG_LEVEL=info
- STORE_LOG_LEVEL=warn
volumes:
- ./config.json:/app/data/config.json
............
需要將對應的鏡像(image 處)替換為國內鏡像源。
2.2 開放端口權限****
FastGPT 需要使用 3000 端口,所以需要開放 3000 端口。
在基本信息中,點擊安全組,如下所示。
然后,點擊配置規則,配置對應的端口,如下所示。
然后,點擊入方向規則,如下所示。
然后,點擊添加規則,如下所示。
最后,填寫優先級、策略、類型、協議端口、源地址等,點擊確定即可添加。
2.3啟動 FastGPT****
最后,執行命令docker-compose up -d 啟動容器,如下所示。
root@flexusx-7305:~/fastgpt# docker-compose up -d
Pulling pg (registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0)...
v0.7.0: Pulling from fastgpt/pgvector
b0a0cf830b12: Pull complete
b311dac095c3: Pull complete
36163cea98c3: Pull complete
fe401a45083b: Pull complete
b4f63e66f657: Pull complete
9a8245430c33: Pull complete
74c893d239e5: Pull complete
789ed9a95b21: Pull complete
5b691e4e12b4: Pull complete
e502d5360f88: Pull complete
0292671f3c2d: Pull complete
5247a27db111: Pull complete
b3a42a5269c3: Pull complete
5fc19b802589: Pull complete
973f95d4f335: Pull complete
694339e21380: Pull complete
Digest: sha256:27df42f0d0be8d5623ff1aea5fea7134e175af1cdef62d9df00b322a3c85edc9
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0
Pulling mongo (registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18)...
5.0.18: Pulling from fastgpt/mongo
99803d4b97f3: Pull complete
6653ceb22977: Pull complete
e067c5774dde: Pull complete
3f2512535c9b: Pull complete
95823dd64119: Pull complete
806644aafaf1: Pull complete
b6eb4ecca0a2: Pull complete
a85fb80d261c: Pull complete
b8e25023b418: Pull complete
Digest: sha256:2b7e5f3ddc4f4707cdf72bd55e50a0dbd34b5832e5e97d9fdf5adc19abebf068
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18
Pulling sandbox (registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:latest)...
latest: Pulling from fastgpt/fastgpt-sandbox
ec99f8b99825: Already exists
826542d541ab: Pull complete
dffcc26d5732: Pull complete
db472a6f05b5: Pull complete
ecd04a51a4f0: Pull complete
545ea84d560a: Pull complete
c58556c21eaf: Pull complete
Digest: sha256:713b33d3046df1dbad4d8a96e96d6768da40b37725aae51d62c65f78d142f7f0
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:latest
Pulling fastgpt (registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.9)...
v4.8.9: Pulling from fastgpt/fastgpt
ec99f8b99825: Already exists
826542d541ab: Already exists
dffcc26d5732: Already exists
db472a6f05b5: Already exists
491fb52a5552: Pull complete
e976869203ad: Pull complete
3752adf5e588: Pull complete
4f4fb700ef54: Pull complete
16dac137804b: Pull complete
6e71790b1b02: Pull complete
182766849e9d: Pull complete
dcb3c7036667: Pull complete
953e3286d363: Pull complete
b07e2289cb81: Pull complete
12cd02b56be5: Pull complete
1cb02e13b272: Pull complete
bf8bf6a61713: Pull complete
ccd96c6d5426: Pull complete
303d7b560361: Pull complete
9b6e2c2688e6: Pull complete
d44f4ca5f7c4: Pull complete
Digest: sha256:91e1bc8349f477c0c70b25a0dbeb7394240aac515ee5dd9e8c7c6e44b2d3da4a
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.9
Pulling mysql (registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36)...
8.0.36: Pulling from fastgpt/mysql
bd37f6d99203: Pull complete
d2433cba0951: Pull complete
13702d9fe3c3: Pull complete
83bcc87284a1: Pull complete
c38d8660e1fa: Pull complete
7e1bc321f421: Pull complete
bddd54b9c549: Pull complete
4eaae1e844ac: Pull complete
5196e1e87d8f: Pull complete
6586d096303c: Pull complete
cf55ff1c80af: Pull complete
Digest: sha256:c57363379dee26561c2e554f82e70704be4c8129bd0d10e29252cc0a34774004
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36
Pulling oneapi (registry.cn-hangzhou.aliyuncs.com/fastgpt/one-api:v0.6.6)...
v0.6.6: Pulling from fastgpt/one-api
4abcf2066143: Already exists
17841cb3f506: Pull complete
4394f95d2b0d: Pull complete
7fcd5fcce5af: Pull complete
Digest: sha256:480a8d63af5057f7d81437dc138da941998657779b6c0150fd5e595b6ff72c71
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/fastgpt/one-api:v0.6.6
Creating pg ... done
Creating mongo ... done
Creating sandbox ... done
Creating mysql ... done
如上所示,分別拉取了 pgvector、mongo、fastgpt-sandbox、fastgpt、mysql、one-api 鏡像。
通過 docker ps 查看當前運行的鏡像,如下所示。
root@flexusx-7305:~/fastgpt# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
68a1f9a73e58 registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.9 "sh -c 'node --max-o…" 22 hours ago Up 22 hours 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp fastgpt
b57af8cd1b6b registry.cn-hangzhou.aliyuncs.com/fastgpt/one-api:v0.6.6 "/one-api" 22 hours ago Up 22 hours 0.0.0.0:3001->3000/tcp, [::]:3001->3000/tcp oneapi
2de37c379c6a registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36 "docker-entrypoint.s…" 22 hours ago Up 22 hours 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
9d7906452f26 registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:latest "docker-entrypoint.s…" 22 hours ago Up 22 hours sandbox
6f9c7f088d9d registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 "bash -c 'openssl ra…" 22 hours ago Up 22 hours 0.0.0.0:27017->27017/tcp, :::27017->27017/tcp mongo
3867cf7f6df9 registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0 "docker-entrypoint.s…" 22 hours ago Up 22 hours 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp pg
89bb9f7a3dd1 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/justsong/one-api:v0.6.0 "/one-api" 2 days ago Up 23 hours 0.0.0.0:3002->3000/tcp, [::]:3002->3000/tcp one-api
65fe1c102df6 daocloud.io/library/mysql:8 "docker-entrypoint.s…" 4 days ago Up 23 hours 3306/tcp, 33060/tcp root_db_1
root@flexusx-7305:~/fastgpt#
三、FastGPT 運行****
3.1 登錄 FastGPT****
在瀏覽器中訪問http://服務器 IP:3000,FastGPT 界面如下所示。
默認用戶是 root,密碼是 1234,登錄后如下所示。
3.2 知識庫****
點擊知識庫,右上角點擊新建,如下所示。
然后填寫知識庫名稱,創建完成,知識庫如下所示。
然后,可以點擊新建/導入按鈕導入文檔。
3.3 應用****
點擊工作臺,點擊右上角新建,如下所示。
輸入名稱,創建應用完成,如下所示。
可以在 AI 配置中選擇模型,填寫提示詞,關聯知識庫,知識庫可以選擇 3.2 知識庫中創建的,如下所示。
配置完大模型后可以在右側聊天窗口開啟聊天。
四、總結****
通過本篇文章,使用 Flexus 云服務器 X 實例 實例部署 FastGPT,整個過程非常順利,包括:下載配置文件、拉取鏡像、啟動容器、遠程訪問 FastGPT 等,而且 Flexus 云服務器 X 實例 具有高安全性,開放端口需要配置對應的規則,可以保障 FastGPT 的安全運行,有需要的小伙伴趕緊用起來吧!
審核編輯 黃宇
-
云服務器
+關注
關注
0文章
662瀏覽量
13380 -
華為云
+關注
關注
3文章
2607瀏覽量
17477
發布評論請先 登錄
相關推薦
評論