Bedrock 知識庫聊天機器人end-to-end UI部署教學
背景說明
本篇文章提供 aws-samples/bedrock-chat的安裝補充說明
什麼是bedrock-chat
Bedrock-chat是aws社群提供的一個開源chatbot的範例應用。它基於bedrock提供的LLM服務基礎上,整合使用者驗證、資安防護、知識庫等功能,讓企業可以快速導入與測試開箱即用的私有知識庫聊天機器人,提升生產力。
適用對象
已經擁有aws帳號,想快速導入私有知識庫聊天機器人的IT人員
準備項目
- aws account 管理權限
- 確認要部署的區域。例如:ap-northeast-1
- 亦可先參考Github安裝教學影片
部署步驟
開啟aws console, 並切換到對應的region。以ap-northeast-1為例:
- 貼上並執行以下指令,下載程式碼
1 2 3
git clone https://github.com/aws-samples/bedrock-chat.git cd bedrock-chat chmod +x bin.sh
- 執行以下指令,選擇y開始進行安裝。這步驟大約會花到35分鐘
記得更改您的aws區域,參數是bedrockRegion
1
2
3
4
5
6
./bin.sh --cdk-json-override '{
"context": {
"selfSignUpEnabled": false,
"bedrockRegion": "ap-northeast-1"
}
}'
設定步驟
- 啟用對應的大語言模型:
不同區域可選模型略有不同,使用者可依實際需求進行測試
2.到Cloudformation取得前端網址:
- 搜尋
CloudFormation - 在 Stacks 找到
BedrockChatStack的選項 - 點擊進入
Frontend URL會具有以下格式: https://xxxxxxxxx.cloudfront.net
3.到Cognito新增user
- 搜尋
Cognito - 在
User pools選擇AuthUserPoolxxxxx-xxxxxxx
- 在User Management 選擇 Users > Create User
按照步驟完成新增user
4.回到Frontend URL, 應可完成登入
使用說明
1.最基礎的對談,請先參考 Github基礎操作
接下來,我們可透過創建Bot,完成更多功能
2.透過Agent進行搜尋後,再回覆內容
搜尋是透過Duckduckgo或Firecrawl完成的
之後使用時,先選擇創建的bot,然後再進行提問,程式即會先就問題搜尋結果,然後閱讀理解後,再進行回答。
問答時,需選擇其中一個剛剛啟用的模型。一般來說,簡易回答可以優先選擇Nova Lite或Haiku,複雜的問題可以選擇Nova Pro或Sonnet。
3.創建知識庫(Knowledge Base),回答問題前,bot會先參考企業內部文件,取得企業獨有知識,減少幻覺並精確回覆需要的內容
點擊 Bot Console > + Create New Bot
- 輸入Name: 知識庫bot
- 輸入Instructions: (Prompt). Insturction結構上可以使用
Role+Instruction+Example來建構,例如:
1
2
3
4
5
你是一個生技產業的專家,請用中文回答問題。
如果問到實驗紀錄,引用的資料應依據時間排序,並說明多筆實驗中是否有關聯、有的話實驗與實驗中的關聯設計為何。
<Good Example>
{輸入希望LLM回覆的範例結果}
</Good Example>
- 創建一個KB (Knowledge)
KB目前支援三種方式。
- Create New Knowledge Base - File 直接透過chatbot網頁上傳檔案。適合快速測試或少量檔案的場景。
- Create New Knowledge Base - S3 Data Source。如果您檔案會集中上傳到s3,可以將之綁定。
- Use your existing knowledge base - 選定Bedrock KB ID。如果您有既有的Bedrock KB,可以將之重複使用。
如果選擇2,3的方式,需確認知識庫有定期進行同步,方可查詢到結果。步驟請參考bedrock官方文件
- 之後使用時,先選擇創建的bot,然後再進行提問,程式即會先就問題於上傳的檔案中搜尋結果,然後閱讀理解後,再進行回答。
問答時,需選擇其中一個剛剛啟用的模型。一般來說,簡易回答可以優先選擇Nova Lite或Haiku,複雜的問題可以選擇Nova Pro或Sonnet。
更新方式
此Github專案截止2025-03-21尚在積極開發中,因此會不定時釋出功能更新與修補。如要更新,目前有兩種方式:
1.透過原有方式更新
- 此方式相對簡單,但是缺點重新部署後,Frontend Url會變更。(資料還是會保留)
- 回到
CloudShell,更新程式碼1 2
cd bedrock-claude-chat git pull
- 進行部署
1 2 3 4 5 6
./bin.sh --cdk-json-override '{ "context": { "selfSignUpEnabled": false, "bedrockRegion": "ap-northeast-1" } }'
2.透過cdk更新
Cloudshell的
$HOME有1GB大小的限制,因此無法在原目錄進行下方操作。建議使用個人Unix環境,或是另外開啟一台EC2的linux進行。您可使用AWS Free tier挑選適合的t系列型號來進行。
- 確保使用的Linux機器
- 已使用aws configure設定aws身份,並取得對應管理權限
- 已安裝docker和Node.js
- 更新 cdk.json
1 2 3 4
cd bedrock-claude-chat cd cdk sed -i 's/"bedrockRegion"[^,]*,/"bedrockRegion": "ap-northeast-1",/g' cdk.json sed -i 's/"selfSignUpEnabled"[^,]*,/"selfSignUpEnabled": false,/g' cdk.json
- 第一次操作時,須先執行以下指令。未來再次更新時則不需要。
1
npx cdk bootstrap
- 執行更新
1
npx cdk deploy --require-approval never --all
- Github參考步驟
後續調整方向
- 資料整合進s3建議
- 優化查詢內容
- 是否需要使用公司域名(例如:https://rag.yourdomain.com)
- 確認可訪問的公司白名單ip,限縮訪問範圍
- 強化驗證,透過OIDC串接公司SSO(如Entra ID)或開啟MFA
- 成本優化
- 客製化需求
可以聯繫您的aws account team 取得更多協助











