昨天規劃了 update
API,讓使用者可以與 AI 對話,依照需求修改行程。今天則是將整個流程串接完成,準備進行測試。
這個 update
API 主要有兩種模式:
建立 Session 的範例如下:
// ===== request =====
{
"itinerary": {
"title": "日月潭兩日遊",
"activities": [
{
"type": "transport",
"location": "日月潭",
"startTimeUtc": "2025-09-10T08:00:00Z",
"duration": 120,
"endTimeUtc": "2025-09-10T10:00:00Z",
"timeZone": "Asia/Taipei",
"transportType": "car",
"note": "從台灣其他城市前往日月潭",
"childActivities": [],
"latLng": {
"latitude": 23.857334200000004,
"longitude": 120.91591310000001
},
"placeUri": "https://maps.google.com/?cid=17012249724366005544&g_mp=CiVnb29nbGUubWFwcy5wbGFjZXMudjEuUGxhY2VzLkdldFBsYWNlEAAYBCAA"
}
]
},
"text": "幫我加入一個中餐行程"
}
// ===== response =====
{
"itinerary": null,
"sessionId": "481758166535634944",
"text": "請提供以下資訊,以便我為您加入午餐行程:\n\n1. 您希望午餐的時間是幾點?\n2. 您對午餐的餐廳類型或菜系有偏好嗎?\n3. 您希望午餐地點在哪個區域?(例如:日月潭水社碼頭附近、伊達邵碼頭附近等)"
}
接下來再使用 Session ID 繼續與 Agent 討論需求:
// ===== request =====
{
"sessionId": "481758166535634944",
"text": "午餐時間是中午12點,我想吃甕仔雞,地點要在日月潭水社馬頭附近"
}
// ===== response =====
{
"itinerary": {
"title": "日月潭兩日遊",
"activities": [
{
"type": "transport",
"location": "日月潭",
"startTimeUtc": "2025-09-10T00:00:00Z",
"duration": 120,
"endTimeUtc": "2025-09-10T02:00:00Z",
"timeZone": "Asia/Taipei",
"transportType": "car",
"note": "從台灣其他城市前往日月潭",
"childActivities": [],
"latLng": {
"latitude": 23.857334200000004,
"longitude": 120.91591310000001
},
"placeUri": "https://maps.google.com/?cid=17012249724366005544&g_mp=CiVnb29nbGUubWFwcy5wbGFjZXMudjEuUGxhY2VzLkdldFBsYWNlEAAYBCAA"
},
{
"type": "restaurant",
"location": "哖記紅茶甕缸雞(日月潭)",
"startTimeUtc": "2025-09-10T04:00:00Z",
"duration": 90,
"endTimeUtc": "2025-09-10T05:30:00Z",
"timeZone": "Asia/Taipei",
"transportType": "car",
"note": "享用美味的甕仔雞午餐",
"childActivities": [],
"latLng": {
"latitude": 23.847028899999998,
"longitude": 120.9321078
},
"placeUri": "https://maps.google.com/?cid=5738469112311302950&g_mp=CiVnb29nbGUuTWFwcy5QbGFjZXMuVjEuUGxhY2VzLkdldFBsYWNlEAAYBCAA"
}
]
},
"sessionId": "481758166535634944",
"text": "好的,我已為您加入日月潭的甕仔雞午餐行程。我選擇了「哖記紅茶甕缸雞(日月潭)」作為用餐地點,並預計用餐時間為90分鐘。\n\n請看修改後的行程:\n"
}
這樣就完成了一個對話功能!與之前的版本不同的是,現在特別要求 Agent 回傳行程時需加入可識別的開頭與結尾,這樣就能判斷 Agent 是在詢問問題,還是已經產生出完整行程:
- The JSON should begin with `STARTJSON` and end with "ENDJSON".
此外,也新增了刪除 Session 的 API 來清除對話。
總結 API 使用方式如下:
/get
API 讓 Agent 產生完整行程。/update
API 與 Agent 討論,重複呼叫直到 Agent 回傳完整行程表。/delete
API 刪除對話。至此,主要功能已開發完成!
以下是這幾天測試的花費:
一天不到 30 元,應該還算合理。目前仍在三個月的試用期內,因此暫時無需付費。接下來會研究試用期結束後的免費額度。
等 App 串接完成後,就能測試整體使用效果。行程產生部分還有一些可改善之處,預計明天進行優化。