介紹
在當今資訊爆炸的時代,我們常常需要處理大量的資訊並且尋找特定的答案。AI問答知識庫是一種基於人工智慧技術的系統,旨在透過理解自然語言問題並從儲存的知識庫中提取相關資訊,以準確、快速地回答使用者的問題。這種技術不僅在搜尋引擎、智慧助手和客戶服務領域有著廣泛的應用,還在醫療、金融、教育等各個領域展現了巨大的潛力。
本地部署優勢
雖然雲端提供了便捷的AI服務,但有時在本地部署AI問答知識庫可能更為合適。首先,本地部署可以提供更高的隱私和安全性,特別是對於一些敏感的資料或機密資訊而言。其次,本地部署可以更好地控制資源和成本,避免了對雲服務的依賴。此外,本地部署還可以提供更快的響應速度和更好的定製化,滿足特定業務需求。
技術架構
技術選型
採用FastGpt來實現本地知識庫
FastGPT 的能力與優勢
FastGPT 是一個基於 LLM 大語言模型的知識庫問答系統,提供開箱即用的資料處理、模型呼叫等能力。同時可以透過 Flow 視覺化進行工作流編排,從而實現複雜的問答場景!
-
專案開源
FastGPT 遵循附加條件 Apache License 2.0 開源協議,你可以 Fork 之後進行二次開發和釋出。FastGPT 社群版將保留核心功能,商業版僅在社群版基礎上使用 API 的形式進行擴充套件,不影響學習使用。
-
獨特的 QA 結構
針對客服問答場景設計的 QA 結構,提高在大量資料場景中的問答準確性。
-
視覺化工作流
透過 Flow 模組展示了從問題輸入到模型輸出的完整流程,便於除錯和設計複雜流程。
-
無限擴充套件
基於 API 進行擴充套件,無需修改 FastGPT 原始碼,也可快速接入現有的程式中。
-
便於除錯
提供搜尋測試、引用修改、完整對話預覽等多種除錯途徑。
-
支援多種模型
支援 GPT、Claude、文心一言等多種 LLM 模型,未來也將支援自定義的向量模型。
功能清單
1. 專屬 AI 客服
透過匯入文件或已有問答對進行訓練,讓 AI 模型能根據你的文件以互動式對話方式回答問題。
2. 簡單易用的視覺化介面
FastGPT 採用直觀的視覺化介面設計,為各種應用場景提供了豐富實用的功能。透過簡潔易懂的操作步驟,可以輕鬆完成 AI 客服的建立和訓練流程。
3. 自動資料預處理
提供手動輸入、直接分段、LLM 自動處理和 CSV 等多種資料匯入途徑,其中“直接分段”支援透過 PDF、WORD、Markdown 和 CSV 文件內容作為上下文。FastGPT 會自動對文字資料進行預處理、向量化和 QA 分割,節省手動訓練時間,提升效能。
4. 工作流編排
基於 Flow 模組的工作流編排,可以幫助你設計更加複雜的問答流程。例如查詢資料庫、查詢庫存、預約實驗室等。
5. 強大的 API 整合
FastGPT 對外的 API 介面對齊了 OpenAI 官方介面,可以直接接入現有的 GPT 應用,也可以輕鬆整合到企業微信、公眾號、飛書等平臺。
準備工作
伺服器配置要求
伺服器需要安裝好docker環境
部署過程
部署架構圖
部署說明
安裝 Docker 和 docker-compose
# 安裝 Dockercurl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunsystemctl enable --now docker# 安裝 docker-composecurl -L https://github.com/docker/compose/releases/download/2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose# 驗證安裝docker -vdocker-compose -v# 如失效,自行百度~
給docker中的容器建立一個共用網路
docker network create my-network
安裝m3e向量模型
docker run -d --name m3e --network my-network -p 3030:6008 registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api
安裝one-api
docker run --name one-api --network my-network -d --restart always -p 3200:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
新增阿里通義千問模型和M3E模型
配置m3e向量模型
預設金鑰為:sk-aaabbbcccdddeeefffggghhhiiijjjkkk
安裝FastGpt
1.建立目錄並下載 docker-compose.yml
mkdir fastgptcd fastgptcurl -O https://raw.githubusercontent.com/labring/FastGPT/main/files/deploy/fastgpt/docker-compose.ymlcurl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
2.修改 docker-compose.yml 的環境變數
修改docker-compose.yml
中的OPENAI_BASE_URL
(API 介面的地址,需要加/v1)和CHAT_API_KEY
(API 介面的憑證)。
使用 OneAPI 的話,OPENAI_BASE_URL=OneAPI訪問地址/v1;CHAT_API_KEY=令牌
3.修改config.json 配置文字模型和向量模型
3.啟動容器
在 docker-compose.yml 同級目錄下執行
# 進入專案目錄cd 專案目錄# 啟動容器docker-compose pulldocker-compose up -d
4.初始化 Mongo 副本集(4.6.8以前可忽略)
# 檢視 mongo 容器是否正常執行docker ps# 進入容器docker exec -it mongo bash# 連線資料庫(這裡要填Mongo的使用者名稱和密碼)mongo -u myusername -p mypassword --authenticationDatabase admin# 初始化副本集。如果需要外網訪問,mongo:27017 可以改成 ip:27017。但是需要同時修改 FastGPT 連線的引數(MONGODB_URI=mongodb://myname:mypassword@mongo:27017/fastgpt?authSource=admin => MONGODB_URI=mongodb://myname:mypassword@ip:27017/fastgpt?authSource=admin)rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "mongo:27017" } ]})# 檢查狀態。如果提示 rs0 狀態,則代表執行成功rs.status()
使用案例
部署好後,訪問http://localhost:3001/
1.新增知識庫
匯入資料
2.建立應用
3.聊天測試
系統整合
fastgpt支援接入到其它系統裡, 同步釋出應用可以得到一個免登入的頁面,這個頁面可以直接透過iframe嵌入到其它系統裡。
參考文獻:
one-api
https://github.com/songquanpeng/one-api
M3E向量模型
https://zhuanlan.zhihu.com/p/675271031
fastgpt
https://doc.fastgpt.in/docs/intro/