iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0
生成式 AI

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

【Day21】前後端整合 (一) - 從前端發送 API 請求

  • 分享至 

  • xImage
  •  

溝通橋樑:建構前後端 API 請求

在 Streamlit 介面中,當使用者點擊按鈕或按下 Enter 鍵時,我們就需要將這些輸入傳遞給後端的 Python 程式碼,由 AI 執行複雜的運算和 Function Calling。今天,我們就來學習如何打造這個至關重要的溝通橋樑。

一、發起請求:Streamlit 的 Event Handler

在 Streamlit 專案中通常不需要寫複雜的 JavaScript 程式碼。Streamlit 的設計允許直接在 Python 中定義事件處理器 (Event Handler)。當使用者輸入文本並提交時,Streamlit 會自動觸發一個回呼(callback),重新運行包含 AI 邏輯的核心程式碼。

# 示範 Streamlit 如何觸發回呼
user_input = st.chat_input("請輸入您的問題...")

if user_input:
    # Streamlit 事件處理器,觸發後續的 AI 邏輯
    process_user_query(user_input)

二、格式化參數:從文字到 JSON

無論是直接在 Streamlit 內部處理,還是透過 API 請求將資料發送給獨立的後端服務,關鍵都是格式化 (Formatting)。

使用者輸入的往往是一整句自然語言(例如:「台北的景點」)。因此必須確保這個文本能夠被正確地擷取,並作為單一的 query 參數傳遞給後端的 AI 模型。如果使用獨立的後端(如 FastAPI),前端發送的請求體通常會是 JSON 格式:

// 前端發送的 JSON 請求體
{
  "query": "從台北 101 到故宮的路線",
  "user_id": "..." 
}

三、API 錯誤碼處理

一旦請求發送,前端必須準備好處理後端拋出的錯誤碼。如果後端 AI 服務崩潰或驗證失敗,前端不能只是顯示一片空白。我們必須捕捉這些異常,並顯示錯誤訊息,確保使用者體驗不會中斷。


上一篇
【Day20】前端介面開發 - 從Streamlit到部署介面
系列文
智慧旅遊顧問--結合 LLM 與 RAG 架構的台灣旅遊資訊助手21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言