本文說明如何使用 ABAP 專用的 Vertex AI SDK,透過 Vertex AI 特徵儲存庫執行各種工作,例如同步處理線上儲存庫、提供線上儲存庫中的特徵,以及使用實體或嵌入式搜尋線上特徵儲存庫。
Vertex AI 特徵儲存庫是雲端原生特徵儲存庫服務,您可以在 BigQuery 資料表或檢視表中管理特徵資料,簡化 ML 特徵管理和線上服務程序。
在 Vertex AI 特徵儲存庫設定的一般工作流程中,您首先要在 BigQuery 中準備 SAP 資料來源,然後建立特徵群組和特徵來註冊資料來源,並設定線上儲存庫和特徵檢視資源。接著,您可以透過特徵檢視畫面線上提供最新的特徵值,或在線上特徵儲存庫中執行相似搜尋。如要瞭解如何設定 Vertex AI 特徵儲存庫,請參閱「Vertex AI 特徵儲存庫」。
Vertex AI 特徵儲存庫準備好提供線上服務後,您就可以使用 ABAP 專用的 Vertex AI SDK 執行以下操作:
- 如要在模型預測期間提供即時服務的最新且準確的特徵值,請將線上商店與 BigQuery 中的特徵資料來源同步。
- 如要為即時應用程式提供線上商店的特徵值,請從線上商店提供特徵。
- 如要從線上商店擷取語意相似或相關的實體清單,請使用實體或嵌入內容進行搜尋。
事前準備
在使用 Vertex AI SDK for ABAP 搭配 Vertex AI 特徵儲存庫之前,請確認您或管理員已完成下列先決條件:
- 在 Google Cloud 專案中啟用 Vertex AI API。
- 在 SAP 環境中安裝 ABAP 適用的 Vertex AI SDK。
- 設定驗證,以便存取 Vertex AI API。
- 設定線上功能供應。如要瞭解如何建立及使用線上儲存庫,以便在端對端工作流程中透過 Vertex AI 特徵儲存庫在 BigQuery 中代管及提供資料,請參閱 Vertex AI 特徵儲存庫的 Jupyter 筆記本教學課程。
為 Vertex AI 特徵儲存庫例項化 ABAP 類別
如要在 ABAP 應用程式中使用 Vertex AI 特徵儲存庫,請將 /GOOG/CL_FEATURE_STORE
類別例項化。
DATA(lo_client) = NEW /goog/cl_feature_store(
iv_key_name = 'CLIENT_KEY'
iv_location = 'LOCATION_ID'
iv_feature_store_id = 'FEATURE_ONLINE_STORE_NAME' ).
更改下列內容:
CLIENT_KEY
:用於驗證的用戶端金鑰。LOCATION_ID
:線上商店所在的區域,例如us-central1
。FEATURE_ONLINE_STORE_NAME
:包含功能檢視畫面的線上商店名稱。
同步處理網路商店
為確保線上商店擁有最新且準確的特徵值,以便在模型預測期間即時顯示,您必須將線上商店中的特徵檢視資源與 BigQuery 中的特徵資料來源同步。
事前準備
由於您是透過區域端點存取 Vertex AI 特徵儲存庫,因此需要建立 RFC 目的地,才能建立與 Vertex AI API 的連線。接著,您可以在服務對應表中指定 RFC 目的地。
請使用 Vertex AI 特徵儲存庫所在的區域端點,為 Vertex AI API 建立 RFC 目的地。舉例來說,如果 Vertex AI 特徵儲存庫位於
us-east1
,則目標主機的端點會是us-east1-aiplatform.googleapis.com
。如要瞭解地區端點,請參閱「服務端點」。如要建立 RFC 目的地,請執行下列步驟:在 SAP GUI 中執行交易代碼
SM59
。建立新的 RFC 目的地。針對您建立的 RFC 目的地,請確認「Connection Type」已設為以下值:
G - HTTP connection to external server
。前往「技術設定」分頁,然後輸入下列詳細資料:
目標主機:提供 Vertex AI 特徵儲存庫所在的地區端點。
服務編號:輸入
443
。這個通訊埠號碼用於安全通訊。
前往「Logon & Security」分頁,確認「SSL Certificate」欄位已設為「DFAULT SSL Client (Standard)」選項。
儲存變更。
為 Vertex AI API 設定服務對應表:
在 SAP GUI 中執行交易代碼
/GOOG/SDK_IMG
。或者,您也可以執行交易代碼
SPRO
,然後按一下「SAP Reference IMG」。依序點選「ABAP SDK for Google Cloud」>「設定服務對應」。
按一下「新增項目」。
指定 Vertex AI API 的 RFC 目的地:
名稱 服務名稱 RFC 目的地 用於驗證的用戶端金鑰。 aiplatform:v1
RFC 目的地的名稱。 儲存新項目。
同步處理 Vertex AI 特徵儲存庫
如要在功能檢視畫面中啟動資料同步作業,請使用 SYNC_FEATURE_DATA_TO_FS
方法。
DATA(lv_feature_view_sync_id) = lo_client->sync_feature_data_to_fs(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
)->get_feature_sync_id( ).
將 FEATURE_VIEW_NAME
替換為您要開始同步處理資料的功能檢視畫面名稱。
這個方法會傳回功能檢視同步 ID,可用於檢查同步作業的狀態。
取得 Vertex AI 特徵儲存庫同步作業的狀態
如要取得 Vertex AI 特徵儲存庫同步作業的狀態,您可以使用 GET_FEATURE_SYNC_STATUS
方法。
DATA(ls_status) = lo_client->get_feature_sync_status(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
iv_feature_sync_id = 'FEATURE_VIEW_SYNC_ID'
)->get_feature_sync_status( ).
更改下列內容:
FEATURE_VIEW_NAME
:您要檢查同步處理狀態的功能檢視畫面名稱。FEATURE_VIEW_SYNC_ID
:從 Sync Vertex AI 特徵儲存庫收到的特徵檢視同步 ID。此方法會傳回下列其中一個狀態,以及錯誤訊息 (如有):
C: Complete
、R: Running
或F: Failed
使用 SAP 背景工作同步 Vertex AI 特徵儲存庫
如要使用 SAP 背景工作在功能檢視畫面中啟動資料同步處理作業,您可以使用 SYNC_FEATURE_DATA_TO_FS_BGJOB
方法。
這個方法會在 SAP 系統中建立背景工作,啟動功能存放區同步作業,並每 30 秒檢查一次功能存放區同步作業的狀態。如果功能存放區同步處理狀態已完成或失敗,背景工作就會完成,並顯示相應訊息。如果特徵資料儲存庫同步處理程序正在執行,則背景工作會持續執行,直到指定的 TIMEOUT
值為止。逾時後,背景工作會完成,但功能存放區同步作業會繼續執行。
DATA(ls_bgjob_details) = lo_client->sync_feature_data_to_fs_bgjob(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
iv_timeout = TIMEOUT
)->get_background_job_details( ).
更改下列內容:
FEATURE_VIEW_NAME
:您要手動啟動資料同步作業的功能檢視圖。TIMEOUT
:背景工作逾時的秒數。這不會影響 Vertex AI 特徵儲存庫的同步作業。
這個方法會傳回背景工作名稱和對應的 ID。您可以透過 SAP 監控這項工作,查看功能存放區同步作業的狀態。
從網路商店提供特徵
您可以從線上商店提供特徵值,以便用於即時應用程式,例如產品推薦。視你為線上商店設定的線上放送類型而定,你可以透過下列任一方式放送特徵值:
- 使用 Bigtable 線上服務擷取特徵值。
- 使用公開端點搭配最佳化線上放送功能擷取功能值。
- 使用 Private Service Connect 端點搭配最佳化線上放送功能,擷取地圖項目值。
如要進一步瞭解提供功能值,請參閱「從網路商店提供功能」。
事前準備
您必須先從網路商店詳細資料中擷取公開端點網域名稱,為端點建立 RFC 目的地,然後在服務對應表中指定 RFC 目的地,才能開始從網路商店提供特徵值。
擷取線上商店的公開端點網域名稱:
在 SAP GUI 中執行交易代碼
/GOOG/SDK_IMG
。或者,您也可以執行交易代碼
SPRO
,然後按一下「SAP Reference IMG」。依序按一下「ABAP SDK for Google Cloud」>「Utilities」>「Vertex AI SDK:取得 Feature Store 和 Vector Search 的 RFC 資訊」。
選取「取得特徵儲存庫詳細資料」。
輸入下列參數:
- Google Cloud 金鑰名稱:用於驗證 Google Cloud的用戶端金鑰。
- 位置:線上商店所在的地區。
- 特徵儲存庫 ID:包含特徵檢視表的線上商店名稱。
按一下「執行」即可查看詳細資料。請記下「Host」標籤的公開端點網域名稱。
為區域端點、公開端點網域名稱或網路商店的 Private Service Connect 端點建立 RFC 目的地。如要建立 RFC 目的地,請執行下列步驟:
在 SAP GUI 中執行交易代碼
SM59
。建立新的 RFC 目的地。針對您建立的 RFC 目的地,請確認「Connection Type」已設為以下值:
G - HTTP connection to external server
。前往「技術設定」分頁,然後輸入下列詳細資料:
目標主機:提供 Vertex AI 特徵儲存庫所在的公開端點網域名稱。
服務編號:輸入
443
。這個通訊埠號碼用於安全通訊。
前往「Logon & Security」分頁,確認「SSL Certificate」欄位已設為「DFAULT SSL Client (Standard)」選項。
儲存變更。
為 Vertex AI API 設定服務對應表:
在 SAP GUI 中執行交易代碼
/GOOG/SDK_IMG
。或者,您也可以執行交易代碼
SPRO
,然後按一下「SAP Reference IMG」。依序點選「ABAP SDK for Google Cloud」>「設定服務對應」。
按一下「新增項目」。
指定 Vertex AI API 的 RFC 目的地:
名稱 服務名稱 RFC 目的地 用於驗證的用戶端金鑰。 apiinvoker:v1
RFC 目的地的名稱。 儲存新項目。
擷取特徵值
在 Vertex AI 特徵儲存庫中,實體是指您要追蹤特徵的項目,例如客戶、產品或任何其他資料點。每個實體都會與一組特徵和相應的值相關聯。
如要透過指定單一實體 ID 擷取特徵值,請使用 SERVE_FEATURE_VALUES
方法。
DATA(lt_features) = lo_client->serve_feature_values(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
it_entity_id = 'ENTITY_ID'
)->get_features( ).
更改下列內容:
FEATURE_VIEW_NAME
:您要提供地圖項目值的功能檢視畫面名稱。ENTITY_ID
:您要用於提供最新特徵值的特徵記錄中 ID 欄的值。或者,您也可以提供零件陣列來建構實體 ID。請確認 ID 欄的順序與特徵檢視畫面中定義的順序相同。
搜尋近似最鄰近的項目
如果是為了最佳化線上服務而建立的網路商店,您可以執行向量相似度搜尋,擷取語意相似或相關實體的清單,也就是大致相似的鄰近項目。您可以根據實體 ID 或嵌入值,搜尋大致最近鄰。
事前準備
當您建立線上商店以便最佳化線上服務時,Vertex AI 特徵儲存庫會為線上商店產生公開端點網域名稱。在網路商店的功能檢視畫面中,您必須先從網路商店詳細資料中擷取公開端點網域名稱,為端點建立 RFC 目的地,然後在服務對應表中指定 RFC 目的地,才能開始搜尋最近的鄰近項目。
擷取線上商店的公開端點網域名稱:
-
在 SAP GUI 中執行交易代碼
/GOOG/SDK_IMG
。或者,您也可以執行交易代碼
SPRO
,然後按一下「SAP Reference IMG」。 - 依序按一下「ABAP SDK for Google Cloud」>「Utilities」>「Vertex AI SDK:取得 Feature Store 和 Vector Search 的 RFC 資訊」。
- 選取「取得特徵儲存庫詳細資料」。
輸入下列參數:
- Google Cloud 金鑰名稱:用於驗證 Google Cloud的用戶端金鑰。
- 位置:線上商店所在的地區。
- 特徵儲存庫 ID:包含特徵檢視表的線上商店名稱。
按一下「執行」即可查看詳細資料。請記下「Host」標籤的公開端點網域名稱。
-
在 SAP GUI 中執行交易代碼
為網路商店的公開端點網域名稱建立 RFC 目的地:
在 SAP GUI 中執行交易代碼
SM59
。建立新的 RFC 目的地。針對您建立的 RFC 目的地,請確認「Connection Type」已設為以下值:
G - HTTP connection to external server
。前往「技術設定」分頁,然後輸入下列詳細資料:
目標主機:提供網路商店的公開端點網域名稱。
服務編號:輸入
443
。這個通訊埠號碼用於安全通訊。
前往「Logon & Security」分頁,確認「SSL Certificate」欄位已設為「DFAULT SSL Client (Standard)」選項。
儲存變更。
為 Vertex AI API 設定服務對應表:
-
在 SAP GUI 中執行交易代碼
/GOOG/SDK_IMG
。或者,您也可以執行交易代碼
SPRO
,然後按一下「SAP Reference IMG」。 - 依序點選「ABAP SDK for Google Cloud」>「設定服務對應」。
- 按一下「新增項目」。
指定 Vertex AI API 的 RFC 目的地:
名稱 服務名稱 RFC 目的地 用於驗證的用戶端金鑰。 apiinvoker:v1
RFC 目的地的名稱。 儲存新項目。
-
在 SAP GUI 中執行交易代碼
擷取嵌入項目的最相似項目
您可以指定嵌入,搜尋語意相關的實體。
如要搜尋嵌入項目的最近鄰,請使用 SEARCH_USING_EMBEDDINGS
方法傳送要求。
DATA(lt_embeddings) = VALUE /goog/cl_aiplatform_v1=>ty_t_/goog/num_float( EMBEDDING_DATA ).
DATA(lt_neighbours) = lo_client->search_using_embeddings(
EXPORTING
iv_feature_view_id = 'FEATURE_VIEW_NAME'
it_embeddings = lt_embeddings
is_search_params = VALUE #( neighbor_count = 'NEIGHBOR_COUNT'
return_full_entity = 'RETURN_FULL_ENTITY' )
)->get_neighbours( ).
更改下列內容:
EMBEDDING_DATA
:您要擷取近似最鄰近項目比對結果的嵌入項目。嵌入內容會以浮點值陣列表示。FEATURE_VIEW_NAME
:您要搜尋近似最近鄰比對結果的要素檢視畫面名稱。NEIGHBOR_COUNT
:您要擷取的近似鄰點數量。RETURN_FULL_ENTITY
:選用。指定要加入或排除回應中實體的功能。如要在回應中加入地圖項目和實體,請輸入ABAP_TRUE
。預設值為ABAP_FALSE
。
擷取實體的最相近項目
您可以指定實體 ID,搜尋語意相關的實體。
如要搜尋實體 ID 的最近鄰近項目,請使用 SEARCH_USING_ENTITY
方法傳送要求。
DATA(lt_neighbours) = lo_client->search_using_entity(
EXPORTING
iv_feature_view_id = 'FEATURE_VIEW_NAME'
iv_entity_id = 'ENTITY_ID'
is_search_params = VALUE #( neighbor_count = 'NEIGHBOR_COUNT'
return_full_entity = 'RETURN_FULL_ENTITY' )
)->get_neighbours( ).
更改下列內容:
FEATURE_VIEW_NAME
:您要搜尋近似最近鄰比對結果的要素檢視畫面名稱。ENTITY_ID:
:您要擷取近似近鄰相符項目的實體 ID。NEIGHBOR_COUNT
:您要擷取的近似鄰點數量。RETURN_FULL_ENTITY
:選用。指定要加入或排除回應中實體的功能。如要在回應中加入地圖項目和實體,請輸入ABAP_TRUE
。預設值為ABAP_FALSE
。
後續步驟
- 瞭解如何使用 ABAP SDK for Google Cloud 的內部部署或任何雲端版本進行應用程式開發。
- 歡迎在 Cloud 論壇上提問,並與社群討論 ABAP 專用的 Vertex AI SDK。