ChatBot是一款通過自然語言與人類進行交流的人機交流對話智能系統,您可以通過ChatBot搭建智能客服,構建企業知識庫用於智能問答。本文介紹如何通過計算巢配合AnalyticDB PostgreSQL版執行個體建立專屬ChatBot。
費用說明
建立一站式企業專屬Chatbot社區版(大模型+向量資料庫)服務時,系統會自動建立ECS執行個體以及AnalyticDB PostgreSQL版儲存彈性模式執行個體,以上執行個體資源會產生費用,關於費用資訊的具體說明請參見以下計費文檔:
產品優勢
-
支援多模型:支援千問-7b、ChatGLM-6b、Llama2-7b 、Llama2-13b、等模型,支援建立後切換模型。
-
支援GPU的叢集管理:在測試的過程中可以使用低水位的GPU執行個體,隨著業務的增長,可以設定基於資源使用方式的動態GPU叢集彈性管理,最大程度地節省GPU的開銷。
-
基於AnalyticDB PostgreSQL完整資料庫能力進行精細化的許可權設計:可以基於開原始碼調整許可權查詢,同時支援AnalyticDB PostgreSQL的知識庫管理員配套相關API,可以更靈活地調用。
-
API與WebUI均可用:可快速實現AIGC後檯面嚮應用的靈活整合。
-
資料安全:所有資料、演算法和GPU資源均為域內資源,無任何資料出域風險,充分保障企業核心資料無泄露隱患。
RAM使用者授權
如果您使用RAM使用者進行以下操作,需要提前對RAM使用者進行授權,關於計算巢所需的RAM許可權以及如何設定RAM授權,請參見為使用者側RAM使用者(子帳號)授權。
操作視頻
建立服務執行個體
本文以GenAI-LLM-RAG為例。
-
進入建立服務執行個體頁面,在快速試用地區,單擊GenAI-LLM-RAG。
-
在創建服務實例頁面,配置以下資訊。
類型
參數
說明
服務執行個體名稱
設定服務執行個體的名稱,系統會隨機產生一個名稱,建議配置具有業務意義的名稱,便於後續識別。
地區
服務執行個體、ECS執行個體以及AnalyticDB PostgreSQL版執行個體所在地區。
付費類型配置
付費類型
根據需求選擇隨用隨付或訂用帳戶。
本文以隨用隨付的付費類型為例。
ECS配置
執行個體類型
選擇ECS執行個體的規格。
執行個體密碼
ECS執行個體的登入密碼。
白名單設定
ECS執行個體的白名單。
建議您將需要訪問大模型的伺服器的IP地址加入白名單。
PAI-EAS模型配置
選擇大模型
選擇預配置的大模型。本文以llama2-7b為例。
PAI執行個體規格
可選擇PAI服務的GPU規格,若無庫存則無法選中。
AnalyticDB PostgreSQL
執行個體規格
AnalyticDB PostgreSQL版執行個體的計算節點規格。
Segment儲存大小
AnalyticDB PostgreSQL版執行個體的計算節點儲存空間大小,單位為GB。
資料庫帳號名稱
AnalyticDB PostgreSQL版執行個體的初始帳號名稱。
資料庫密碼
AnalyticDB PostgreSQL版執行個體的初始帳號密碼。
應用配置
軟體登入名稱
大模型軟體的登入名稱稱,用於登入langchain Web服務。
軟體登入密碼
大模型軟體的登入密碼。
可用性區域配置
交換器可用性區域
選擇服務執行個體所在的可用性區域。
選擇網路設定
是否建立VPC
您可以選擇建立VPC也可以使用已有VPC,本文以建立VPC為例。
專用網路IPv4網段
輸入VPC的IP位址區段。
交換器子網網段
輸入虛擬交換器的IP位址區段。
標籤和資源群組
標籤
選擇服務執行個體需要綁定的標籤。
資源群組
選擇服務執行個體所屬的資源群組,相關介紹,請參見什麼是資源管理。
-
單擊下一步:確認訂單。
-
檢查依賴檢查、服務執行個體資訊與價格預覽地區,確認無誤後再進行後續操作。
說明如果依賴檢查中存在部分角色許可權未開通,單擊右側立即開通進行開通。完成開通後,請單擊該地區的重新整理按鈕。
-
單擊立即建立。
-
單擊去列表查看。
建立服務執行個體耗時約為10分鐘左右,您可以在服務執行個體頁面,查看服務執行個體的狀態,當狀態變為已部署表示已完成建立。
使用ChatBot
使用ChatBot前,您需要將知識問答相關的檔案上傳到知識庫中,以下步驟將指導您如何上傳檔案以及使用ChatBot。
-
在計算巢控制台的服務執行個體頁面,單擊目標服務執行個體ID,進入服務執行個體詳情頁面。
-
在服務執行個體詳情頁的立即使用地區,單擊Endpoint右側的連結。
-
在彈出的登入對話方塊中,輸出建立服務執行個體時設定的軟體登入名稱和軟體登入密碼,然後單擊登入。
-
在頁面右上方的請選擇使用模式地區,選擇知識庫問答。
-
在頁面右側配置知識庫地區,在請選擇要載入的知識庫專案下選擇建立知識庫,並輸入建立知識庫的名稱,單擊添加至知識庫選項。
-
設定文本入庫分句長度限制,您可以根據需求進行設定,此處推薦設定為500。
-
在建立知識庫中添加檔案。
-
上傳方式支援上傳檔案、上傳檔案和URL以及上傳檔案夾。
-
上傳的檔案支援PDF、 markdown,txt,word等格式。
-
如需刪除檔案,可以在刪除檔案介面進行刪除。
-
-
上傳完成後,您可以在頁面左下方提問內容,單擊提交進行問答。
資源管理
查看服務執行個體關聯的資源
-
在計算巢控制台的服務執行個體頁面,單擊目標服務執行個體ID,進入服務執行個體詳情頁面。
-
單擊資源頁簽。
AnalyticDB PostgreSQL資源管理
在資源頁面,找到所屬產品為雲原生資料倉儲 AnalyticDB PostgreSQL 版的資源,單擊資源ID即可進入AnalyticDB PostgreSQL版執行個體管理頁面。
更多關於AnalyticDB PostgreSQL版執行個體向量分析的介紹,請參見如下文檔:
如需額外的儲存和計算資源,請參見如下文檔進行執行個體管理:
查看AnalyticDB PostgreSQL版執行個體上的知識庫資料
-
在AnalyticDB PostgreSQL版執行個體管理頁面,單擊頁面右上方的登入資料庫。具體操作,請參見使用DMS登入資料庫。
說明資料庫帳號密碼為建立服務執行個體步驟中設定的資料庫帳號名稱與資料庫密碼。
-
成功登入後,在左側已登入執行個體中找到目標AnalyticDB PostgreSQL版執行個體,雙擊chatglmuser庫下的public Schema。
-
知識庫列表格儲存體在langchain_collections表。
-
單個知識庫及文檔上傳後的企業知識塊(chunk),會儲存於以知識庫命名的表內(包括embedding、chunk、檔案中繼資料以及原始檔案名稱等資訊)。
-
更多關於DMS的使用方法,請參見什麼是Data Management。
PAI-EAS資源管理
開啟彈性擴縮容
PAI-EAS提供豐富的Serverless資源彈效能力,包括水平自動擴縮容、定時自動擴縮容功能和彈性資源集區。在業務負載有顯著的波峰波穀時,為了不造成資源浪費,您可以開啟水平自動擴縮容功能。開啟後,服務會自動調整執行個體數量,實現動態管理線上服務的計算資源,從而保障業務平穩啟動並執行同時提高資源使用率。
-
在服務執行個體的資源頁面,找到所屬產品為Machine Learning Platform for AI的資源,單擊資源ID即可進入Platform for AI的服務詳情頁面。
-
單擊自動調整頁簽。
-
在Auto Scaling地區,單擊開啟Auto Scaling。
-
在自動彈性擴縮容設定對話方塊,配置最小執行個體數、最大執行個體數以及常規擴縮容指標。
-
如果您的調用量不大,想進行隨開隨停。建議您將最小執行個體數設定為0,最大執行個體數設定為1,常規擴縮容指標設定為單一實例QPS伸縮閾值,單一實例QPS伸縮閾值的值設定為1。該情境下,當沒有服務要求時,服務會自動停止;服務重新接受請求時,服務會自動啟動。
-
如果您每天的業務量較大且有不週期性波峰波穀時,您可以根據具體的業務情況。例如最小執行個體數設定為5,最大執行個體數設定為50,常規擴縮容指標設定為單一實例QPS伸縮閾值,單一實例QPS伸縮閾值的值設定為2。該情境下,服務會根據您的業務請求自動在5~50個執行個體之間進行Auto Scaling。
-
-
單擊開啟。
更換開源大模型
-
在服務執行個體的資源頁面,找到所屬產品為Machine Learning Platform for AI的資源,單擊資源ID即可進入Platform for AI的服務詳情頁面。
-
單擊頁面右上方的更新服務。
-
在部署服務頁面,修改運行命令和GPU的執行個體規格,其他配置項保持預設。
不同模型的運行命令以及推薦的GPU執行個體規格如下。
模型
運行命令
推薦機型
llama2-13b
python api/api_server.py --port=8000 --model-path=meta-llama/Llama-2-13b-chat-hf --precision=fp16V100(gn6e)
llama2-7b
python api/api_server.py--port=8000 --model-path=meta-llama/Llama-2-7b-chat-hfGU30、A10
chatglm2-6b
python api/api_server.py --port=8000 --model-path=THUDM/chatglm2-6bGU30、A10
Qwen-7b
python api/api_server.py --port=8000 --model-path=Qwen/Qwen-7B-ChatGU30、A10
-
單擊部署。
-
在部署服務對話方塊中,單擊確定。
常見問題
-
Q:如何使用向量檢索相關API?
A:請參見Java。
-
Q:如何查看服務執行個體部署進度?
A:建立服務執行個體後,會在10分鐘左右完成計算巢服務的建立(包括初始化ECS和AnalyticDB PostgreSQL向量資料庫),同時會非同步進行LLM大模型的下載,此過程需要花費大概30~60分鐘。如需查看模型下載進度,可登入ECS,查詢下載日誌。LLM大模型下載完成後,登入Web介面即可查看相關的Chatbot應用。
-
Q:建立計算巢服務後, 如何登入ECS?
A:您可以在服務執行個體的資源頁簽,找到資源類型為安全性群組 securitygroup的資源,單擊目標資源的資源ID。在ECS執行個體的基本資料頁面,單擊遠端連線。更多串連方式,請參見串連執行個體。
-
Q:如何重啟Langchain服務?
A:可以登入ECS執行如下命令進行重啟。
systemctl restart langchain-chatglm -
Q:如何查詢langchain日誌?
A:可以登入ECS執行如下命令進行查看。
journalctl -ef -u langchain-chatglm -
Q:服務完成後模型載入不成功?
A:開通服務後,系統會從huggingface上下載LLM模型到本地。國內地區下載服務時間可能較長,需要等待30~60分鐘,請等待完成後再登入介面,選擇重新載入模型進行重試。
-
Q:如何查看部署代碼的詳細資料?
A:請參見langchain-ChatGLM文檔。
-
Q:如何申請產品團隊進行服務後台支援?
A:可以開通一站式企業專屬Chatbot營運服務進行服務支援。
-
Q:為什麼訪問服務是空白頁?
A:該服務是中國站的計算巢服務,所以如果有海外訪問代理的話可能會出現問題,需要關閉代理然後進行訪問建立。
-
Q:Langchain部署在ECS什麼地方?
A:Langchain部署在
/home/admin/langchain-ChatGLM路徑下。 -
Q:如何開通Langchain API?
A:請在ECS上執行命令進行開通。
#建立langchain-chatglm-api的systemd檔案 cp /lib/systemd/system/langchain-chatglm.service /lib/systemd/system/langchain-chatglm-api.service #修改/lib/systemd/system/langchain-chatglm-api.service中ExecStart #PAI-EAS版 ExecStart=/usr/bin/python3.9 /home/langchain/langchain-ChatGLM/api.py #GPU單機版 ExecStart=/usr/bin/python3.9 /home/admin/langchain-ChatGLM/api.py #重新載入systemd systemctl daemon-reload #啟動API systemctl restart langchain-chatglm-api # 然後開機記錄看到這個就啟動成功: INFO: Uvicorn running on http://0.0.0.0:7861 (Press CTRL+C to quit) # 查看所有的api: curl http://0.0.0.0:7861/openapi.json