# 旅遊小幫手 ## Introduction ### 目的 本系統旨在打造一個一站式的智慧 AI 旅遊助手平台,整合旅遊相關的各項功能,從查詢景點、行程規劃、導覽導遊、互動建模、到翻譯與記錄旅程,皆可在單一平台內完成。透過 AI 技術,我們希望使用者能: - 節省搜尋與安排的時間 - 根據個人需求獲得最佳推薦 - 在旅途中獲得即時、互動式的資訊支援 - 提升整體旅遊的效率與體驗品質 ### 動機 現今市面上的旅遊應用程式雖然功能豐富,但往往分散在多個平台中,導致使用者在行前、行中與行後都需要反覆切換不同 App,不僅操作麻煩,也容易遺漏重要資訊。此外: - 多數應用缺乏 AI 智能整合,無法針對個人偏好自動推薦與整理資訊。 - 許多使用者在行前做了大量功課,卻難以在旅途中快速回顧。 - 評論與資訊數量龐大且雜亂,使用者難以掌握重點。 - 部分功能如 AR/VR 導覽、語音翻譯、旅遊日記,仍未被主流平台完整納入。 因此,我們希望透過 AI 整合與創新互動介面,解決功能分散、資訊過載、使用效率低落等問題,提升使用者從規劃到旅行實際體驗的全流程便利性與智慧化。 ## Current System ### Comparison | 功能 | AI 旅遊助手 | chicTrip | TripAdvisor | Google Map | |:--:|:--:|:--:|:--:| :--: | | 地圖 | 提供室外地圖與即時資訊 | 無內建地圖<br>依賴 Google Maps | 無內建地圖<br>依賴 Google Maps |提供地圖與部分地點資訊 | | 興趣點 | 提供詳細資訊 | 提供詳細資訊 | 提供詳細資訊 | 提供詳細資訊 | | 評分與留言 | AI 匯總評分與推薦評論 | 支援使用者評分與留言 | 支援使用者評分與留言 | 支援使用者評分與留言 | | AI 歸納 | AI 整理並提供參考建議 | 不支援 | 不支援 | 不支援 | | 建模與查看 | 建模與互動 | 不支援 | 不支援 | 部分地點適用 | | 景點尋找 | AI 推薦旅遊景點 | 手動搜尋、無 AI 輔助 | 手動搜尋、無 AI 輔助 | 手動搜尋、無 AI 輔助 | | 景點導覽 | AI 文字或語音導覽 | 不支援 | 不支援 | 不支援 | | AR 導覽 | 現場獲取互動式資訊 | 不支援 | 不支援 | 部分地點適用 | | VR 導覽 | 虛擬實境體驗 | 不支援 | 不支援 | 部分地點適用 | | 景點規劃 | AI 自動生成最佳行程 | 手動規劃、無 AI 輔助 | 規劃推薦、無 AI 輔助 | 不支援 | | 路線規劃 | AI 推薦安排方式 | 根據距離推薦路線 | 手動拖移、無 AI 輔助 | 不支援 | | 旅遊日記 | 圖文記錄旅程、AI 整理 | 記錄日記、無 AI 整理 | 不支援 | 不支援 | | 景點清單 | 收藏景點、AI 推薦行程 | 收藏清單、無 AI 推薦 | 收藏清單、無 AI 推薦 | 收藏清單、無 AI 推薦 | | 商品清單 | 記錄想購買的商品 | 不支援 | 不支援 | 不支援 | | 即時對話翻譯 | 多語言即時語音翻譯 | 不支援 | 不支援 | 不支援 | | 即時掃描翻譯 | 透過相機快速掃描翻譯內容 | 不支援 | 不支援 | 不支援 | | 優點 | AI 旅遊助手 | chicTrip | TripAdvisor | Google Map | | :--: | :--: | :--:| :--:| :--: | | 整合分散功能 | 一站式體驗 | 功能較為獨立 | 無明顯整合功能 | 以地圖與導航為核心 | | AI 支援 | 各式 AI 功能 | 無 AI 支援 | 無 AI 功能 | 提供基於數據的建議 | | 介面簡單 | 簡單易用 | 簡單易懂 | 操作需習慣 | 介面簡潔 | | 清晰景點資訊 | AI 整理資訊 | 精選的資訊、簡潔 | 大量評論、雜亂 | 大量評論、雜亂 | | 大量的資料 | 整個網路都是資料 | 數據量有限| 評論與評分數多 | 評論與評分數多 | | 了解地點 | AI 生成摘要 | 完整度不一 | 提供不同觀點 | 提供不同觀點 | | 即時室外地圖 | 提供即時資訊 | 無即時地圖 | 無即時地圖 | 地圖功能完整 | | 精確導航 | AI 計算路線 | 依賴第三方地圖 | 無內建導航 | 導航功能完整 | | 支援全球範圍 | 整個網路都是資料 | 針對特定旅遊市場 | 部分區域資料較少 | 全球皆可使用 | | 缺點 | AI 旅遊助手 | chicTrip | TripAdvisor | Google Map | | :--| :-- | :-- | :-- | :-- | | AI 依賴性過強 | 極度仰賴 AI 判斷 | 無 AI 支援 | 無 AI 支援 | 無 AI 支援 | | 沒有 AI 輔助 | 有 AI 功能 | 無 AI 功能 | 無 AI 功能 | 無 AI 功能 | | 需要大量數據支持 | 需要大量的數據 | 少數使用者分享 | 許多使用者評論 | 全球使用者貢獻數據 | | 功能不夠完整 | 完整的功能體驗 | 功能較為單一 | 功能較為單一 | 功能較為單一 | | 評論偏向主觀 | AI 整理評論 | 評論較主觀 | 評論較主觀 | 評論較主觀 | | 沒有導覽 | AI 導覽 | 使用者手動安排 | 無導覽功能 | 無導覽功能 | | 沒有行程規劃 | AI 規劃行程 | 使用者手動安排 | 無規劃功能 | 使用者手動安排 | ## Proposed system ### Overview - 地圖服務 - 提供即時室外地圖,顯示位置與景點資訊,支援導航功能 - 興趣點探索 - 瀏覽景點資訊、評論與評分,支援 AI 重點整理與 3D 互動展示 - AI 導遊 - 根據使用者興趣與位置推薦景點,並提供語音、AR、VR 導覽功能 - AI 行程規劃 - 依據時間、偏好與交通資訊,自動生成最佳化行程與路線 - 旅遊日記 - 使用者可圖文記錄旅程,由 AI 協助整理每日亮點 - 願望清單 - 收藏想造訪的地點與商品,系統自動推薦相關行程 - 翻譯工具 - 支援即時語音與掃描翻譯,協助旅途中語言溝通 ### Functional Requirement - 地圖 - 地圖:提供室外地圖 - 興趣點 - 介紹:提供景點、餐廳、住宿等地點的詳細資訊 - 評分與留言:使用者可為地點評分、撰寫評論 - AI 歸納:透過 AI 分析熱門評論、整理重點資訊與提供參考連結 - 建模與查看:支援建模與互動,讓使用者能更直觀地瀏覽興趣點 - AI 導遊 - 景點尋找:根據使用者興趣與位置,推薦適合的旅遊景點 - 景點導覽:提供文字或語音導覽,提升遊覽體驗 - AR 導覽:透過擴增實境技術,讓使用者在現場獲取互動式資訊 - VR 導覽:支援虛擬實境體驗,讓使用者不出門也能探索世界 - AI 行程規劃 - 景點規劃:根據旅遊時間、興趣與評價,自動生成最佳行程 - 路線規劃:整合交通資訊,推薦最有效率的移動方式與行程順序 - 日記 - 旅遊日記:使用者可透過圖文記錄旅程,並由 AI 幫助整理亮點 - 願望清單 - 景點清單:收藏想造訪的景點,方便未來規劃旅行 - 商品清單:記錄想購買的紀念品或特色商品,避免錯過當地好物 - 翻譯 - 即時對話翻譯:支援多語言語音翻譯,幫助旅途中與當地人溝通 - 即時掃描翻譯:透過相機拍攝,快速翻譯標誌、菜單與文件內容 ### Nonfunctional Requirement #### User Interface and Human Factors - What type of user will be using the system? - 主要使用者為旅遊愛好者、自由行旅客、背包客以及各種需要行程規劃的使用者。 - Will more than one type of user be using the system? - 是,包含一般旅客與餐廳/景點業主等。 - What training will be required for each type of user? - 會有簡潔的教學,力求直觀與方便操作,同時保持美觀。 - 根據使用者的身分,透過動畫,互動式地指引使用者操作功能。 - 旅遊者:提供地圖、興趣點、導遊與行程規畫等功能教學。 - 業主:上傳/更新店家資訊與後台數據等功能教學。 - Is it important that the system is easy to learn? - 是,要給予使用者良好的使用體驗,需確保 UI/UX 友善,讓大家都能快速上手。 - Should users be protected from making errors? - 是,若系統發現使用者不正確使用就有相應的應對機制。 - What input/output devices are available? - 手機、平板、電腦、VR 設備、AR 設備。 - 於 Hardware Considerations 對裝置具體細節有進一步說明。 #### Documentation - What kind of documentation is required? - 系統需求文件、系統設計文件、系統測試文件。 - 使用者指南、隱私政策與服務條款。 - What audience is to be addressed by each document? - 旅客(使用者指南)、業主(使用者指南)、開發者(系統類文件)。 #### Hardware Considerations - What hardware is the proposed system to be used on? - 輸入裝置 - 手機、平板:觸控螢幕。 - 電腦:鍵盤、滑鼠。 - VR 設備:體感控制器(搖桿、手勢)。 - AR 眼鏡:配套控制器(搖桿、手勢)。 - 輸出裝置 - 電腦、平板、手機:螢幕,顯示文字、圖片、影片等內容,並提供操作介面進行互動。 - VR:螢幕,顯示建模之場景等內容,並結合體感控制器進行互動。 - AR:螢幕,在使用者視野中疊加數位內容,並結合配套控制器進行互動。 - 喇叭、耳機:在導遊等功能支援語音時播放。 - VR / AR 規格詳情 - VR - HTC Vive:建議至少 2 基站追蹤器、可支援 6DoF 動作捕捉。 - Meta Quest:內建 Inside-Out 追蹤、6DoF 控制器。 - AR - Microsoft HoloLens:內建深度攝影機、空間繪製與手勢控制。 - Magic Leap:空間定位、手勢控制器。 - 建議確保使用者端具有足夠效能以順暢運行複雜 3D 場景或即時擴增實境。 - Apple Vision Pro:M2 晶片 - 8 核心 CPU 、10 核心 GPU、16 核心神經網路引擎、16GB 統一記憶體 - What are the characteristics of the target hardware, including memory size and auxiliary storage space? - 伺服器建議 RAM 為 128GB 以上。 - 伺服器儲存空間需要 100TB 以上。 #### Performance Characteristics - Are there speed, throughput, response time constraints on the system? - 系統在 1000 位使用者內需要1秒內回應使用者。 - 整個系統可以乘載 10000 人以下的使用者同時使用。 - 加強後端伺服器架構,否則依賴單一伺服器會導致負載過高。 - Are there size or capacity constraints on the data to be processed by the system? - 興趣點 - 純文本的資訊不超過 100 MB - 圖片的資訊不超過 1 GB - 建模無資料量限制 #### Error Handling and Extreme Conditions - How should the system respond to input errors? - 提供清楚的錯誤提示,例如語音輸入錯誤時,允許重試或手動輸入。 - 當系統當掉時,啟用備用伺服器來應付。 - 網路塞車,使用排隊來限制人數進入系統。 - How should the system respond to extreme conditions? - 無網路時:提供部分離線地圖與翻譯功能。 - 裝置效能低:啟用低效能模式,減少動畫與即時運算負擔。 - GPS 訊號弱:提供 AI 預測定位與使用者手動選擇位置的選項。 #### System Interfacing - Is input coming from systems outside the proposed system? - 一般 API:地圖、興趣點、天氣、交通、商品、翻譯 - AI API:LLM - Is output going to systems outside the proposed system? - 一般 API:地圖、興趣點、天氣、交通、商品、翻譯 - AI API:LLM - Are there restrictions on the format or medium that must be used for input or output? - 都以 JSON 作為資料格式 #### Quality Issues - What are the requirements for reliability? - 伺服器有 90% 以上的可用性,每天允許的最大停機時間不超過 30 分鐘。 - 備用伺服器確保即使發生故障,系統仍能正常運作。 - Must the system trap faults? - 捕捉錯誤並提供適當的錯誤處理機制。 - What is the time for restarting the system after a failure? - 當系統出現故障,需在 10 分鐘內自動重新啟動,並使用備援機制確保最小的服務中斷。 - Is there an acceptable downtime per 24-hour period? - 每天允許的最大停機時間不超過 30 分鐘,系統會透過後備機制將停機時間降至最低。 - Is it important that the system be portable? - 是,系統需多種設備,具備跨平台兼容性,確保使用者能在不同裝置上獲得一致的體驗。 #### System Modifications. - What parts of the system are likely to be modified? - AI 類功能、第三方API - 地圖、興趣點、行程規劃、日記、願望清單 - What sorts of modifications are expected? - UI、UX - 安全性 - 資料 #### Physical Environment. - Where will the target equipment operate? - 伺服器應運行於穩定的環境中,並至少配置兩台伺服器互為備援,以應對突發狀況。 - Amazon Web Services (東京) - Is the target equipment in one or several locations? - 伺服器應分布於多個地點,以降低火災、停電等意外事故的影響。 - Will the environmental conditions be ordinary? - 機房需維持適當的溫度與濕度,並配備空調等環境調節設備。 #### Security Issues - Must access to data or the system be controlled? - 劃分使用者、業者及開發者權限。 - 所有使用者個人資訊都要有相關文件去規範個資的產生、保管、留存及銷毀。 - 後端商業資料應嚴格區分開發人員能取得資料的權限。 - 保證使用者個資無法被開發人員取得。 - Is physical security an issue? - 是,需要管理實體機房、工作區域的資訊安全。 - 機房需設有多層次的物理防衛機制,如:實時監控、門禁。 - 防止資料被物理機制破壞:火災控管、濕度控管、防震、防突波電流。 #### Resources and Management Issues - How often will the system be backed up? - 系統資料必須每小時進行自動備份。 - 分散式系統能夠將資料同時儲存在多部伺服器上。 - 備份儲存時間 - 短期備份:2 個月、備份所有資料。 - 中期備份:6 個月、備份重要資料。 - 長期備份:1 年、備份關鍵資料。 - Who will be responsible for the back up? - 系統本身會進行自動備份。 - 系統管理員為主要負責人,系統管理員需檢查是否有備份到。 - Who is responsible for system installation? - 系統管理員。 - 使用者。 - Who will be responsible for system maintenance? - 從開發團隊挑選並額外增加人員成立維運團隊。 ## Scenario - 宜臻坐在書桌前,使用平板開啟「旅遊小幫手」App。 - 她點選主畫面的「AI 行程規劃」圖示。 - 系統切換至設定頁面,她輸入: - 出發地:「台北」 - 目的地:「花蓮」 - 天數:「4天」 - 日期:「7月5日~7月8日」 - 偏好:「自然風景」、「歷史建築」 - 點擊「開始規劃」,系統顯示提示「為您規劃中……」。 - 幾秒後,畫面顯示四日行程,包括每個景點卡片、推薦時間與交通安排。 - 她點選第一天的「松園別館」卡片,進入詳細資訊頁面,查看: - 景點介紹 - 熱門評論摘要(由 AI 歸納) - 圖片與實用資訊(開放時間、交通方式等) - 點選「← 返回」,她回到行程卡片瀏覽模式。 - 她發現「花蓮文化創意產業園區」排在第一天晚上過於普通,點選右上角垃圾桶圖示。 - 系統彈出確認:「是否刪除此行程?將重新計算路線與時間」→ 她點選「確定」 - 景點被移除,系統即時重排路線與交通時間。 - 她覺得「七星潭」更適合第一天下午: - 長按「七星潭」卡片 → 拖曳至第一天下午。 - 放手後畫面更新順序與地圖路線。 - 她想到朋友推薦的「石梯坪」: - 點選「新增景點」→ 輸入「石梯坪」→ 點擊加入 → 拖曳排入「第二天下午」。 - 景點成功加入行程,系統更新路線與預估交通時間。 - 修改完成後,宜臻檢視行程頁面,確認內容無誤。 - 她點選畫面下方的「完成規劃」按鈕,回到主畫面。         ## Use case models - Use case - Planning and Landmark Navigation(行程規劃) - Participating Actors - 使用者(如旅遊規劃者、學生、觀光客) - AI 規劃模組 - Entry Condition - 使用者已開啟 App。 - Flow of Events - 使用者點選「AI 行程規劃」。 - 使用者可以輸入出發地、目的地、日期、天數與偏好類型。 - 使用者確認資料後,點選「開始規劃」。 - 系統生成行程卡片,包含景點卡片、交通建議與時間安排。 - 使用者可以檢視、編輯、新增或刪除景點。 - 使用者完成行程編輯後,點選「完成規劃」,行程儲存。 - 返回主頁面。 - Exit Condition - 行程成功儲存。 - Exceptions - 網路中斷,無法下載或更新行程/景點資訊。 - 景點資料庫缺少地標或無法推薦。 - Nonfunctional Requirements - 使用介面直覺與快速反應:介面須具備高直覺性,操作反應時間短。 - 多語系支援:支援中英文操作介面,語音導覽須支援在地語言與離線使用。 - 高效能行程規劃:行程規劃作業須於 5 秒內完成。 - 資訊計算準確性:行程與路線計算、景點資訊與交通時間需具備高準確度。 ## Class identification from use case models ### Data dictionary #### 名詞 | Example | Part of speech | UML model component | 型態 | 說明 | |----------------------|----------------|-----------------------------------|---------|------------------------------------------------| | 使用者 | 名詞 | `User` | class | 使用本系統進行旅遊規劃的使用對象 | | 旅遊介面 | 名詞 | `TravelView` | class | 使用者進行操作與互動的主要畫面 | | 系統 | 名詞 | `TravelAssistantSystem` | class | 執行行程規劃與景點管理的核心邏輯系統 | | 行程 | 名詞 | `Itinerary` | class | 包含多日景點與時間安排的完整旅遊規劃 | | 行程卡片 | 名詞 | `ItineraryCard` | class | 在介面中顯示單一景點的資訊卡片 | | 景點 | 名詞 | `Attraction` | class | 使用者將造訪的觀光位置 | | 公共景點 | 名詞 | `PublicAttraction` | class | 從外部來源擷取的開放式景點資料 | | 私人景點 | 名詞 | `PrivateAttraction` | class | 使用者自訂的景點資料 | | 景點安排 | 名詞 | `AttractionSchedule ` | class | 指定景點於特定日與時間造訪的配置與交通建議 | #### 形容詞 | Example | Part of speech | UML model component | 型態 | 說明 | |----------------------|----------------|-----------------------------------|------------|----------------------------------------------------| | 行程標題 | 形容詞 | `Itinerary.title` | String | 行程的名稱或主題標示 | | 出發地 | 形容詞 | `Itinerary.startLocation` | String | 行程的起點 | | 目的地 | 形容詞 | `Itinerary.destination` | String | 行程的終點 | | 日期區間 | 形容詞 | `Itinerary.dateRange` | DateTime | 行程的開始與結束時間範圍 | | 天數 | 形容詞 | `Itinerary.days` | DateTime | 行程所涵蓋的天數總計 | | 行程偏好 | 形容詞 | `Itinerary.preference` | String | 使用者偏好的旅遊類型或活動偏好 | | 景點標題 | 形容詞 | `Attraction.title` | String | 景點的標題 | | 圖片 | 形容詞 | `Attraction.image` | Blob | 景點的配圖 | | 景點介紹 | 形容詞 | `Attraction.description` | String | 景點的官方簡介 | | 熱門評論摘要 | 形容詞 | `Attraction.reviewSummary` | String | 系統彙整的熱門評論精華 | | 景點實用資訊 | 形容詞 | `Attraction.practicalInfo` | String | 景點相關的實用參訪資訊 | | 資料來源 | 形容詞 | `PublicAttraction.source` | String | 景點資訊的來源 | | 建立者編號 | 形容詞 | `PrivateAttraction.createdBy` | String | 哪個使用者建立的景點 | | 景點順序 | 形容詞 | `AttractionSchedule.attractionOrder` | Integer | 景點在每日中的順序 | | 推薦時間 | 形容詞 | `AttractionSchedule.displayTime` | DateTime | 建議參訪該景點的理想時間點 | | 交通建議 | 形容詞 | `AttractionSchedule.transportationInfo`| String | 各景點之間的移動方式與交通耗時建議 | #### 動詞 | Example | Part of speech | UML model component | 型態 | 說明 | |----------------------|----------------|---------------------------------------|----------|----------------------------------------------------------| | 顯示行程設定 | 動詞 | `TravelView.displayItinerarySetting()` | void | 在畫面上呈現行程相關設定選項 | | 開始行程規劃 | 動詞 | `TravelView.planItinerary()` | Itinerary | 根據輸入自動產生初始行程 | | 顯示行程 | 動詞 | `TravelView.displayItinerary()` | void | 呈現目前已建立的行程與細節資訊 | | 檢視景點 | 動詞 | `TravelView.searchAttraction()`| Attraction | 尋找所選景點的詳細 | | 顯示景點詳情 | 動詞 | `TravelView.displayAttractionInfo()`| void | 顯示所選景點的詳細資訊 | | 新增景點卡片 | 動詞 | `TravelView.addAttraction()`| Itinerary | 新增景點卡片 | | 刪除景點卡片 | 動詞 | `TravelView.deleteAttraction()`| Itinerary | 刪除景點卡片 | | 拖曳景點卡片 | 動詞 | `TravelView.moveAttraction()`| Itinerary | 重新排序景點卡片以調整參訪順序 | | 更新行程卡片 | 動詞 | `TravelView.displayUpdateItinerary()`| void | 更新 UI 上對應景點卡片的顯示內容 | | 完成行程規劃 | 動詞 | `TravelView.saveItinerary()`| Boolean | 儲存行程規劃 | | 返回主畫面 | 動詞 | `TravelView.returnToMainPage()`| void | 返回主畫面 | | 新增行程 | 動詞 | `TravelAssistantSystem.createItinerary()` | Itinerary | 新增行程 | | 檢視景點 | 動詞 | `TravelAssistantSystem.searchAttraction()`| Attraction | 尋找所選景點的詳細資訊 | | 新增景點 | 動詞 | `TravelAssistantSystem.addAttraction()`| Itinerary | 新增景點 | | 刪除景點 | 動詞 | `TravelAssistantSystem.deleteAttraction()`| Itinerary | 刪除景點 | | 編輯景點安排 | 動詞 | `TravelAssistantSystem.changeAttractionSchedule()`| Itinerary | 調整景點在行程中的時間與順序安排 | | 儲存行程 | 動詞 | `TravelAssistantSystem.saveItinerary()` | Boolean | 將目前行程內容保存 | ### 類別圖關聯性  ## Sequence diagram  ## Activity diagram  ## StateChart Diagram  ## Navigation Path 
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.