工程日記・第一天:48 小時構建多語言 AI 航空平臺
深入幕後,瞭解構建 VOLO 平臺的工程決策、挑戰和突破。從 Next.js 16 到自然語言航班搜索。
構建 VOLO 是一場緊張的衝刺。以下是我們構建的內容、做出的技術決策,以及沿途解決的問題。
技術棧
VOLO 運行在 Turborepo monorepo 上,包含三個包:Next.js 16 Web 應用、Prisma 數據庫層和 AI 服務包。我們選擇 Next.js 16 是因爲它支持 React 19 和 Turbopack 構建速度——我們的完整構建在 15 秒內完成。
雙模架構
我們最有趣的工程決策之一是構建雙模界面。同一個 URL 可以呈現兩種完全不同的體驗:爲人類訪客準備的奢華襯線營銷網站,以及爲 AI Agent 準備的終端風格等寬字體界面。
我們通過 User-Agent 模式、自定義 Header(X-Agent-ID)和 Accept 頭啓發式來檢測 Agent。註冊的 Agent 擁有自己的個性化儀表板,包含 API 使用指標和佣金跟蹤。
i18n:4 種語言,零妥協
從第一天起,支持英語、中文、法語和西班牙語就是優先事項。我們使用 next-intl,通過 Vercel 的 x-vercel-ip-country header 進行基於 IP 的區域檢測。從導航到預訂表單,每個組件都以檢測到的語言呈現。
棘手的部分是在不同語言中保持奢華感。中文和法語有非常不同的排版傳統,所以我們花時間確保襯線標題和無襯線正文在所有四種語言中看起來同樣優雅。
AI 層
我們的航班搜索接受任何語言的自然語言,並將其轉換爲結構化查詢。"從上海飛東京,下週五"變成一個針對機隊數據庫的出發/目的地/日期查詢。系統處理模糊性,建議替代方案,並從交互模式中學習。
經驗教訓
- Vercel 默認的
cache-control: private, no-cache頭部會殺死 SEO。務必爲公共頁面覆蓋它們。 - next-intl 的
useTranslations()必須在每個組件中調用——沒有全局注入。 - 同時爲 AI Agent 和人類構建迫使你以不同的方式思考信息架構。
- 結構化數據(JSON-LD、FAQ Schema、Service Schema)對 SEO 和 GEO 都值得投入。
我們會繼續分享我們的旅程。如果你是對 AI 與奢華服務交叉領域感興趣的工程師,請持續關注。
準備好飛行了嗎?幾秒鐘獲取個性化包機報價。
訂閱資訊
空腿航班優惠、新航線與航空洞察,直達您的郵箱。