
准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Create a database and enable pgVector extension
/ 20
Populate database with the sample dataset
/ 20
Create the service account retrieval-identity
/ 20
Deploy the Retrieval Service
/ 20
Create a Client Id
/ 20
檢索增強生成 (RAG) 是提升大型語言模型 (LLM) 回覆品質的最佳工具之一。RAG 是一種模式,會擷取非公開資料,並將資料加到要傳送至 LLM 的提示中。如此一來,LLM 就能根據提示中包含的資料,生成更準確的回覆。
AlloyDB 是與 PostgreSQL 相容的 Google Cloud 資料庫,具備擴充性且效能卓越。您將使用此資料庫儲存及搜尋「向量嵌入」這種特殊向量資料。使用者可利用語意搜尋擷取向量嵌入,在進行自然語言查詢時,找出最符合查詢的可用資料。接著,擷取的資料會加到提示中,一併傳給 LLM。
您也將使用 Google Cloud 的全代管統合式 AI 開發平台 Vertex AI,建構及使用生成式 AI。您的應用程式會採用多模態基礎模型 Gemini Pro,使用者將能在文字或對話提示中加入圖片、音訊、影片和 PDF 檔案。這款模型也能理解長脈絡資料。
在本實驗室中,您將學習下列內容:
您會在實際雲端環境中完成 Qwiklabs 實作實驗室活動,而非模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 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 鍵完成功能。
輸出內容:
輸出內容示例:
輸出內容:
輸出內容示例:
在這項工作中,您會安裝 PostgreSQL 用戶端,並連線至 AlloyDB 執行個體。
虛擬機器 (VM) 已建立完成,會用來託管應用程式。您也會在這個 VM 建立 PostgreSQL 用戶端。
請執行下列指令,連線至 VM:
如果系統要求您授權,請點按「授權」。
對於透過 gcloud compute ssh
指令提出的每個問題,按下 Enter 或 Return 鍵使用預設輸入內容。
稍後便會登入 VM。
如要安裝 PostgreSQL 用戶端,請在 VM 工作階段執行下列指令:
系統已建立 AlloyDB 執行個體。
請執行下列指令,建立必要的殼層變數:
請執行下列指令,使用 psql 連線至 AlloyDB 執行個體:
psql 會連線至 AlloyDB 資料庫,並顯示 postgres=>
提示。現在您已連線至資料庫。
請執行下列指令,退出 psql 工作階段:
在這項工作中,您會使用 PostgreSQL 用戶端建立 AlloyDB 資料庫,並啟用向量嵌入功能。
請在 VM 工作階段執行下列指令,建立新的資料庫:
psql 會回應 CREATE DATABASE
。
需以向量嵌入表示實體,資料庫才支援語意搜尋。
請執行下列指令,為此資料庫啟用向量嵌入功能:
psql 會回應 CREATE EXTENSION
。
點按「Check my progress」,確認目標已達成。
在這項工作中,您會在 VM 安裝 Python,並使用 Python 填充資料庫。
請執行下列指令,在 VM 安裝 Python 和 Git:
安裝完成後,您會留在 Python 虛擬環境中,並看到 (.venv)
提示。
如果 VM SSH 工作階段逾時或分頁關閉,您可以再次透過 SSH 連線至 VM,然後使用 source ~/.venv/bin/activate
指令,重新啟動 Python 虛擬環境。
請執行下列指令來要確認 Python 的版本:
回應內容大致如下:
在這項工作中,您會利用範例資料填充 AlloyDB 的向量資料庫。範例對話應用程式會使用這些資料。
範例應用程式和資料儲存在 genai-databases-retrieval-app 這個 GitHub 存放區。
請在 VM 執行下列指令,複製存放區:
請執行下列指令來查看資料模型:
畫面會顯示 Python 資料模型,範圍涵蓋機場、航班、航廈設施、政策和機票。
請執行下列指令,查看其中的一些機場資料:
機場資料集的資料欄名稱是由 CSV 標頭指定。這些指令會顯示此 CSV 標頭,然後顯示舊金山國際機場 (SFO) 資料列的內容。您能根據國際航空運輸協會 (IATA) 代碼,或是國家/地區、城市和機場名稱,檢索機場模型中的資料。這份資料沒有向量嵌入,您可以使用關鍵字搜尋功能,尋找此資料表中不同的資料列。
請執行下列指令,查看模型中的一些航班資料:
航班資料集的資料欄名稱是由 CSV 標頭指定。這些指令會顯示此 CSV 標頭,然後顯示出發地或抵達地為 SFO 的前 10 列航班資料。您能根據航空公司、航班號碼或出發地/抵達地的機場代碼,檢索航班模型中的資料。
請執行下列指令,查看模型中的一些設施資料:
設施資料集的資料欄名稱是由 CSV 標頭指定。這些指令會顯示此 CSV 標頭,然後顯示第一項設施。
您會發現第一項設施有幾個簡單的值,包括名稱、說明、位置、航廈、類別和營業時間。下一個值是 content
,含有名稱、說明和位置。最後一個值是 embedding
,是此資料列的向量嵌入。
嵌入是一個有 768 個數字的陣列,用於執行語意搜尋。Vertex AI 提供的 AI 模型會計算出這些嵌入。使用者提交查詢時,系統會根據查詢建立向量嵌入,並擷取向量嵌入與搜尋嵌入相近的資料。
政策資料也會以類似方式使用向量嵌入。
請執行下列指令,建立資料庫設定檔:
系統會建立設定檔 config.yml
,並更新執行個體 IP 位址、使用者名稱、密碼和資料庫。設定檔應與下方內容類似:
請執行下列指令,使用範例資料集填充資料庫:
第一個指令會將所有必要套件新增至 Python 虛擬環境,第二個指令則會用資料填充資料庫。
在這項工作中,您會為檢索服務建立服務帳戶。
檢索服務負責根據 AI 應用程式的要求,從資料庫中擷取必要資訊。這個服務帳戶代表該 Cloud Run 服務。
在專案執行個體上,SSH 使用者無權為服務帳戶指定所需角色。您會使用新的 Cloud Shell 分頁建立服務帳戶。
在 Cloud Shell 點按「開啟新分頁」圖示 (+),即可開啟新的 Cloud Shell 分頁。
請在新分頁執行下列指令,以便建立服務帳戶並授予必要權限:
這個服務帳戶已取得 roles/aiplatform.user
角色,可呼叫 Vertex AI。
請執行下列指令來關閉新分頁:
在這項工作中,您會將檢索服務部署至 Cloud Run。
請在 VM SSH 的 Cloud Shell 分頁執行下列指令,部署檢索服務:
請稍候幾分鐘,等待部署作業完成。
請執行下列指令來驗證服務:
看到「Hello World」訊息時,表示服務已啟用並能處理要求。
在這項工作中,您會註冊 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」貼上 URI。
點按「建立」。
系統已建立用戶端 ID 和用戶端密鑰。在這個測試應用程式,您只會用到用戶端 ID。
現在要建立環境變數。請在 VM SSH 的 Cloud Shell 分頁貼上下列指令,但不要按下 Enter 鍵:
點按「複製用戶端 ID」圖示 。
用戶端 ID 已複製到剪貼簿。
在 VM SSH 的 Cloud Shell 分頁貼上用戶端 ID,然後按下 Enter 鍵。
匯出內容應與下方類似:
在這項工作中,您會執行使用檢索服務的範例對話應用程式。
請在 VM SSH 的 Cloud Shell 分頁執行下列指令,以便安裝對話應用程式的 Python 需求檔案:
啟動應用程式前,需先設定一些環境變數。應用程式的基本功能 (包括查詢航班和傳回機場設施) 需要 BASE_URL
環境變數。這個變數是用來指定檢索服務的基準網址。
請執行下列指令,指定檢索服務的基準網址:
本機應用程式會使用這個基準網址存取檢索服務。
如要執行應用程式,請執行下列指令:
回應內容大致如下:
應用程式現已開始運作。
您可以透過多種方式連線至 VM 上執行的應用程式。舉例來說,您能在虛擬私有雲使用防火牆規則,開啟 VM 的 8081 通訊埠,或是建立具有公開 IP 的負載平衡器。這裡您會使用 SSH 通道連線至 VM,將 Cloud Shell 通訊埠 8080 連至 VM 通訊埠 8081。
在 Cloud Shell 點按「開啟新分頁」圖示 (+),即可開啟新的 Cloud Shell 分頁。
請在新分頁執行下列指令,建立連往 VM 通訊埠的 SSH 通道:
gcloud 指令會將 Cloud Shell 通訊埠 8080,連線至 VM 通訊埠 8081。您可以忽略「Cannot assign requested address.」錯誤訊息。
現在要在網路瀏覽器執行應用程式。請點按「網頁預覽」,然後選取「透過以下通訊埠預覽:8080」。
瀏覽器會開啟新分頁並執行應用程式。Cymbal Air 應用程式會顯示下列訊息:「Welcome to Cymbal Air!How may I assist you?」。
輸入下列查詢:
應用程式會在回覆中提供下一個從 SFO 飛往達拉斯沃斯堡的航班。
輸入下列查詢:
應用程式瞭解查詢脈絡,會在回覆中提供 SFO 登機門附近的餐廳。
在這項工作中,您會登入應用程式來預訂航班。
點按「Sign in」,
畫面會彈出一個視窗。
在彈出式視窗中選取學員。
現在學員帳戶已登入。
如果系統要求您確認是否要以學員身分登入,請點按「Confirm」。
輸入下列查詢:
應用程式會顯示對話中提及的航班。
點按「Looks good to me. Book it」。
現在機票已預訂完成。
輸入下列查詢:
畫面會顯示剛才預訂的航班。
對話應用程式可回答使用者的問題,例如:
該應用程式會使用最新 Google 基礎模型生成回覆,並從運作中的 AlloyDB 資料庫檢索航班和設施資訊,再於回覆中提供。如要進一步瞭解這個示範應用程式,請前往專案的 GitHub 頁面。
您已成功建構對話應用程式,並運用大型語言模型 (LLM) 和檢索增強生成 (RAG) 技術,生成有趣且資訊豐富的對話。
如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。
您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)。
星級評等代表您的滿意程度:
如果不想提供意見回饋,您可以直接關閉對話方塊。
如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。
Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验