通過計算巢創建專屬ChatBot
ChatBot是一款通過自然語言與人類進行交流的人機交流對話智能系統,您可以通過ChatBot搭建智能客服,構建企業知識庫用于智能問答。本文介紹如何通過計算巢配合AnalyticDB PostgreSQL版實例創建專屬ChatBot。
費用說明
創建一站式企業專屬Chatbot社區版(大模型+向量數據庫)服務時,系統會自動創建ECS實例以及AnalyticDB PostgreSQL版存儲彈性模式實例,以上實例資源會產生費用,關于費用信息的具體說明請參見以下計費文檔:
產品優勢
支持多模型:支持通義千問-7b、ChatGLM-6b、Llama2-7b 、Llama2-13b、百川-13b和Falcon-7b等模型,支持創建后切換模型。
支持GPU的集群管理:在測試的過程中可以使用低水位的GPU實例,隨著業務的增長,可以設置基于資源使用情況的動態GPU集群彈性管理,最大程度地節省GPU的開銷。
基于AnalyticDB PostgreSQL完整數據庫能力進行精細化的權限設計:可以基于開源代碼調整權限查詢,同時支持AnalyticDB PostgreSQL的知識庫管理配套相關API,可以更靈活地調用。
API與WebUI均可用:可快速實現AIGC后臺面向應用的靈活集成。
數據安全:所有數據、算法和GPU資源均為域內資源,無任何數據出域風險,充分保障企業核心數據無泄露隱患。
RAM用戶授權
如果您使用RAM用戶進行以下操作,需要提前對RAM用戶進行授權,關于計算巢所需的RAM權限以及如何設置RAM授權,請參見為用戶側RAM用戶(子賬號)授權。
創建服務實例
進入創建服務實例頁面。
在創建服務實例頁面,配置以下信息。
類型
參數
說明
選擇模板
選擇PAI-EAS模板。
服務實例名稱
設置服務實例的名稱,系統會隨機生成一個名稱,建議配置具有業務意義的名稱,便于后續識別。
地域
服務實例、ECS實例以及AnalyticDB PostgreSQL版實例所在地域。
付費類型配置
付費類型
根據需求選擇按量付費或包年包月。
本文以按量付費的付費類型為例。
ECS配置
實例類型
選擇ECS實例的規格。
實例密碼
ECS實例的登錄密碼。
白名單設置
ECS實例的白名單。
建議您將需要訪問大模型的服務器的IP地址加入白名單。
PAI-EAS模型配置
選擇大模型
選擇預配置的大模型。
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的使用方法,請參見什么是數據管理DMS。
PAI-EAS資源管理
開啟彈性擴縮容
PAI-EAS提供豐富的Serverless資源彈性能力,包括水平自動擴縮容功能、定時自動擴縮容功能和彈性資源池。在業務負載有顯著的波峰波谷時,為了不造成資源浪費,您可以開啟水平自動擴縮容功能。開啟后,服務會自動調整實例數量,實現動態管理線上服務的計算資源,從而保障業務平穩運行的同時提高資源利用率。
在服務實例的資源頁面,找到所屬產品為機器學習 PAI的資源,單擊資源ID即可進入人工智能平臺 PAI的服務詳情頁面。
單擊自動伸縮頁簽。
在彈性伸縮區域,單擊開啟彈性伸縮。
在自動彈性擴縮容設置對話框,配置最小實例數、最大實例數以及常規擴縮容指標。
如果您的調用量不大,想進行隨開隨停。建議您將最小實例數設置為0,最大實例數設置為1,常規擴縮容指標設置為單實例QPS伸縮閾值,單實例QPS伸縮閾值的值設置為1。該場景下,當沒有服務請求時,服務會自動停止;服務重新接受請求時,服務會自動啟動。
如果您每天的業務量較大且有不定期的波峰波谷時,您可以根據具體的業務情況。例如最小實例數設置為5,最大實例數設置為50,常規擴縮容指標設置為單實例QPS伸縮閾值,單實例QPS伸縮閾值的值設置為2。該場景下,服務會根據您的業務請求自動在5~50個實例之間進行彈性伸縮。
單擊開啟。
更換開源大模型
在服務實例的資源頁面,找到所屬產品為機器學習 PAI的資源,單擊資源ID即可進入人工智能平臺 PAI的服務詳情頁面。
單擊頁面右上方的更新服務。
在部署服務頁面,修改運行命令和GPU的實例規格,其他配置項保持默認。
不同模型的運行命令以及推薦的GPU實例規格如下。
模型
運行命令
推薦機型
llama2-13b
python api/api_server.py --port=8000 --model-path=meta-llama/Llama-2-13b-chat-hf --precision=fp16
V100(gn6e)
llama2-7b
python api/api_server.py--port=8000 --model-path=meta-llama/Llama-2-7b-chat-hf
GU30、A10
chatglm2-6b
python api/api_server.py --port=8000 --model-path=THUDM/chatglm2-6b
GU30、A10
Qwen-7b
python api/api_server.py --port=8000 --model-path=Qwen/Qwen-7B-Chat
GU30、A10
chatglm-6b
python api/api_server.py --port=8000 --model-path=THUDM/chatglm-6b
GU30、A10
baichuan-13b
python api/api_server.py --port=8000 --model-path=baichuan-inc/Baichuan-13B-Chat
V100(gn6e)
falcon-7b
python api/api_server.py --port=8000 --model-path=tiiuae/falcon-7b-instruct
GU30、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
更多問題,您可以加入釘釘群(釘釘群號:32960015260)進行咨詢。