Docker Compose 快速部署FastGPT 手把手教你基於 FastGPT搭建個人知識庫
文章目錄
一、安裝 Docker 和 docker-compose
二、創建目錄並下載 docker-compose.yml
依次執行下面命令,創建 FastGPT 文件並拉取docker-compose.yml
和config.json
,執行完後目錄下會有 2 個文件。
非 Linux 環境或無法訪問外網環境,可手動創建一個目錄,並下載下面2個鏈接的文件: docker-compose.yml,config.json
注意: docker-compose.yml
配置文件中 Mongo 為 5.x,部分伺服器不支持,需手動更改其鏡像版本為 4.4.24
三、修改 docker-compose.yml 的環境變數
修改docker-compose.yml
中的OPENAI_BASE_URL
(API 介面的地址,需要加/v1)和CHAT_API_KEY
(API 介面的憑證)。
使用 OneAPI 的話,OPENAI_BASE_URL=OneAPI訪問地址/v1;CHAT_API_KEY=令牌
四、啟動容器
在 docker-compose.yml 同級目錄下執行
五、初始化 Mongo 副本集(4.6.8以前可忽略)
FastGPT 4.6.8 後使用了 MongoDB 的事務,需要運行在副本集上。副本集沒法自動化初始化,需手動操作。
關於 host: 「mongo:27017」 說明
- mongo:27017 代表指向同一個 docker 網路的 mongo 容器的 27017 服務。因此,如果使用該參數,外網是無法訪問到資料庫的。
- ip:27017 (ip替換成公網IP):代表通過你的公網IP進行訪問。如果用該方法,同時需要修改 docker-compose 中 mongo 的連接參數,因為默認是用
mongo:27017
進行連接。
五、訪問 FastGPT
目前可以通過 ip:3000
直接訪問(注意防火牆)。登錄用戶名為 root
,密碼為docker-compose.yml
環境變數里設置的 DEFAULT_ROOT_PSW
。
如果需要域名訪問,請自行安裝並配置 Nginx。
FAQ
Mongo 啟動失敗
docker-compose 示例優化 Mongo 副本集參數,不需要手動創建再掛載。如果無法啟動,可以嘗試更換下面的腳本:
- 終端中執行:
- 修改 docker-compose.yml:
- 重啟服務
- 進入容器執行副本集合初始化(看上方)
官方文檔:https://doc.fastgpt.in/docs/development/docker/
安裝並使用 FastGPT。
FastGPT
官方簡介
❝ FastGPT 是一個基於 LLM 大語言模型的知識庫問答系統,提供開箱即用的數據處理、模型調用等能力。同時可以通過 Flow 可視化進行工作流編排,從而實現複雜的問答場景!
❞
知識庫核心流程圖
一,安裝 FastGPT
- 安裝 Docker
2. 創建配置文件
- 創建 docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# 非 host 版本, 不使用本機代理 # (不懂 Docker 的,只需要關心 OPENAI_BASE_URL 和 CHAT_API_KEY 即可!) version: '3.3' services: pg: image: ankane/pgvector:v0.5.0 # git # 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: ghcr.io/labring/fastgpt:latest # git # 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=1234 # 中轉地址,如果是用官方號,不需要管。務必加 /v1 - OPENAI_BASE_URL=https://api.openai.com/v1 - CHAT_API_KEY=替換成你的OPENAI-KEY - 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 的值換成自己 openai key。」
- 再創建 config.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
{ "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", "name": "GPT35", "maxContext": 4000, "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 } ], "ReRankModels": [], "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 } } |
- 啟動
在 docker-compose.yml 同級目錄下執行
- 拉取鏡像
1 2 |
docker-compose pull |
- 運行容器
1 2 |
docker-compose up -d |
二,使用 FastGPT
- 訪問
瀏覽器通過http://localhost:3000/進行訪問
登錄用戶名為 root,密碼為 docker-compose.yml 環境變數里設置的 DEFAULT ROOT PSW,默認是 1234.
- 新建知識庫
新建一個知識庫,這裡我是專門的存儲酷殼網站上的文章,所以就命名為酷殼。
- 導入文檔
通過文件導入已經下載好的文章
確認後就開始將當前數據轉化為向量數據
這兩篇文章字數可能破完了,完全導入好,所花費的時間可能會有半個小時乃至一個小時.....,由於文本限制問題,按照固定字數拆分若干個數據集
這是已經拆分好的,還有 5 個在排隊,先測試一下。
- 使用知識庫
新建一個應用
- 綁定剛剛的知識庫
- 開始對話,效果展示如下:
這裡有個小問題,
1. 帶 [親測] 說明源碼已經被站長親測過!
2. 下載後的源碼請在24小時內刪除,僅供學慣用途!
3. 分享目的僅供大家學習和交流,請不要用於商業用途!
4. 本站資源售價只是贊助,收取費用僅維持本站的日常運營所需!
5. 本站所有資源來源於站長上傳和網路,如有侵權請郵件聯繫站長!
6. 沒帶 [親測] 代表站長時間緊促,站長會保持每天更新 [親測] 源碼 !
7. 盜版ripro用戶購買ripro美化無擔保,若設置不成功/不生效我們不支持退款!
8. 本站提供的源碼、模板、插件等等其他資源,都不包含技術服務請大家諒解!
9. 如果你也有好源碼或者教程,可以到審核區發布,分享有金幣獎勵和額外收入!
10.如果您購買了某個產品,而我們還沒來得及更新,請聯繫站長或留言催更,謝謝理解 !
GG資源網 » Docker Compose 快速部署FastGPT 手把手教你基於 FastGPT搭建個人知識庫