本地部署AI問答知識庫

凌澜發表於2024-03-10

介紹

在當今資訊爆炸的時代,我們常常需要處理大量的資訊並且尋找特定的答案。AI問答知識庫是一種基於人工智慧技術的系統,旨在透過理解自然語言問題並從儲存的知識庫中提取相關資訊,以準確、快速地回答使用者的問題。這種技術不僅在搜尋引擎、智慧助手和客戶服務領域有著廣泛的應用,還在醫療、金融、教育等各個領域展現了巨大的潛力。

本地部署優勢

雖然雲端提供了便捷的AI服務,但有時在本地部署AI問答知識庫可能更為合適。首先,本地部署可以提供更高的隱私和安全性,特別是對於一些敏感的資料或機密資訊而言。其次,本地部署可以更好地控制資源和成本,避免了對雲服務的依賴。此外,本地部署還可以提供更快的響應速度和更好的定製化,滿足特定業務需求。

技術架構

圖片

技術選型

採用FastGpt來實現本地知識庫

FastGPT 的能力與優勢

FastGPT 是一個基於 LLM 大語言模型的知識庫問答系統,提供開箱即用的資料處理、模型呼叫等能力。同時可以透過 Flow 視覺化進行工作流編排,從而實現複雜的問答場景!

  1. 專案開源

    FastGPT 遵循附加條件 Apache License 2.0 開源協議,你可以 Fork 之後進行二次開發和釋出。FastGPT 社群版將保留核心功能,商業版僅在社群版基礎上使用 API 的形式進行擴充套件,不影響學習使用。

  2. 獨特的 QA 結構

    針對客服問答場景設計的 QA 結構,提高在大量資料場景中的問答準確性。

  3. 視覺化工作流

    透過 Flow 模組展示了從問題輸入到模型輸出的完整流程,便於除錯和設計複雜流程。

  4. 無限擴充套件

    基於 API 進行擴充套件,無需修改 FastGPT 原始碼,也可快速接入現有的程式中。

  5. 便於除錯

    提供搜尋測試、引用修改、完整對話預覽等多種除錯途徑。

  6. 支援多種模型

    支援 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/

相關文章