三分鐘快速構建大語言模型AI知識庫
FastGPT
FastGPT 是一個基于 LLM 大語言模型的知識庫問答系統,提供開箱即用的數據處理、模型調用等能力。同時可以通過 Flow 可視化進行工作流編排,從而實現復雜的問答場景!
知識庫核心流程圖
圖片
圖片來源:https://doc.fastgpt.in
私有化部署
這里使用 Docker Compose 快速進行 FastGPT 私有化部署
1、安裝 Docker
# 安裝 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker
# 安裝 docker-compose
curl -L https://github.com/docker/compose/releases/download/2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 驗證安裝
docker -v
docker-compose -v如果已經安裝,直接跳過就是
2、容器編排
創建一個本地目錄并且進入該目錄
mkdir tinywan-fastgpt
cd tinywan-fastgpt以上創建目錄路徑為/d/Tinywan/GPT/tinywan-fastgpt
docker-compose.yml 配置文件
version: '3.3'
services:
pg:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.5.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
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
container_name: mongo
restart: always
ports: # 生產環境建議不要暴露
- 27017:27017
networks:
- fastgpt
environment:
# 這里的配置只有首次運行生效。修改后,重啟鏡像是不會生效的。需要把持久化數據刪除再重啟,才有效果
- MONGO_INITDB_ROOT_USERNAME=username
- MONGO_INITDB_ROOT_PASSWORD=password
volumes:
- ./mongo/data:/data/db
fastgpt:
container_name: fastgpt
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest # 阿里云
ports:
- 3000:3000
networks:
- fastgpt
depends_on:
- mongo
- pg
restart: always
environment:
# root 密碼,用戶名為: root
- DEFAULT_ROOT_PSW=123465
# 中轉地址,如果是用官方號,不需要管
- OPENAI_BASE_URL=https://api.openai.com/v1
- CHAT_API_KEY=sb-xxx
- DB_MAX_LINK=5 # database max link
- TOKEN_KEY=any
- ROOT_KEY=root_key
- FILE_TOKEN_KEY=filetoken
# mongo 配置,不需要改. 如果連不上,可能需要去掉 ?authSource=admin
- MONGODB_URI=mongodb://username:password@mongo:27017/fastgpt?authSource=admin
# pg配置. 不需要改
- PG_URL=postgresql://username:password@pg:5432/postgres
volumes:
- ./config.json:/app/data/config.json
networks:
fastgpt:注:請填寫CHAT_API_KEY對應的值。
config.json 配置文件
{
"SystemParams": {
"pluginBaseUrl": "",
"vectorMaxProcess": 15,
"qaMaxProcess": 15,
"pgHNSWEfSearch": 100
},
"ChatModels": [
{
"model": "gpt-3.5-turbo-1106",
"name": "GPT35-1106",
"price": 0,
"maxContext": 16000,
"maxResponse": 4000,
"quoteMaxToken": 2000,
"maxTemperature": 1.2,
"censor": false,
"vision": false,
"defaultSystemChatPrompt": ""
},
{
"model": "gpt-3.5-turbo-16k",
"name": "GPT35-16k",
"maxContext": 16000,
"maxResponse": 16000,
"price": 0,
"quoteMaxToken": 8000,
"maxTemperature": 1.2,
"censor": false,
"vision": false,
"defaultSystemChatPrompt": ""
},
{
"model": "gpt-4",
"name": "GPT4-8k",
"maxContext": 8000,
"maxResponse": 8000,
"price": 0,
"quoteMaxToken": 4000,
"maxTemperature": 1.2,
"censor": false,
"vision": false,
"defaultSystemChatPrompt": ""
},
{
"model": "gpt-4-vision-preview",
"name": "GPT4-Vision",
"maxContext": 128000,
"maxResponse": 4000,
"price": 0,
"quoteMaxToken": 100000,
"maxTemperature": 1.2,
"censor": false,
"vision": true,
"defaultSystemChatPrompt": ""
}
],
"QAModels": [
{
"model": "gpt-3.5-turbo-16k",
"name": "GPT35-16k",
"maxContext": 16000,
"maxResponse": 16000,
"price": 0
}
],
"CQModels": [
{
"model": "gpt-3.5-turbo-1106",
"name": "GPT35-1106",
"maxContext": 16000,
"maxResponse": 4000,
"price": 0,
"functionCall": true,
"functionPrompt": ""
},
{
"model": "gpt-4",
"name": "GPT4-8k",
"maxContext": 8000,
"maxResponse": 8000,
"price": 0,
"functionCall": true,
"functionPrompt": ""
}
],
"ExtractModels": [
{
"model": "gpt-3.5-turbo-1106",
"name": "GPT35-1106",
"maxContext": 16000,
"maxResponse": 4000,
"price": 0,
"functionCall": true,
"functionPrompt": ""
}
],
"QGModels": [
{
"model": "gpt-3.5-turbo-1106",
"name": "GPT35-1106",
"maxContext": 1600,
"maxResponse": 4000,
"price": 0
}
],
"VectorModels": [
{
"model": "text-embedding-ada-002",
"name": "Embedding-2",
"price": 0.2,
"defaultToken": 700,
"maxToken": 3000
}
],
"AudioSpeechModels": [
{
"model": "tts-1",
"name": "OpenAI TTS1",
"price": 0,
"voices": [
{
"label": "Alloy",
"value": "alloy",
"bufferId": "openai-Alloy"
},
{
"label": "Echo",
"value": "echo",
"bufferId": "openai-Echo"
},
{
"label": "Fable",
"value": "fable",
"bufferId": "openai-Fable"
},
{
"label": "Onyx",
"value": "onyx",
"bufferId": "openai-Onyx"
},
{
"label": "Nova",
"value": "nova",
"bufferId": "openai-Nova"
},
{
"label": "Shimmer",
"value": "shimmer",
"bufferId": "openai-Shimmer"
}
]
}
],
"WhisperModel": {
"model": "whisper-1",
"name": "Whisper1",
"price": 0
}
}3、啟動容器
通過命令docker-compose pull 獲取更新版本的鏡像
圖片
通過命令docker-compose up -d 啟動容器
圖片
查看容器啟動情況
圖片
4、訪問 FastGPT
目前可以通過 ip:3000 直接訪問。這里是本地部署,所以直接通過 http://127.0.0.1:3000 直接訪問即可。
部署成功訪問頁面如下所示
圖片
登錄用戶名為 root,密碼為docker-compose.yml環境變量里設置的 DEFAULT_ROOT_PSW。
登錄成功訪問頁面如下所示
圖片
構建知識庫
創建知識庫
成功登錄后,新建一個知識庫,取名開源技術小棧。
圖片
通過文件將個人經歷導入到知識庫中
【新建/導入】【文件導入】
圖片
確認后就開始將當前數據轉化為向量數據
圖片
選擇文件導入時,可以選擇直接分段方案。直接分段會利用句子分詞器對文本進行一定長度拆分,最終分割中多組的q。如果使用了直接分段方案,我們建議在應用設置引用提示詞時,使用通用模板即可,無需選擇問答模板。
導入成功
圖片
至此,個人知識庫已經建好了。嘗試進行測試問答
圖片
鏈接訓練數據
https://mp.weixin.qq.com/s/1GD8eKrxJWXdgS3OKR4VHQ
https://mp.weixin.qq.com/s/BFdfDXHavZ_jZwVaFq2duQ
https://mp.weixin.qq.com/s/mNhMCzUtLUKrIzqSVa-qZA
https://mp.weixin.qq.com/s/n4n-0UCWJW9u2N1ca3HisQ
https://mp.weixin.qq.com/s/WXAPxHYteX7h1Hu73KEnFQ
https://mp.weixin.qq.com/s/chI8IbenaMFejvS7blLsBw
圖片
等待所有數據準備就緒
圖片
使用知識庫
創建應用
使用知識庫必須要創建一個應用
圖片
關聯知識庫
設置了開場白并且選擇綁定對應知識庫開源技術小棧
圖片
點擊保存預留后,可以直接在右邊調試預覽框預覽對話進行文檔內容測試。
開始對話
圖片
圖片
點擊鏈接查看知識庫引用
圖片
打開對應鏈接可以直接跳轉到微信公眾號文章地址
總結
構建私有數據訓練服務,針對問題提供精準回答。可以通過AI服務訓練自有數據,形成AI知識庫,然后創建不同的機器人針對用戶問題提供精準回答。并且可以通過API接口很方便整合到自己的產品服務中。






























