Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create a database and enable pgVector extension
/ 20
Populate database with the sample dataset
/ 20
Create the service account toolbox-identity
/ 20
Create a Client Id
/ 20
Deploy the Toolbox
/ 20
檢索增強生成 (RAG) 是提升大型語言模型 (LLM) 回覆品質的最佳工具之一。RAG 是一種模式,會擷取非公開資料,並將資料加到要傳送至 LLM 的提示中。如此一來,LLM 就能根據提示中包含的資料,生成更準確的回覆。
AlloyDB 是與 PostgreSQL 相容的 Google Cloud 資料庫,具備擴充性且效能卓越。您將使用此資料庫儲存及搜尋「向量嵌入」這種特殊向量資料。使用者可利用語意搜尋擷取向量嵌入,在進行自然語言查詢時,找出最符合查詢的可用資料。接著,擷取的資料會加到提示詞中,一併傳給 LLM。
為了從資料庫擷取資料,請使用 MCP Toolbox,這是中介軟體伺服器,可將資料庫作業公開為一組工具。代理會連線至 Toolbox 來執行這些工具。這麼做可運用安全、可擴充且模組化的方式,管理資料庫互動情形。
您也將使用 Google Cloud 的全代管統合式 AI 開發平台 Vertex AI,建構及使用生成式 AI。您的應用程式會採用多模態基礎模型 Gemini Pro,使用者將能在文字或對話提示詞中加入圖像、音訊、影片和 PDF 檔案。這款模型也能理解長脈絡資料。
在本實驗室中,您將學習下列內容:
您會在實際雲端環境完成 Google Skills 實作實驗室活動,而非模擬或示範環境,因此您會取得新的臨時憑證,可以在實驗室活動期間登入及使用 Google Cloud。
為了順利完成這個實驗室,請先確認:
按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側面板會顯示必須在這個實驗室使用的臨時憑證。
複製使用者名稱,然後點選「Open Google Console」。接著,研究室會啟動相關資源並開啟另一個分頁,當中顯示「Choose an account」頁面。
點選「Choose an account」頁面中的「使用其他帳戶」,「Sign in」頁面隨即開啟。
貼上您在「連線詳細資訊」面板中複製的使用者名稱,然後複製並貼上密碼。
Cloud 控制台稍後會在這個分頁中開啟。
Google Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。
Google Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
在 Cloud 控制台的右上方找到工具列,然後按一下「開啟 Cloud Shell」按鈕。
按一下「繼續」。
佈建並連線至環境的作業需要一些時間才能完成。連線建立完成即代表已通過驗證,而且專案已設為您的「PROJECT_ID」。示例如下:
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵完成功能。
輸出內容:
輸出內容示例:
輸出內容:
輸出內容示例:
在這項工作中,您會安裝 Python、MCP Toolbox 和 PostgreSQL 用戶端。
虛擬機器 (VM) 已建立完成,會用來託管應用程式和 MCP Toolbox。
在 Cloud Shell 執行下列指令,連線至 VM:
如果系統要求您授權,請點按「授權」。
對於透過 gcloud compute ssh 指令提出的每個問題,按下 Enter 或 Return 鍵使用預設輸入內容。
稍後便會登入 VM。
執行下列指令,在 VM 安裝 Python 和 Git:
安裝完成後,您會留在 Python 虛擬環境中,並看到 (.venv) 提示。
如果 VM SSH 工作階段逾時或分頁關閉,您可以再次透過 SSH 連線至 VM,然後使用 source ~/.venv/bin/activate 指令,重新啟動 Python 虛擬環境。
請執行下列指令來要確認 Python 的版本:
回應內容大致如下:
在 VM 工作階段執行下列指令,安裝 PostgreSQL 用戶端:
執行下列指令,複製這個試用版的程式碼:
執行下列指令,下載 MCP Toolbox 二進位檔:
在這項工作中,您會使用 PostgreSQL 用戶端建立向量資料庫。
系統已建立 AlloyDB 執行個體。
執行下列指令,建立新的資料庫:
psql 會回應 CREATE DATABASE。
需以向量嵌入表示實體,資料庫才支援語意搜尋。
執行下列指令,為此資料庫啟用向量嵌入功能:
psql 會回應 CREATE EXTENSION。
點按「Check my progress」,確認目標已達成。
在這項工作中,您會使用 MCP Toolbox,利用範例資料填充 AlloyDB 的向量資料庫。對話應用程式會使用這些資料。
執行下列指令來查看資料模型:
畫面會顯示 Python 資料模型,範圍涵蓋機場、航班、航廈設施、政策和機票。
請執行下列指令,查看其中的一些機場資料:
機場資料集的資料欄名稱是由 CSV 標頭指定。這些指令會顯示此 CSV 標頭,然後顯示舊金山國際機場 (SFO) 資料列的內容。您能根據國際航空運輸協會 (IATA) 代碼,或是國家/地區、城市和機場名稱,檢索機場模型中的資料。這份資料沒有向量嵌入,您可以使用關鍵字搜尋功能,尋找此資料表中不同的資料列。
請執行下列指令,查看模型中的一些航班資料:
航班資料集的資料欄名稱是由 CSV 標頭指定。這些指令會顯示此 CSV 標頭,然後顯示出發地或抵達地為 SFO 的前 10 列航班資料。您能根據航空公司、航班號碼或出發地/抵達地的機場代碼,檢索航班模型中的資料。
請執行下列指令,查看模型中的一些設施資料:
設施資料集的資料欄名稱是由 CSV 標頭指定。這些指令會顯示此 CSV 標頭,然後顯示第一項設施。
您會發現第一項設施有幾個簡單的值,包括名稱、說明、位置、航廈、類別和營業時間。下一個值是 content,含有名稱、說明和位置。最後一個值是 embedding,是此資料列的向量嵌入。
嵌入是一個有 768 個數字的陣列,用於執行語意搜尋。Vertex AI 提供的 AI 模型會計算出這些嵌入。使用者提交查詢時,系統會根據查詢建立向量嵌入,並擷取向量嵌入與搜尋嵌入相近的資料。
政策資料也會以類似方式使用向量嵌入。
執行下列指令,為 MCP Toolbox 設定必要的環境變數:
這些 MCP Toolbox 環境變數與 PostgreSQL 用戶端使用的變數類似。
下一步是執行 MCP Toolbox。
執行下列指令,在背景執行 MCP Toolbox 來初始化資料:
連接符號 (&) 會讓 Toolbox 在背景執行,因此您可以在同一個 SSH 工作階段執行資料庫初始化作業。
執行下列指令,安裝試用版應用程式的 Python 依附元件:
執行下列指令來執行資料庫指令碼:
第一個指令會將路徑新增至 Python 模組,init 指令碼則會填入資料庫。
執行下列指令,驗證填入的資料:
PostgreSQL 指令會傳回機場資料表中的機場數量。
執行下列指令,結束背景 Toolbox 程序:
在這項工作中,您會為 MCP Toolbox 建立服務帳戶。
在對話應用程式中,MCP Toolbox 負責從資料庫擷取相關資訊,以及根據 AI 應用程式的要求,從資料庫中擷取必要資訊。這個服務帳戶代表在 Cloud Run 執行的 MCP Toolbox 服務。
在專案執行個體上,SSH 使用者無權為服務帳戶指定所需角色。您會使用新的 Cloud Shell 分頁建立服務帳戶。
在 Cloud Shell 點按「開啟新分頁」圖示 (+),開啟新的 Cloud Shell 分頁。
在新分頁執行下列指令,建立服務帳戶:
系統會建立這個服務帳戶。
執行下列指令,授予服務帳戶必要權限:
這個服務帳戶會取得下列角色:
roles/alloydb.client:讓 Toolbox 存取 AlloyDB 資料庫。roles/serviceusage.serviceUsageConsumer:讓 Toolbox 使用服務。roles/secretmanager.secretAccessor:讓 Toolbox 擷取儲存在 Secret Manager 中的密鑰。執行下列指令來關閉新分頁:
在這項工作中,您會註冊 OAuth 同意畫面,系統會向要登入的使用者顯示這個畫面。
使用 OAuth 2.0 授權時,Google 會顯示同意畫面,請使用者授權應用程式存取資料。
在 Google Cloud 控制台點按「導覽選單」圖示 ,然後依序選取「API 和服務」>「OAuth 同意畫面」。
點按「開始」。
「應用程式名稱」請輸入 Cymbal Air。
依序點按「使用者支援電子郵件」、學員的電子郵件和「下一步」。
「目標對象」請選取「內部」,然後點按「下一步」。
有專案存取權的使用者應能登入應用程式。
在實驗室操作說明的左側面板上,複製使用者名稱。
在「聯絡資訊」貼上複製的使用者名稱。
點按「下一步」。
選取核取方塊,表示同意使用者資料政策,然後依序點按「繼續」和「建立」。
同意畫面現已設定完畢。
在這項工作中,您會建立應用程式的用戶端 ID。
應用程式必須有用戶端 ID,才能使用 Google 的 OAuth 服務。您可以設定允許發出這項要求的來源,以及重新導向 URI,在使用者同意登入後,將使用者重新導向至該位置。
在 Google Cloud 控制台點按「導覽選單」圖示 ,然後依序選取「API 和服務」>「憑證」。
依序點按「+ 建立憑證」和「OAuth 用戶端 ID」。
Google 的 OAuth 伺服器會使用用戶端 ID 來識別個別應用程式。
「應用程式類型」請選取「網頁應用程式」。
「名稱」請輸入 Cymbal Air。
您可以使用 Cloud Shell 產生 JavaScript 來源和重新導向 URI。
在 Cloud Shell 點按「開啟新分頁」圖示 (+),即可開啟新的 Cloud Shell 分頁。
請在新分頁執行下列指令,以便取得來源和重新導向 URI:
在「已授權的 JavaScript 來源」,點按「+ 新增 URI」。
複製 echo 指令建立的來源 URI,然後在「URI 1」貼上 URI。
在「已授權的重新導向 URI」下方,點按「+ 新增 URI」。
複製 echo 指令建立的重新導向 URI,然後貼到「URI 1」。
接著要建立環境變數。請切換至 VM SSH 的 Cloud Shell 分頁,並貼上下列指令,但不要按下 Enter 鍵:
在「憑證」視窗中,點按「建立」。
系統會隨即建立用戶端 ID 和用戶端密鑰。在這個測試應用程式,您只會用到用戶端 ID。
點按「複製用戶端 ID」圖示 。
用戶端 ID 已複製到剪貼簿。
在 VM SSH 的 Cloud Shell 分頁貼上用戶端 ID,然後按下 Enter 鍵。
匯出內容應與下方類似:
在這項工作中,您會將 MCP Toolbox 部署至 Cloud Run。
Toolbox 提供 tools.yaml 範例檔案,但您需要修改幾項設定。
執行下列指令來查看設定:
這個 YAML 檔案包含資料庫和 OAuth 的設定。
內容大致如下:
執行下列指令,根據環境更新設定:
這些指令會使用 sed,將特定設定換成 tools.yaml 範例檔案。預設 IP 類型為公開,因此系統還會在密碼行下方新增 ipType 行。
執行下列指令來查看檔案更新:
設定檔頂端現在會顯示您的值。
機密設定 (尤其是資料庫密碼和用戶端 ID) 應以密鑰保護。
您可以使用 Secret Manager 保護密鑰,不用將機密資訊匯入程式碼存放區,或打包進執行中的應用程式。
執行下列指令即可建立密鑰:
執行下列指令,驗證是否已儲存密鑰:
現在應該會看到名為「tools」的密鑰。
在 VM SSH 的 Cloud Shell 分頁執行下列指令,將 Toolbox 部署至 Cloud Run:
等待部署作業完成。
執行下列指令來驗證服務:
看到「Hello World!」訊息時,表示服務已啟用並能處理要求。
在這項工作中,您會執行使用檢索服務的範例對話應用程式。
在 VM SSH 的 Cloud Shell 分頁執行下列指令,返回對話應用程式的根層級:
啟動應用程式前,需先設定一些環境變數。應用程式的基本功能 (包括查詢航班和傳回機場設施) 需要 TOOLBOX_URL 環境變數。這個變數是用來指定在 Cloud Run 執行的 Toolbox 服務網址。
執行下列指令,指定 Toolbox 服務的網址:
本機應用程式會使用 Toolbox 網址,透過 MCP Toolbox 存取資料庫。
執行下列指令來執行應用程式:
回應內容大致如下:
應用程式現已開始運作。
您可以透過多種方式連線至 VM 上執行的應用程式。舉例來說,您能在虛擬私有雲使用防火牆規則,開啟 VM 的 8081 通訊埠,或是建立具有公開 IP 的負載平衡器。這裡您會使用 SSH 通道連線至 VM,將 Cloud Shell 通訊埠 8080 連至 VM 通訊埠 8081。
在 Cloud Shell 點按「開啟新分頁」圖示 (+),即可開啟新的 Cloud Shell 分頁。
在新分頁執行下列指令,建立連往 VM 通訊埠的 SSH 通道:
gcloud 指令會將 Cloud Shell 的 localhost 通訊埠 8080,連線至 VM 通訊埠 8081。您可以忽略「Cannot assign requested address.」錯誤訊息。
現在要在網路瀏覽器執行應用程式。請點按「網頁預覽」,然後選取「透過以下通訊埠預覽:8080」。
瀏覽器會開啟新分頁並執行應用程式。Cymbal Air 應用程式會顯示下列訊息:「Welcome to Cymbal Air!How may I assist you?」。
輸入下列查詢:
應用程式會在回覆中提供下一個從 SFO 飛往 LAX 的航班,或要求您提供詳細資訊。
輸入下列查詢:
對話應用程式可能會要求您說明是哪個航班,但其實能夠瞭解查詢脈絡,並在回覆中提供 SFO 登機門附近的餐廳。
在這項工作中,您會登入應用程式來預訂航班。
點按「Sign in」,
畫面會彈出一個視窗。
在彈出式視窗中選取學生。
點按「Continue」,允許 Cymbal Air 存取學生資訊。
現在已登入學生帳戶。
輸入下列查詢:
應用程式會顯示對話中提及的航班。
點按「Looks good to me. Book it」。
現在機票已預訂完成。
輸入下列查詢:
畫面會顯示剛才預訂的航班。
對話應用程式可回答使用者的問題,例如:
該應用程式會使用最新 Google 基礎模型生成回覆,並從運作中的 AlloyDB 資料庫檢索航班和設施資訊,再於回覆中提供。如要進一步瞭解這個示範應用程式,請前往專案的 GitHub 頁面。
您已成功建構對話應用程式,並運用大型語言模型 (LLM) 和檢索增強生成 (RAG) 技術,生成有趣且資訊豐富的對話。
如果您已完成實驗室,請點選「End Lab」。Google Skills 會清除您使用的資源和帳戶。
您可以為實驗室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」。
星級評等代表您的滿意程度:
如果不想提供意見回饋,您可以直接關閉對話方塊。
如有任何想法、建議或指教,請透過「Support」分頁提交。
使用手冊上次更新日期:2025 年 10 月 13 日
實驗室上次測試日期:2025 年 10 月 13 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
This content is not currently available
We will notify you via email when it becomes available
Great!
We will contact you via email if it becomes available
One lab at a time
Confirm to end all existing labs and start this one