當後端的 AI 模型完成了 Function Calling 和所有運算後,它會將最終的答案(無論是自然語言回覆,還是景點列表)以 JSON 格式回傳給前端。
這個 JSON 結構通常會比單純的文字複雜,例如:景點查詢的回傳值可能是一個列表(List),其中每個元素都是一個包含「名稱」、「地址」、「評分」的字典。
在 Streamlit 中,我們直接在 Python 後端接收這個結構化的資料。解析的關鍵在於確保資料結構的穩定性。我們需要透過 Python 的字典和列表操作,層層解構這些數據:
# 假設後端回傳了一個包含景點列表的字典
response_data = api_response.json()
attractions = response_data.get("attractions", [])
# 檢查 attractions 是否存在,然後開始迭代解析
if attractions:
# 開始解析每一個景點的名稱、地址和評分
for item in attractions:
name = item.get("name")
rating = item.get("rating")
# ... 渲染邏輯
成功解析數據後,我們必須利用 Streamlit 優秀的 UI 組件將其渲染出來。這一步是決定使用者體驗的關鍵:
Markdown 格式化:使用 st.markdown() 語法將景點名稱加粗,或將評分用Emoji標記出來。
分區呈現:對於交通路線,我們可以將總長度、預計時間放在頂部,然後將詳細的交通步驟放入 st.expander() 中。