---
# System prepended metadata

title: Amazon Bedrock Workshop for FSI (5. Flows)

---

# Amazon Bedrock Workshop for FSI (5. Flows)

## 目錄
- [實驗環境準備](https://hackmd.io/@6g-86IJuRWiQ17aprBneGQ/HkjF3MBcge)
- [1. Amazon Bedrock Foundation Model 使用概覽](https://hackmd.io/@6g-86IJuRWiQ17aprBneGQ/B1PFXXHcex)
- [2. Amazon Bedrock Knowledge Bases (Vector Store) for RAG](https://hackmd.io/@6g-86IJuRWiQ17aprBneGQ/ByyeB7r5eg)
- [3. Amazon Bedrock Knowledge Bases (Vector Store) for GraphRag](https://hackmd.io/@6g-86IJuRWiQ17aprBneGQ/HJmVw7S9gl)
- [4. Amazon Bedrock Agents](https://hackmd.io/@6g-86IJuRWiQ17aprBneGQ/HJe4D7Bcxl)
- [5. Amazon Bedrock Flows](#5-Amazon-Bedrock-Flows)
    - [5-1. 建立 Flow](#5-1-建立-Flow)
    - [5-2. 設計 Flow](#5-2-設計-Flow)
    - [5-3. 測試 Flow](#5-3-測試-Flow)
- [6. Amazon Bedrock Guardrails](https://hackmd.io/@6g-86IJuRWiQ17aprBneGQ/SJ0XvmH5lx)
- [其他相關參考資料](https://hackmd.io/@6g-86IJuRWiQ17aprBneGQ/B1Dw5XBclg)

---

## 5. Amazon Bedrock Flows

### 5-1. 建立 Flow
    
1. 進入 **Amazon Bedrock** 服務
![圖片](https://hackmd.io/_uploads/S1YeGJiJyl.png)

2. 點擊 **流程 (Flow)**
![image](https://hackmd.io/_uploads/BkH6YDLcee.png =100x)

3. 點擊 **建立流程**
![圖片](https://hackmd.io/_uploads/BJmpU3dhyg.png)

4. 輸入以下參數，完成後點擊 **建立流程**
    - 名稱：`chatbot-flow`
    - 服務角色名稱: `建立並使用新的服務角色`
    ![image](https://hackmd.io/_uploads/SJEZ9v85xl.png =500x)

[**[ ⤴️ 回到目錄]**](#目錄)

---

### 5-2. 設計 Flow

接下來，我們將進行 Chatbot 的流程建立，流程設計將利用大語言模型辨別客戶發問的問題，來評估是否要幫助客戶重新定義問題：
![圖片](https://hackmd.io/_uploads/ryYp92dnyg.png)

成品預計呈現如下：
    
![圖片](https://hackmd.io/_uploads/rJnHO2O3yg.png)
    
1. 移除 **Prompts** 與 **Flow output** 之間的線
    ![image](https://hackmd.io/_uploads/HyXE2DL9gx.png =600x)

2. 設定該 **提示 (Prompts)** 節點的設定如下：
    - 節點名稱： `rewrite_evalution`
    - 選擇 `在節點中定義`
    - 選取模型 `Anthropic > Claude Sonnet 4 v1`
    - 訊息：
    ```
    你是一位金融上雲諮詢助手，專門為用戶提供以下服務：
    <services>
    - 解答有關金融上雲法規的問題
    - 處理上雲遷移申請
    - 查詢上雲遷移申請狀態
    </services>

    你將仔細理解問題，並按照所提供的服務進行問題完整度的評估，並選擇該問題最合適的定義 (只選一個)，回應時只需要回應定義，禁止提供任何評論

    <question>
    {{user_question}}
    </question>

    <definition>
    more_info_required: 問題相當模糊或與服務範圍無關，建議用戶提供更完整的資訊
    rewrite_required: 問題在服務範圍內，但不夠清晰與明確，需要近一步修飾成更具體的問題
    qualified_question: 問題很明確，且符合在服務範圍
    </definition>

    <response>
    [ONE of definition]
    </response>
    ```
    - 完成示意 
    ![image](https://hackmd.io/_uploads/B1ckaPU9ex.png =500x)

3. 加入 **條件 (Condition)** 節點於畫布中，並調整以下設定：
    - 節點名稱：`rewrite_condition`
    - 輸入名稱：`definition`
    - 條件1：
        - 名稱： `qualified_question`
        - 條件：`definition == "qualified_question"`
    - 條件2：
        - 名稱： `rewrite_required`
        - 條件：`definition == "rewrite_required"`
    - 完成後將 **Prompts** *rewrite_evalution* 接上 **Condition** *rewrite_condition*
    ![圖片](https://hackmd.io/_uploads/rJnp1TOnJg.png =500x)

4. 加入 **代理程式 (Agent)** 節點於畫布中，並調整以下設定：
    - 節點名稱：`cloud_advisor`
    - 代理程式：`cloud-advisor`
    - 代理程式別名：`AgentTestAlias`
    - 關閉 *promptAttributes* 及 *sessionAttributes* 的 `啟用選用輸入`
    - 完成後將 **Condition** *rewrite_condition* 中 *qualified_question* 接上 **Agents** *cloud_advisor*，並且將 **Flow input** 接入 **Agents** *cloud_advisor* 的 input：
    ![圖片](https://hackmd.io/_uploads/H1O4d6unkg.png =500x)
    
5. 將 **Agents** *cloud_advisor* 接入 **Flow output**，並調整 **Flow output** 設定：
    - 節點名稱：`agent_reply`
    ![圖片](https://hackmd.io/_uploads/Bk_UdpO3kl.png =500x)
    
6. 加入 **提示 (Prompt)** 節點於畫布中，並調整以下設定：
    - 節點名稱：`rewrite_generation`
    - 選擇 `在節點中定義`
    - 選取模型 `Anthropic > Claude Sonnet 4 v1`
    - 訊息：
    ```
    你將仔細理解及評估用戶提出的問題，並依循服務範圍及規則評估，並進行用戶問題的優化及重寫，回應時只需要重寫問題，禁止提供任何評論

    <question>
    {{user_question}}
    </question>

    <services>
    - 解答有關金融上雲法規的問題
    - 處理上雲遷移申請
    - 查詢上雲遷移申請狀態
    </services>

    <rules>
    - 仔細理解客戶的問題，並思考調整策略及做法，並協助重新撰寫更清晰具體且完整的問題
    - 所有的對話內容都必須使用台灣中文
    </rules>

    <response>
    [重寫問題]
    </response>
    ```
    - 完成後將 **Condition** *rewrite_condition* 中 *rewrite_generation* 接上 **Prompt** *rewrite_generation*，並且將 **Flow input** 接入 **Prompts** *rewrite_generation* 的 input：
    ![圖片](https://hackmd.io/_uploads/rJgqOTdhkx.png =500x)
    
7. 加入 **代理程式 (Agent)** 節點於畫布中，並調整以下設定：
    - 節點名稱：`rewrite_cloud_advisor`
    - 代理程式：`cloud-advisor`
    - 代理程式別名：`AgentTestAlias`
    - 關閉 *promptAttributes* 及 *sessionAttributes* 的 `啟用選用輸入`
    - 完成後將 **Prompts** *rewrite_generation* 接上 **Agents** *rewrite_cloud_advisor*，並且將 **Prompts** 接入 **Agents** *cloud_advisor* 的 input：
    ![圖片](https://hackmd.io/_uploads/Hk3pO6O2Jg.png =500x)
    
8. 加入 **流程輸出 (Flow output)** 節點於畫布中，並調整以下設定：
    - 節點名稱：`agent_reply_with_rewrite`
    - 將 **Agents** *rewrite_cloud_advisor* 接入 **Flow output** *agent_reply_with_rewrite*
    ![圖片](https://hackmd.io/_uploads/rybgK6dhJe.png =500x)

9. 加入 **流程輸出 (Flow output)** 節點於畫布中，並調整以下設定：
    - 節點名稱：`unknown_question`
    - 將 **Condition** *rewrite_condition* 接入 **Flow output** *unknown_question*，並且將 **Prompts** 接入 **Flow output** *unknown_question* 的 input：
    ![圖片](https://hackmd.io/_uploads/rkUMKpdnJe.png =500x)
    
10. 以上步驟完成後，按下上方的 ![圖片](https://hackmd.io/_uploads/SkCtUaO31x.png =50x)

[**[ ⤴️ 回到目錄]**](#目錄)

---

### 5-3. 測試 Flow
1. 於右方測試框進行 Flow 測試
    ![圖片](https://hackmd.io/_uploads/BJL_vad3kx.png)
    ```
    嗨
    金融上雲的法規？
    保險業者上雲需要注意哪些事項？
    ```

    :::spoiler **回應結果示範**
    嗨
    ![圖片](https://hackmd.io/_uploads/S1cDK6O2Jg.png)

    金融上雲的法規？
    ![image](https://hackmd.io/_uploads/BkKNlOUcex.png)

    保險業者上雲需要注意哪些事項？
    ![圖片](https://hackmd.io/_uploads/BJDY9pOnJg.png)
    :::

---