總覽
檢索增強生成 (RAG) 是提升大型語言模型 (LLM) 回覆品質的最佳工具之一。RAG 是一種模式,會擷取非公開資料,並將資料加到要傳送至 LLM 的提示中。如此一來,LLM 就能根據提示中包含的資料,生成更準確的回覆。
AlloyDB 是與 PostgreSQL 相容的 Google Cloud 資料庫,具備擴充性且效能卓越。您將使用此資料庫儲存及搜尋「向量嵌入」這種特殊向量資料。使用者可利用語意搜尋擷取向量嵌入,在進行自然語言查詢時,找出最符合查詢的可用資料。接著,擷取的資料會加到提示詞中,一併傳給 LLM。
如要從資料庫擷取資料,請使用 MCP Toolbox,這是中介軟體伺服器,可將資料庫作業公開為一組工具。代理會連線至 Toolbox 來執行這些工具。這麼做可運用安全、可擴充且模組化的方式,管理資料庫互動。
您也將使用 Google Cloud 的全代管統合式 AI 開發平台 Vertex AI,建構及使用生成式 AI。您的應用程式會採用多模態基礎模型 Gemini Pro,使用者將能在文字或對話提示中加入圖片、音訊、影片和 PDF 檔案。這款模型也能理解長脈絡資料。

學習目標
在本實驗室中,您將學習下列內容:
- RAG 如何從知識庫中擷取相關資訊,增強 LLM 的功能。
- 如何透過 AlloyDB 進行語意搜尋,找出相關資訊。
- 如何使用 Vertex AI 和 Google 的基礎模型,為應用程式提供強大的生成式 AI 功能。
設定和需求
點選「Start Lab」按鈕前的須知事項
注意:請詳閱以下操作說明。
實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。您會在實際雲端環境中完成 Qwiklabs 實作實驗室活動,而非模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
需求條件
為了順利完成這個實驗室,請先確認:
- 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
- 已預留充足時間可完成研究室。
注意:如果您擁有個人 Google Cloud 或專案,請勿用於本實驗室。
注意:如果您使用的是 Pixelbook,請在無痕視窗執行本實驗室。如何開始研究室及登入控制台
- 
按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側面板會顯示必須在這個研究室中使用的暫時憑證。  
 
- 
複製使用者名稱,然後點選「Open Google Console」。接著,研究室會啟動相關資源並開啟另一個分頁,當中顯示「Choose an account」頁面。 注意事項:請在不同視窗並排開啟分頁。
- 
點選「Choose an account」頁面中的「使用其他帳戶」,「Sign in」頁面隨即開啟。  
 
- 
貼上您在「連線詳細資訊」面板中複製的使用者名稱,然後複製並貼上密碼。 
注意事項:請務必使用「連線詳細資訊」面板中的憑證,而非 Google Cloud Skills Boost 的憑證。另外,請勿在這個研究室中使用您自己的 Google Cloud 帳戶,以免產生費用。
- 按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Cloud 控制台稍後會在這個分頁中開啟。
注意事項:點選畫面左上方的導覽選單,即可查看 Google Cloud 產品與服務清單。
 
啟動 Google Cloud Shell
Google Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。
Google Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
- 
在 Cloud 控制台的右上方找到工具列,然後按一下「開啟 Cloud Shell」按鈕。  
 
- 
按一下「繼續」。 
佈建並連線至環境的作業需要一些時間才能完成。連線建立完成即代表已通過驗證,而且專案已設為您的「PROJECT_ID」。示例如下:

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵完成功能。
gcloud auth list
輸出內容:
Credentialed accounts:
 - @.com (active)
輸出內容示例:
Credentialed accounts:
 - google1623327_student@qwiklabs.net
 
gcloud config list project
輸出內容:
[core]
project = 
輸出內容示例:
[core]
project = qwiklabs-gcp-44776a13dea667a6
注意事項:如需 gcloud 的完整說明,請參閱 gcloud CLI 總覽指南。
工作 1:初始化環境
在這項工作中,您會安裝 Python、MCP Toolbox 和 PostgreSQL 用戶端。
透過 SSH 連線至應用程式 VM
虛擬機器 (VM) 已建立完成,會用來託管應用程式和 MCP Toolbox。
- 
如要連線至 VM,請在 Cloud Shell 中執行下列指令: gcloud compute ssh app-vm --zone={{{project_0.default_zone | ZONE }}}如果系統要求您授權,請點按「授權」。 
- 
對於透過 gcloud compute ssh指令提出的每個問題,按下 Enter 或 Return 鍵使用預設輸入內容。
 稍後便會登入 VM。 
安裝 Python 和 Git
- 
請執行下列指令,在 VM 安裝 Python 和 Git: sudo apt update
 sudo apt install -y python3.11-venv git
 python3 -m venv .venv
 source ~/.venv/bin/activate
 pip install --upgrade pip安裝完成後,您會留在 Python 虛擬環境中,並看到 (.venv)提示。
 如果 VM SSH 工作階段逾時或分頁關閉,您可以再次透過 SSH 連線至 VM,然後使用 source ~/.venv/bin/activate指令,重新啟動 Python 虛擬環境。
 
- 
請執行下列指令來要確認 Python 的版本: python -V回應內容大致如下: (.venv) student@app-vm:~$ python -V
 Python 3.11.2
 (.venv) student@app-vm:~$
安裝 PostgreSQL 用戶端
- 
如要安裝 PostgreSQL 用戶端,請在 VM 工作階段執行下列指令: sudo apt install -y postgresql-client
 
注意:系統可能已安裝用戶端。
下載試用版和 MCP Toolbox
- 
如要複製這個試用版的程式碼,請執行下列指令: cd ~
 git clone https://github.com/GoogleCloudPlatform/cymbal-air-toolbox-demo.git
 cd cymbal-air-toolbox-demo
- 
如要下載 MCP Toolbox 二進位檔,請執行下列指令: export MCP_TOOLBOX_VERSION="{{{project_0.startup_script.gcp_mcp_toolbox_version | TOOLBOX_VERSION}}}"
 curl -O https://storage.googleapis.com/genai-toolbox/v$MCP_TOOLBOX_VERSION/linux/amd64/toolbox
 chmod +x toolbox
工作 2:建立向量資料庫
在這項工作中,您會使用 PostgreSQL 用戶端建立向量資料庫。
建立向量資料庫
系統已建立 AlloyDB 執行個體。
- 
如要建立新的資料庫,請執行下列指令: export PROJECT_ID=$(gcloud config get-value project)
 export REGION={{{project_0.default_region | REGION }}}
 export ADBCLUSTER={{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}}
 export ADBINSTANCE={{{project_0.startup_script.gcp_alloydb_primary_instance | INSTANCE}}}
 export INSTANCE_IP=$(gcloud alloydb instances describe $ADBINSTANCE --cluster=$ADBCLUSTER --region=$REGION --format="value(ipAddress)")
 export PGUSER={{{project_0.startup_script.gcp_alloydb_user | PG_USER}}}
 export PGPASSWORD={{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}}
 export PGDATABASE={{{project_0.startup_script.gcp_alloydb_database | DATABASE}}}
 psql "host=$INSTANCE_IP user=$PGUSER dbname=postgres" -c "CREATE DATABASE $PGDATABASE"psql 會回應 CREATE DATABASE。
 需以向量嵌入表示實體,資料庫才支援語意搜尋。 
- 
執行下列指令,為此資料庫啟用向量嵌入功能: psql "host=$INSTANCE_IP user=$PGUSER dbname=$PGDATABASE" -c "CREATE EXTENSION vector"psql 會回應 CREATE EXTENSION。
 
點按「Check my progress」,確認目標已達成。
    建立 AlloyDB 資料庫並啟用向量擴充功能。
工作 3:填充範例資料庫
在這項工作中,您會使用 MCP Toolbox,利用範例資料填充 AlloyDB 的向量資料庫。對話應用程式會使用這些資料。
檢查資料模型
- 
執行下列指令來查看資料模型: cd ~/cymbal-air-toolbox-demo
 cat models/models.py畫面會顯示 Python 資料模型,範圍涵蓋機場、航班、航廈設施、政策和機票。 
- 
請執行下列指令,查看其中的一些機場資料: head -1 data/airport_dataset.csv; grep SFO data/airport_dataset.csv機場資料集的資料欄名稱是由 CSV 標頭指定。這些指令會顯示此 CSV 標頭,然後顯示舊金山國際機場 (SFO) 資料列的內容。您能根據國際航空運輸協會 (IATA) 代碼,或是國家/地區、城市和機場名稱,檢索機場模型中的資料。這份資料沒有向量嵌入,您可以使用關鍵字搜尋功能,尋找此資料表中不同的資料列。 
- 
請執行下列指令,查看模型中的一些航班資料: head -1 data/flights_dataset.csv; grep -m10 "SFO" data/flights_dataset.csv航班資料集的資料欄名稱是由 CSV 標頭指定。這些指令會顯示此 CSV 標頭,然後顯示出發地或抵達地為 SFO 的前 10 列航班資料。您能根據航空公司、航班號碼或出發地/抵達地的機場代碼,檢索航班模型中的資料。 
- 
請執行下列指令,查看模型中的一些設施資料: head -2 data/amenity_dataset.csv設施資料集的資料欄名稱是由 CSV 標頭指定。這些指令會顯示此 CSV 標頭,然後顯示第一項設施。 您會發現第一項設施有幾個簡單的值,包括名稱、說明、位置、航廈、類別和營業時間。下一個值是 content,含有名稱、說明和位置。最後一個值是embedding,是此資料列的向量嵌入。
 嵌入是一個有 768 個數字的陣列,用於執行語意搜尋。Vertex AI 提供的 AI 模型會計算出這些嵌入。使用者提交查詢時,系統會根據查詢建立向量嵌入,並擷取向量嵌入與搜尋嵌入相近的資料。 政策資料也會以類似方式使用向量嵌入。 注意:計算嵌入需要一些時間,因此我們直接提供嵌入。您可以檢查 run_generate_embeddings.py 指令碼,瞭解產生嵌入的方式。
啟動工具箱
- 
執行下列指令,為 MCP Toolbox 設定必要的環境變數: export ALLOYDB_POSTGRES_PROJECT=$(gcloud config get-value project)
 export ALLOYDB_POSTGRES_REGION={{{project_0.default_region | REGION }}}
 export ALLOYDB_POSTGRES_CLUSTER={{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}}
 export ALLOYDB_POSTGRES_INSTANCE={{{project_0.startup_script.gcp_alloydb_primary_instance | PRIMARY_INSTANCE}}}
 export ALLOYDB_POSTGRES_DATABASE={{{project_0.startup_script.gcp_alloydb_database | DATABASE}}}
 export ALLOYDB_POSTGRES_USER={{{project_0.startup_script.gcp_alloydb_user | PG_USER}}}
 export ALLOYDB_POSTGRES_PASSWORD={{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}}
 export ALLOYDB_POSTGRES_IP_TYPE=private這些 MCP Toolbox 環境變數與 PostgreSQL 用戶端使用的變數類似。 下一步是執行 MCP Toolbox。 
- 
執行下列指令,在背景執行 MCP Toolbox 來初始化資料: cd ~/cymbal-air-toolbox-demo
 ./toolbox --prebuilt alloydb-postgres &連接符號 (&) 會讓工具箱在背景執行,因此您可以在同一個 SSH 工作階段執行資料庫初始化作業。 
填充資料庫
- 
執行下列指令,安裝試用版應用程式的 Python 依附元件: source ~/.venv/bin/activate
 pip install -r requirements.txt
- 
執行下列指令來執行資料庫指令碼: export PYTHONPATH=~/cymbal-air-toolbox-demo
 python data/run_database_init.py第一個指令會將路徑新增至 Python 模組,init 指令碼則會填入資料庫。 
- 
執行下列指令,驗證填入的資料: psql "host=$INSTANCE_IP user=$PGUSER dbname=$PGDATABASE" -c "SELECT COUNT(*) FROM airports"PostgreSQL 指令會傳回機場資料表中的機場數量。 
- 
執行下列指令,結束背景 Toolbox 程序: pkill toolbox
使用範例資料集填充資料庫。工作 4:為 MCP Toolbox 建立服務帳戶
在這項工作中,您會為 MCP Toolbox 建立服務帳戶。
在對話應用程式中,MCP Toolbox 負責從資料庫擷取相關資訊,以及根據 AI 應用程式的要求,從資料庫中擷取必要資訊。這個服務帳戶代表在 Cloud Run 中執行的 MCP Toolbox 服務。
建立服務帳戶
在專案執行個體上,SSH 使用者無權為服務帳戶指定所需角色。您會使用新的 Cloud Shell 分頁建立服務帳戶。
- 
在 Cloud Shell 點按「開啟新分頁」圖示 (+),開啟新的 Cloud Shell 分頁。 
- 
在新分頁執行下列指令,即可建立服務帳戶: gcloud iam service-accounts create toolbox-identity系統會建立這個服務帳戶。 注意:如果系統傳回錯誤,指出您目前未選取有效帳戶,可能只是傳播延遲所致,請再次執行指令。
- 
執行下列指令,授予服務帳戶必要權限: export PROJECT_ID=$(gcloud config get-value project)
 gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \
   --role="roles/alloydb.client"
 gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \
   --role="roles/serviceusage.serviceUsageConsumer"
 gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \
   --role="roles/secretmanager.secretAccessor"這個服務帳戶會取得下列角色: 
- 
roles/alloydb.client:讓工具箱存取 AlloyDB 資料庫。
- 
roles/serviceusage.serviceUsageConsumer:讓工具箱使用服務。
- 
roles/secretmanager.secretAccessor:讓工具箱擷取儲存在 Secret Manager 中的 Secret。
 
- 
執行下列指令來關閉新分頁: exit
為檢索服務建立服務帳戶。工作 5:註冊 OAuth 同意畫面
在這項工作中,您會註冊 OAuth 同意畫面,系統會向要登入的使用者顯示這個畫面。
使用 OAuth 2.0 授權時,Google 會顯示同意畫面,請使用者授權應用程式存取資料。
- 
在 Google Cloud 控制台點按「導覽選單」圖示  ,然後依序選取「API 和服務」>「OAuth 同意畫面」。 ,然後依序選取「API 和服務」>「OAuth 同意畫面」。
 
- 
點按「開始」。 
- 
「應用程式名稱」請輸入 Cymbal Air。
 
- 
依序點按「使用者支援電子郵件」、學員的電子郵件和「下一步」。 
- 
「目標對象」請選取「內部」,然後點按「下一步」。 有專案存取權的使用者應能登入應用程式。 
- 
在實驗室操作說明的左側面板上,複製使用者名稱。  
 
- 
在「聯絡資訊」貼上複製的使用者名稱。 
- 
點按「下一步」。 
- 
選取核取方塊,表示同意使用者資料政策,然後依序點按「繼續」和「建立」。 同意畫面現已設定完畢。 
工作 6:建立應用程式的用戶端 ID
在這項工作中,您會建立應用程式的用戶端 ID。
應用程式必須有用戶端 ID,才能使用 Google 的 OAuth 服務。您可以設定允許發出這項要求的來源,以及重新導向 URI,在使用者同意登入後,將使用者重新導向至該位置。
- 
在 Google Cloud 控制台點按「導覽選單」圖示  ,然後依序選取「API 和服務」>「憑證」。 ,然後依序選取「API 和服務」>「憑證」。
 
- 
依序點按「+ 建立憑證」和「OAuth 用戶端 ID」。 Google 的 OAuth 伺服器會使用用戶端 ID 來識別個別應用程式。 
- 
「應用程式類型」請選取「網頁應用程式」。 
- 
「名稱」請輸入 Cymbal Air。
 您可以使用 Cloud Shell 產生 JavaScript 來源和重新導向 URI。 
- 
在 Cloud Shell 點按「開啟新分頁」圖示 (+),開啟新的 Cloud Shell 分頁。 
- 
請在新分頁執行下列指令,以便取得來源和重新導向 URI: echo "origin:"; echo "https://8080-$WEB_HOST"; echo "redirect:"; echo "https://8080-$WEB_HOST/login/google"
- 
在「已授權的 JavaScript 來源」,點按「+ 新增 URI」。 注意:請選取「已授權的 JavaScript 來源」下方的「新增 URI」按鈕,而不是「已授權的重新導向 URI」下方的按鈕。
- 
複製 echo 指令建立的來源 URI,然後在「URI 1」貼上 URI。 
- 
在「已授權的重新導向 URI」下方,點按「+ 新增 URI」。 注意:此處請選取「已授權的重新導向 URI」下方的「新增 URI」按鈕。
- 
複製 echo 指令建立的重新導向 URI,然後貼到「URI 1」。 
- 
接著要建立環境變數。請切換至 VM SSH 的 Cloud Shell 分頁,並貼上下列指令,但不要按下 Enter 鍵: export CLIENT_ID=
 
注意:請務必在虛擬機器工作階段建立 CLIENT_ID 環境變數。
- 
在「憑證」視窗中,按一下「建立」。 系統會隨即建立用戶端 ID 和用戶端密鑰。在這個測試應用程式,您只會用到用戶端 ID。 
- 
點按「複製用戶端 ID」圖示  。 。
 用戶端 ID 已複製到剪貼簿。 注意:您也可以從「憑證」頁面複製用戶端 ID。
- 
在 VM SSH 的 Cloud Shell 分頁貼上用戶端 ID,然後按下 Enter 鍵。 匯出內容應與下方類似: export CLIENT_ID=937631684809-q7hs2r191jbks7f7dopih2uafuknb92h.apps.googleusercontent.com
建立應用程式的用戶端 ID。工作 7:將工具箱部署至 Cloud Run
在這項工作中,您會將 MCP Toolbox 部署至 Cloud Run。
建構工具箱的設定檔
工具箱提供 tools.yaml 範例檔案,但您需要修改多項設定。
- 
執行下列指令來查看設定: head -20 ~/cymbal-air-toolbox-demo/tools.yaml這個 YAML 檔案包含資料庫和 OAuth 的設定。 內容應如下所示: sources:
   my-pg-instance:
     kind: alloydb-postgres
     project: retrieval-app-testing
     region: us-central1
     cluster: my-alloydb-cluster
     instance: my-alloydb-instance
     database: assistantdemo
     user: postgres
     password: postgres
 authServices:
   my_google_service:
     kind: google
     clientId: 706535509072-qa5v22ur8ik8o513b0538ufo0ne9jfn5.apps.googleusercontent.com
- 
執行下列指令,根據環境更新設定: export PROJECT="$(gcloud config get-value project)"
 export REGION="{{{project_0.default_region | REGION }}}"
 export CLUSTER="{{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}}"
 export INSTANCE="{{{project_0.startup_script.gcp_alloydb_primary_instance | PRIMARY_INSTANCE}}}"
 export DATABASE="{{{project_0.startup_script.gcp_alloydb_database | DATABASE}}}"
 export USER="{{{project_0.startup_script.gcp_alloydb_user | PG_USER}}}"
 export PASSWORD="{{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}}"
 export IP_TYPE="private"
 sed \
   -e "s/^\( *project:\).*$/\1 $PROJECT/" \
   -e "s/^\( *region:\).*$/\1 $REGION/" \
   -e "s/^\( *cluster:\).*$/\1 $CLUSTER/" \
   -e "s/^\( *instance:\).*$/\1 $INSTANCE/" \
   -e "s/^\( *database:\).*$/\1 $DATABASE/" \
   -e "s/^\( *user:\).*$/\1 $USER/" \
   -e "s/^\( *password:\).*$/\1 $PASSWORD\\n    ipType: $IP_TYPE/" \
   -e "s/^\( *clientId:\).*$/\1 $CLIENT_ID/" \
   ~/cymbal-air-toolbox-demo/tools.yaml > ~/tools.yaml這些指令會使用 sed,將特定設定替換為 tools.yaml 範例檔案。由於預設 IP 類型為公開,因此系統還會在密碼行下方新增 ipType 行。 
- 
執行下列指令來查看檔案更新: head -20 ~/tools.yaml設定檔頂端現在會顯示您的值。 機密設定 (尤其是資料庫密碼和用戶端 ID) 應以 Secret 形式保護。 
為 tools.yaml 檔案建立 Secret
您可以使用 Secret Manager 保護 Secret,不用將機密資訊匯入程式碼存放區,也無需將其納入執行中的應用程式。
- 
執行下列指令即可建立 Secret: cd ~
 gcloud secrets create tools --data-file=tools.yaml
- 
執行下列指令即可驗證 Secret 是否已儲存完畢: gcloud secrets describe tools現在應該會看到名為「tools」的 Secret。 
將工具箱部署至 Cloud Run
- 
在 VM SSH 的 Cloud Shell 分頁執行下列指令,將工具箱部署至 Cloud Run: export REGION={{{project_0.default_region | REGION }}}
 export MCP_TOOLBOX_VERSION="{{{project_0.startup_script.gcp_mcp_toolbox_version | TOOLBOX_VERSION}}}"
 export IMAGE="us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$MCP_TOOLBOX_VERSION"
 gcloud run deploy toolbox \
     --image $IMAGE \
     --service-account toolbox-identity \
     --region $REGION \
     --set-secrets "/app/tools.yaml=tools:latest" \
     --args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
     --network default \
     --subnet default \
     --no-allow-unauthenticated \
     --quiet等待部署作業完成。 
- 
執行下列指令來驗證服務: curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $(gcloud run services list --filter="(toolbox)" --format="value(URL)")看到「Hello World!」訊息時,表示服務已啟用並能處理要求。 
部署工具箱服務。工作 8:執行範例應用程式
在這項工作中,您會執行使用檢索服務的範例對話應用程式。
執行應用程式
- 
在 VM SSH 的 Cloud Shell 分頁執行下列指令,即可返回對話應用程式的根層級: source ~/.venv/bin/activate
 cd ~/cymbal-air-toolbox-demo啟動應用程式前,需先設定一些環境變數。應用程式的基本功能 (包括查詢航班和傳回機場設施) 需要 TOOLBOX_URL環境變數。這個變數是用來指定在 Cloud Run 執行的工具箱服務網址。
 
- 
執行下列指令,指定工具箱服務的網址: export TOOLBOX_URL=$(gcloud run services list --filter="(toolbox)" --format="value(URL)")
 echo $TOOLBOX_URL本機應用程式會使用工具箱網址,透過 MCP Toolbox 存取資料庫。 
- 
執行下列指令來執行應用程式: python run_app.py回應內容大致如下: (.venv) student-03-d87d6b142a95@app-vm:~/cymbal-air-toolbox-demo$ python run_app.py
 INFO:     Started server process [26127]
 INFO:     Waiting for application startup.
 Loading application...
 INFO:     Application startup complete.
 INFO:     Uvicorn running on http://0.0.0.0:8081 (Press CTRL+C to quit)應用程式現已開始運作。 
連線至 VM
您可以透過多種方式連線至 VM 上執行的應用程式。舉例來說,您能在虛擬私有雲使用防火牆規則,開啟 VM 的 8081 通訊埠,或是建立具有公開 IP 的負載平衡器。這裡您會使用 SSH 通道連線至 VM,將 Cloud Shell 通訊埠 8080 連至 VM 通訊埠 8081。
- 
在 Cloud Shell 點按「開啟新分頁」圖示 (+),開啟新的 Cloud Shell 分頁。 
- 
在新分頁執行下列指令,建立連往 VM 通訊埠的 SSH 通道: gcloud compute ssh app-vm --zone={{{project_0.default_zone | ZONE }}} -- -L localhost:8080:localhost:8081gcloud 指令會將 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 登機門附近的餐廳。 
工作 9:登入應用程式 (非必要)
在這項工作中,您會登入應用程式來預訂航班。
- 
點按「Sign in」, 畫面會彈出一個視窗。 
- 
在彈出式視窗中選取學生。 
- 
如要允許 Cymbal Air 存取學生的資訊,請按一下「Continue」。 現在學生帳戶已登入。 
- 
輸入下列查詢: Please book that flight.應用程式會顯示對話中提及的航班。 
- 
點按「Looks good to me. Book it」。 現在機票已預訂完成。 
- 
輸入下列查詢: Which flights have I booked?畫面會顯示剛才預訂的航班。 對話應用程式可回答使用者的問題,例如: 
- D50 登機門附近有哪些精品店?
- A6 登機門附近哪裡可以買到咖啡?
 該應用程式會使用最新 Google 基礎模型生成回覆,並從運作中的 AlloyDB 資料庫檢索航班和設施資訊,再於回覆中提供。如要進一步瞭解這個示範應用程式,請前往專案的 GitHub 頁面。 
恭喜!
您已成功建構對話應用程式,並運用大型語言模型 (LLM) 和檢索增強生成 (RAG) 技術,生成有趣且資訊豐富的對話。
後續行動/瞭解詳情
關閉研究室
如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。
您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)。
星級評等代表您的滿意程度:
- 1 星 = 非常不滿意
- 2 星 = 不滿意
- 3 星 = 普通
- 4 星 = 滿意
- 5 星 = 非常滿意
如果不想提供意見回饋,您可以直接關閉對話方塊。
如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。
使用手冊上次更新日期:2025 年 10 月 13 日
實驗室上次測試日期:2025 年 10 月 13 日
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。