iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0
生成式 AI

智慧旅遊顧問--結合 LLM 與 RAG 架構的台灣旅遊資訊助手系列 第 22

【Day22】前後端整合 (一) - 接收與解析回傳值

  • 分享至 

  • xImage
  •  

一、接收與解析複雜 JSON

當後端的 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() 中。


上一篇
【Day21】前後端整合 (一) - 從前端發送 API 請求
下一篇
【Day23】部署實戰 (一) - 選擇雲端平台與服務
系列文
智慧旅遊顧問--結合 LLM 與 RAG 架構的台灣旅遊資訊助手28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言