Vertex AI Feature Store verwenden

In diesem Dokument wird beschrieben, wie Sie mit Vertex AI Feature Store Aufgaben wie das Synchronisieren eines Onlinespeichers, das Bereitstellen von Features aus einem Onlinespeicher und die Suche in einem Online-Feature Store mithilfe einer Entität oder Einbettungen mit dem Vertex AI SDK für ABAP ausführen.

Vertex AI Feature Store ist ein verwalteter, cloudnativer Feature Store-Dienst. Er optimiert die ML-Featureverwaltung und die Onlinebereitstellungsprozesse, da Sie die Featuredaten in einer BigQuery-Tabelle oder -Ansicht verwalten können.

In einem typischen Workflow einer Vertex AI Feature Store-Einrichtung bereiten Sie zuerst Ihre SAP-Datenquelle in BigQuery vor, registrieren Ihre Datenquellen durch Erstellen von Featuregruppen und Features und richten den Onlinespeicher und die Featureansicht-Ressourcen ein. Sie können dann die neuesten Featurewerte online aus einer Featureansicht bereitstellen oder eine Ähnlichkeitssuche im Online-Feature Store durchführen. Informationen zum Einrichten von Vertex AI Feature Store finden Sie unter Vertex AI Feature Store.

Sobald Ihr Vertex AI Feature Store für die Onlinebereitstellung bereit ist, können Sie das Vertex AI SDK für ABAP für Folgendes verwenden:

  • Damit Sie während der Modellvorhersage aktuelle und genaue Featurewerte für die Echtzeitbereitstellung bereitstellen können, sollten Sie Ihren Onlinespeicher mit der Featuredatenquelle in BigQuery synchronisieren.
  • Wenn Sie Featurewerte aus einem Onlinespeicher für Echtzeitanwendungen bereitstellen möchten, müssen Sie die Features aus dem Onlinespeicher bereitstellen.
  • Wenn Sie eine Liste semantisch ähnlicher oder verwandter Entitäten aus dem Onlinespeicher abrufen möchten, verwenden Sie eine Entität oder Einbettung für die Suche.

Hinweise

Bevor Sie das Vertex AI SDK für ABAP mit dem Vertex AI Feature Store verwenden, müssen Sie oder Ihre Administratoren die folgenden Voraussetzungen erfüllen:

ABAP-Klasse für Vertex AI Feature Store installieren

Wenn Sie den Vertex AI Feature Store in Ihrer ABAP-Anwendung verwenden möchten, müssen Sie die Klasse /GOOG/CL_FEATURE_STORE instanziieren.

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' ).

Ersetzen Sie Folgendes:

  • CLIENT_KEY: Der für die Authentifizierung konfigurierte Clientschlüssel.
  • LOCATION_ID: Die Region, in der sich der Onlinespeicher befindet, z. B. us-central1.
  • FEATURE_ONLINE_STORE_NAME: Der Name des Onlinespeichers, der die Featureansicht enthält.

Onlinespeicher synchronisieren

Damit Ihr Onlinespeicher die aktuellen und genauesten Featurewerte für die Echtzeitbereitstellung während der Modellvorhersage hat, müssen Sie die Featureansicht-Ressourcen in Ihrem Onlinespeicher mit der Feature-Datenquelle in BigQuery synchronisieren.

Hinweis

Lokale oder beliebige Cloud-Version

Da Sie über einen regionalen Endpunkt auf den Vertex AI Feature Store zugreifen, müssen Sie ein RFC-Ziel erstellen, um eine Verbindung zur Vertex AI API herzustellen. Geben Sie dann das RFC-Ziel in der Dienstzuordnungstabelle an.

  1. Erstellen Sie ein RFC-Ziel für die Vertex AI API mit dem regionalen Endpunkt, an dem sich Ihr Vertex AI Feature Store befindet. Wenn sich Ihr Vertex AI Feature Store beispielsweise unter us-east1 befindet, lautet der Endpunkt für den Zielhost us-east1-aiplatform.googleapis.com. Informationen zu regionalen Endpunkten finden Sie unter Dienstendpunkt. So erstellen Sie ein RFC-Ziel:

    1. Führen Sie in der SAP-GUI den Transaktionscode SM59 aus.

    2. Erstellen Sie ein neues RFC-Ziel. Achten Sie darauf, dass für das von Ihnen erstellte RFC-Ziel der Verbindungstyp so festgelegt ist: G - HTTP connection to external server.

    3. Öffnen Sie den Tab Technische Einstellungen und geben Sie folgende Details ein:

      • Zielhost: Geben Sie den regionalen Endpunkt an, an dem sich Ihr Vertex AI Feature Store befindet.

      • Dienstnummer: Geben Sie 443 ein. Diese Portnummer wird für die sichere Kommunikation verwendet.

    4. Gehen Sie zum Tab Anmeldung und Sicherheit und prüfen Sie, ob Feld SSL-Zertifikat auf die Option DFAULT SSL Client (Standard) festgelegt ist.

    5. Speichern Sie die Änderungen.

  2. Konfigurieren Sie die Dienstzuordnungstabelle für die Vertex AI API:

    1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

      Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

    2. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Dienstzuordnung konfigurieren.

    3. Klicken Sie auf Neue Einträge.

    4. Geben Sie das RFC-Ziel für die Vertex AI API an:

    Name Dienstname RFC-Ziel
    Clientschlüssel für die Authentifizierung. aiplatform:v1 Name des RFC-Ziels.
    1. Speichern Sie den neuen Eintrag.

SAP BTP-Edition

Da Sie über einen regionalen Endpunkt auf den Vertex AI Feature Store zugreifen, müssen Sie ein Kommunikationssystem und eine Kommunikationsvereinbarung erstellen und den Clientschlüssel entsprechend konfigurieren.

  1. Rufen Sie das SAP Fiori-Start-Dashboard des BTP ABAP-Systems auf, in dem das ABAP SDK for Google Cloud installiert ist.

  2. Gehen Sie zu Alle Gruppenbereiche > Verwaltung > Kommunikationsverwaltung.

  3. Erstellen Sie ein Kommunikationssystem:

    1. Öffnen Sie die App Kommunikationssysteme.
    2. Klicken Sie auf Neu.
    3. Geben Sie im angezeigten Dialogfeld Neues Kommunikationssystem Werte für die folgenden Felder ein:
    • System-ID: Geben Sie eine System-ID ein.
    • Systemname: Geben Sie einen Systemnamen ein.
    1. Klicken Sie auf Erstellen.
    2. Geben Sie im Feld Hostname die URL für den regionalen Endpunkt ein. Wenn sich Ihr Vertex AI Feature Store beispielsweise unter us-east1 befindet, lautet der Endpunkt für den Zielhost us-east1-aiplatform.googleapis.com. Informationen zu regionalen Endpunkten finden Sie unter Dienstendpunkt.
    3. Geben Sie in das Feld Port die Zahl 443 ein.
    4. Klicken Sie auf dem Tab Nutzer für ausgehende Kommunikation auf Hinzufügen.
    5. Wählen Sie im Feld Authentication method (Authentifizierungsmethode) die Option None (Keine) aus.
    6. Klicken Sie auf Speichern.
  4. So erstellen Sie eine Kommunikationsvereinbarung:

    1. Öffnen Sie die App Kommunikationsvereinbarung.
    2. Klicken Sie auf Neu.
    3. Geben Sie im angezeigten Dialogfeld Neue Kommunikationsvereinbarung Werte für die folgenden Felder ein:
    • Szenario: Wählen Sie Authentifizierung mit der Identitätsföderation von Arbeitslasten (/GOOG/COM_SDK_SRV) aus.
    • Name der Vereinbarung: Geben Sie einen Namen für die Kommunikationsvereinbarung ein.
    1. Klicken Sie auf Erstellen.
    2. Wählen Sie für den angezeigten Eintrag für die Kommunikationsvereinbarung im Feld Kommunikationssystem das Kommunikationssystem aus, das Sie im vorherigen Schritt erstellt haben.
    3. Klicken Sie auf Speichern.
  5. Erstellen Sie einen Clientschlüssel und eine Kommunikationsübersicht:

    1. Rufen Sie den Bereich auf, der die SAP Fiori-Apps für die SDK-Konfiguration enthält.
    2. Öffnen Sie die App Google SDK: Hauptkonfiguration.
    3. Klicken Sie auf Erstellen.
    4. Geben Sie im angezeigten Dialogfeld Erstellen einen Namen für den Clientschlüssel ein.
    5. Klicken Sie auf Weiter.
    6. Geben Sie einen Wert für die folgenden Felder ein:
    • Dienstkonto: Geben Sie das Dienstkonto ein, dem Zugriff auf die Google Cloud APIs gewährt wurde.
    • Projekt-ID: Geben Sie die Projekt-ID des Google Cloud-Projekts ein, in dem Sie die Google Cloud APIs aktiviert haben. Informationen zur Projekt-ID finden Sie unter Projekte identifizieren.
    • Projektnummer: Geben Sie die Projektnummer des Google Cloud-Projekts ein, in dem Sie die Google Cloud APIs aktiviert haben. Informationen zur Projektnummer finden Sie unter Projekte identifizieren.
    • Authentifizierungstyp: Wählen Sie W (Workload Identity-Föderation) aus.
    • Geben Sie für die Kommunikationszuordnung für den Standardeintrag „authentication“ die Kommunikationsvereinbarung an, die Sie für die WIF-basierte Authentifizierung eingerichtet haben.
    • Fügen Sie der Kommunikationszuordnung einen weiteren Eintrag hinzu, wählen Sie als Dienst aiplatform:v1 aus und geben Sie die Kommunikationsvereinbarung an, die Sie gerade erstellt haben.
    • Klicken Sie auf Erstellen. In einem Dialogfeld bestätigen Sie, dass Sie die Google Cloud Standardnutzungsbedingungen für das ABAP SDK for Google Cloud akzeptieren.
    • Klicken Sie auf Verbindung prüfen, um die Authentifizierungskonfiguration zu validieren. Ein grünes Häkchen bei einem Eintrag bedeutet, dass die Konfiguration erfolgreich war.

    Informationen zum Beheben häufiger Fehler finden Sie in der Anleitung zur Fehlerbehebung.

Vertex AI Feature Store synchronisieren

Verwenden Sie die Methode SYNC_FEATURE_DATA_TO_FS, um eine Datensynchronisierung in einer Featureansicht zu starten.

DATA(lv_feature_view_sync_id) = lo_client->sync_feature_data_to_fs(
                                             iv_feature_view_id = 'FEATURE_VIEW_NAME'
                                        )->get_feature_sync_id( ).

Ersetzen Sie FEATURE_VIEW_NAME durch den Namen der Kartenansicht, für die Sie die Datensynchronisierung starten möchten.

Diese Methode gibt eine Synchronisierungs-ID für die Infofelder zurück, mit der Sie den Status der Synchronisierung prüfen können.

Status der Vertex AI Feature Store-Synchronisierung abrufen

Mit der Methode GET_FEATURE_SYNC_STATUS können Sie den Status einer Vertex AI Feature Store-Synchronisierung abrufen.

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( ).

Ersetzen Sie Folgendes:

  • FEATURE_VIEW_NAME: Der Name der Featureansicht, für die Sie den Synchronisierungsstatus prüfen möchten.
  • FEATURE_VIEW_SYNC_ID: Die Synchronisierungs-ID der Feature-Ansicht, die von Vertex AI Feature Store synchronisieren empfangen wurde.

    Diese Methode gibt einen der folgenden Status zusammen mit der Fehlermeldung zurück, falls vorhanden: C: Complete, R: Running oder F: Failed.

Vertex AI Feature Store mit einem SAP-Hintergrundjob synchronisieren

Lokale oder beliebige Cloud-Version

Wenn Sie eine Datensynchronisierung in einer Featureansicht mit einem SAP-Hintergrundjob starten möchten, können Sie die Methode SYNC_FEATURE_DATA_TO_FS_BGJOB verwenden.

Bei dieser Methode wird in Ihrem SAP-System ein Hintergrundjob erstellt, der die Feature Store-Synchronisierung startet und alle 30 Sekunden den Status der Feature Store-Synchronisierung prüft. Wenn der Synchronisierungsstatus des Feature-Stores „Abgeschlossen“ oder „Fehlgeschlagen“ lautet, wird der Hintergrundjob mit einer entsprechenden Meldung abgeschlossen. Wenn die Feature Store-Synchronisierung ausgeführt wird, wird der Hintergrundjob bis zum angegebenen TIMEOUT-Wert ausgeführt. Nach Ablauf der Zeitüberschreitung wird der Hintergrundjob abgeschlossen, die Feature Store-Synchronisierung wird jedoch fortgesetzt.

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( ).

Ersetzen Sie Folgendes:

  • FEATURE_VIEW_NAME: Der Name der Featureansicht, für die Sie die Datensynchronisierung manuell starten möchten.
  • TIMEOUT: Zeit in Sekunden, nach der der Hintergrundjob das Zeitlimit überschreitet. Dies hat keine Auswirkungen auf die Synchronisierung mit Vertex AI Feature Store.

Diese Methode gibt den Namen eines Hintergrundjobs und die entsprechende ID zurück. Dieser Job kann in SAP überwacht werden, um den Status der Feature Store-Synchronisierung zu prüfen.

SAP BTP-Edition

Sie können diesen Abschnitt überspringen, da er sich nicht auf die SAP BTP-Version des ABAP SDK for Google Cloud bezieht.

Features aus einem Onlinespeicher bereitstellen

Sie können Featurewerte aus einem Onlineshop für Echtzeitanwendungen wie Produktempfehlungen bereitstellen. Abhängig von der für Ihren Onlinespeicher konfigurierten Art der Onlinebereitstellung können Featurewerte auf eine der folgenden Arten bereitgestellt werden:

  • Featurewerte mit der Cloud Bigtable-Onlinebereitstellung abrufen
  • Featurewerte mithilfe der optimierten Onlinebereitstellung mit einem öffentlichen Endpunkt abrufen
  • Featurewerte mit der optimierten Onlinebereitstellung mit einem Private Service Connect-Endpunkt abrufen

Weitere Informationen zum Bereitstellen von Featurewerten finden Sie unter Features aus einem Onlinespeicher bereitstellen.

Hinweis

Lokale oder beliebige Cloud-Version

Bevor Sie mit der Bereitstellung von Featurewerten aus einem Onlinespeicher beginnen können, müssen Sie den Domainnamen des öffentlichen Endpunkts aus den Details des Onlinespeichers abrufen, ein RFC-Ziel für den Endpunkt erstellen und dann das RFC-Ziel in der Dienstzuordnungstabelle angeben.

  1. Rufen Sie den Domainnamen des öffentlichen Endpunkts für den Onlinespeicher ab:

    1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

      Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

    2. Klicken Sie auf ABAP SDK for Google Cloud > Dienstprogramme > Vertex AI SDK: RFC-Informationen für Feature Store und Vektorsuche abrufen.
    3. Wählen Sie Feature Store-Details abrufen aus.
    4. Geben Sie die folgenden Parameter ein:
    • Google Cloud-Schlüsselname: Der Clientschlüssel für die Authentifizierung bei Google Cloud.
    • Standort: Die Region, in der sich der Onlinespeicher befindet.
    • Feature Store-ID: Der Name des Onlinespeichers, der die Featureansicht enthält.
    1. Klicken Sie auf Ausführen, um die Details aufzurufen. Notieren Sie sich den Domainnamen des öffentlichen Endpunkts unter dem Label Host.
  2. Erstellen Sie ein RFC-Ziel für den regionalen Endpunkt, den Domainnamen des öffentlichen Endpunkts oder den Private Service Connect-Endpunkt des Onlinespeichers. So erstellen Sie ein RFC-Ziel:

    1. Führen Sie in der SAP-GUI den Transaktionscode SM59 aus.
    2. Erstellen Sie ein neues RFC-Ziel. Achten Sie darauf, dass für das von Ihnen erstellte RFC-Ziel der Verbindungstyp so festgelegt ist: G - HTTP connection to external server.
    3. Öffnen Sie den Tab Technische Einstellungen und geben Sie folgende Details ein:
    • Zielhost: Geben Sie den Domainnamen des öffentlichen Endpunkts an, an dem sich Ihr Vertex AI Feature Store befindet.

    • Dienstnummer: Geben Sie 443 ein. Diese Portnummer wird für die sichere Kommunikation verwendet.

    1. Gehen Sie zum Tab Anmeldung und Sicherheit und prüfen Sie, ob Feld SSL-Zertifikat auf die Option DFAULT SSL Client (Standard) festgelegt ist.

    2. Speichern Sie die Änderungen.

  3. Konfigurieren Sie die Dienstzuordnungstabelle für die Vertex AI API:

  4. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

    Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

  5. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Dienstzuordnung konfigurieren.

  6. Klicken Sie auf Neue Einträge.

  7. Geben Sie das RFC-Ziel für die Vertex AI API an:

    Name Dienstname RFC-Ziel
    Clientschlüssel für die Authentifizierung. apiinvoker:v1 Name des RFC-Ziels.
  8. Speichern Sie den neuen Eintrag.

SAP BTP-Edition

Bevor Sie mit der Bereitstellung von Featurewerten aus einem Onlinespeicher beginnen können, müssen Sie den Domainnamen des öffentlichen Endpunkts aus den Details des Onlinespeichers abrufen. Anschließend müssen Sie ein Kommunikationssystem und eine Kommunikationsanordnung erstellen und sie mithilfe der SAP Fiori App Google SDK: Hauptkonfiguration in der Clientschlüsselkonfiguration konfigurieren.

  1. Wenn Sie den öffentlichen Endpunkt abrufen möchten, erstellen Sie die ZCL_GET_FEATURE_STORE_PUB_EP in einem lokalen Paket Ihrer Wahl. Sie müssen einen gültigen Clientschlüssel sowie die Speicher-ID und den Speicherort des Vertex AI Feature Store übergeben.

    CLASS zcl_get_feature_store_pub_ep DEFINITION
     PUBLIC FINAL
     CREATE PUBLIC.
     PUBLIC SECTION.
       INTERFACES if_oo_adt_classrun.
    ENDCLASS.
    CLASS zcl_get_feature_store_pub_ep IMPLEMENTATION.
     METHOD if_oo_adt_classrun~main.
       DATA lv_ckey        TYPE /goog/keyname.
       DATA lv_location_id TYPE string.
       DATA lv_fsid        TYPE string.
       DATA lv_project_id  TYPE string.
       DATA lv_msg         TYPE string.
    
       "TODO:Developer - Pass relevant values
       lv_ckey = 'CLIENT_KEY'.
       lv_fsid = 'FEATURE_ONLINE_STORE_NAME'.
       lv_location_id = 'LOCATION_ID'.
       TRY.
           DATA(lo_aip) = NEW  /goog/cl_aiplatform_v1( iv_key_name = lv_ckey ).
           lv_project_id = lo_aip->gv_project_id.
           " Call API method: aiplatform.projects.locations.featureOnlineStores.get
           lo_aip->get_feature_online_stores( EXPORTING iv_p_projects_id              = lv_project_id
                                                        iv_p_locations_id             = lv_location_id
                                                        iv_p_feature_online_stores_id = lv_fsid
                                              IMPORTING es_output                     = DATA(ls_output)
                                                        ev_ret_code                   = DATA(lv_ret_code)
                                                        ev_err_text                   = DATA(lv_err_text) ).
           IF lo_aip->is_success( lv_ret_code ) = abap_true.
             out->write( | Public endpoint is| ).
             out->write( ls_output-dedicated_serving_endpoint-public_endpoint_domain_name ).
           ENDIF.
         CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
           lv_msg = lo_cx_sdk->get_text( ).
           out->write( |Exception occurred, reason: { lv_msg }| ).
       ENDTRY.
     ENDMETHOD.
    ENDCLASS.
    
  2. Aktivieren und ausführen Sie die ZCL_GET_FEATURE_STORE_PUB_EP-Klasse.

    Die Ausgabe, also der öffentliche Endpunkt Ihres Onlineshops, hat folgendes Format:

    xxxxxxxxxx.LOCATION_ID-PROJECT_ID.featurestore.vertexai.goog
    

    Diese Ausgabe enthält die folgenden Werte:

    • LOCATION_ID: die Region, in der sich Ihr Onlineshop befindet.
    • PROJECT_ID: die Projekt-ID des Google Cloud-Projekts, in dem sich Ihr Onlineshop befindet.
  3. Rufen Sie das SAP Fiori-Start-Dashboard des BTP ABAP-Systems auf, in dem das ABAP SDK for Google Cloud installiert ist.

  4. Gehen Sie zu Alle Bereiche > Verwaltung > Kommunikationsverwaltung.

  5. Erstellen Sie ein Kommunikationssystem:

    1. Öffnen Sie die App Kommunikationssysteme.
    2. Klicken Sie auf Neu.
    3. Geben Sie im angezeigten Dialogfeld Neues Kommunikationssystem Werte für die folgenden Felder ein:
    • System-ID: Geben Sie eine System-ID ein.
    • Systemname: Geben Sie einen Systemnamen ein.
    1. Klicken Sie auf Erstellen.
    2. Geben Sie im Feld Hostname den öffentlichen Endpunkt ein, den Sie durch Ausführen der Klasse ZCL_GET_FEATURE_STORE_PUB_EP in einem vorherigen Schritt abgerufen haben.
    3. Geben Sie in das Feld Port die Zahl 443 ein.
    4. Rufen Sie den Tab Nutzer für ausgehende Kommunikation auf und klicken Sie auf Hinzufügen.
    5. Wählen Sie im Feld Authentifizierungsmethode die Option Keine aus.
    6. Klicken Sie auf Speichern.
  6. So erstellen Sie eine Kommunikationsvereinbarung:

    1. Öffnen Sie die App Kommunikationsabsprachen.
    2. Klicken Sie auf Neu.
    3. Geben Sie im angezeigten Dialogfeld Neue Kommunikationsvereinbarung Werte für die folgenden Felder ein:
    • Szenario: Wählen Sie Authentifizierung mit der Identitätsföderation von Arbeitslasten (/GOOG/COM_SDK_SRV) aus.
    • Name der Vereinbarung: Geben Sie einen Namen für die Kommunikationsvereinbarung ein.
    1. Klicken Sie auf Erstellen.
    2. Wählen Sie für den angezeigten Eintrag für die Kommunikationsvereinbarung im Feld Kommunikationssystem das Kommunikationssystem aus, das Sie im vorherigen Schritt erstellt haben.
    3. Klicken Sie auf Speichern.
  7. Erstellen Sie einen Clientschlüssel und eine Kommunikationsübersicht:

    1. Rufen Sie den Bereich auf, der die SAP Fiori-Apps für die SDK-Konfiguration enthält.
    2. Öffnen Sie die App Google SDK: Hauptkonfiguration.
    3. Klicken Sie auf Erstellen.
    4. Geben Sie im angezeigten Dialogfeld Erstellen einen Namen für den Clientschlüssel ein.
    5. Klicken Sie auf Weiter.
    6. Geben Sie die folgenden Informationen ein:
    • Dienstkonto: Geben Sie das Dienstkonto ein, dem Zugriff auf die Google Cloud APIs gewährt wurde.
    • Projekt-ID: Geben Sie die Projekt-ID des Google Cloud-Projekts ein, in dem Sie die Google Cloud APIs aktiviert haben. Informationen zur Projekt-ID finden Sie unter Projekte identifizieren.
    • Projektnummer: Geben Sie die Projektnummer des Google Cloud-Projekts ein, in dem Sie die Google Cloud APIs aktiviert haben. Informationen zur Projektnummer finden Sie unter Projekte identifizieren.
    • Authentifizierungstyp: Wählen Sie W (Workload Identity-Föderation) aus.
    1. Geben Sie für die Kommunikationszuordnung für den Standardeintrag „authentication“ die Kommunikationsvereinbarung an, die Sie für die WIF-basierte Authentifizierung eingerichtet haben.
    2. Fügen Sie der Kommunikationszuordnung einen weiteren Eintrag hinzu, wählen Sie als Dienst aiplatform:v1 aus und geben Sie die Kommunikationsvereinbarung an, die Sie gerade erstellt haben.
    3. Klicken Sie auf Erstellen. In einem Dialogfeld bestätigen Sie, dass Sie die Google Cloud Standardnutzungsbedingungen für das ABAP SDK for Google Cloud akzeptieren.
    4. Klicken Sie auf Verbindung prüfen, um die Authentifizierungskonfiguration zu validieren. Ein grünes Häkchen bei einem Eintrag bedeutet, dass die Konfiguration erfolgreich war.

    Informationen zum Beheben häufiger Fehler finden Sie in der Anleitung zur Fehlerbehebung.

  8. Prüfen Sie, ob Ihre Kommunikationskarte die folgenden drei Einträge enthält:

    Dienstname Kommunikationsszenario Kommunikationsvereinbarung
    authentication /GOOG/SDK_COM_WIF Kommunikationsvereinbarung, die Sie für den XSUAA-Dienst erstellt haben.
    aiplatform:v1 /GOOG/COM_SDK_SRV Kommunikationsvereinbarung, die Sie mit dem Kommunikationssystem festgelegt haben, das den regionalen Endpunkt für AI PLATFORM enthält.
    apiinvoker:v1 /GOOG/COM_SDK_SRV Kommunikationsvereinbarung, die Sie mit dem Kommunikationssystem für den öffentlichen Endpunkt für die Bereitstellung im Vertex AI Feature Store im vorherigen Schritt eingerichtet haben.

Featurewerte abrufen

Im Vertex AI Feature Store bezieht sich eine Entität auf ein Element, für das Sie Features erfassen möchten, z. B. einen Kunden, ein Produkt oder einen anderen Datenpunkt. Jede Entität ist mit einer Reihe von Features und ihren entsprechenden Werten verknüpft.

Wenn Sie Featurewerte durch Angabe einer einzelnen Entitäts-ID abrufen möchten, verwenden Sie die Methode 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( ).

Ersetzen Sie Folgendes:

  • FEATURE_VIEW_NAME: Der Name der Featureansicht, aus der Sie Featurewerte bereitstellen möchten.
  • ENTITY_ID: Der Wert der ID-Spalte im Feature-Eintrag, aus dem Sie die neuesten Featurewerte bereitstellen möchten. Alternativ können Sie ein Array von Teilen angeben, um die Entitäts-ID zu erstellen. Die ID-Spalten müssen in der gleichen Reihenfolge wie in der Feature-Ansicht definiert sein.

Nach ungefähren nächsten Nachbarn suchen

Bei Onlinespeichern, die für die optimierte Onlinebereitstellung erstellt wurden, können Sie eine Suche nach Vektorähnlichkeiten durchführen, um eine Liste von semantisch ähnlichen oder verwandten Entitäten, auch als ungefähre nächste Nachbarn bezeichnet, abzurufen. Sie können nach ungefähren nächsten Nachbarn anhand der Entitäts-ID oder einer Einbettung suchen.

Hinweis

Lokal oder in der Cloud

Wenn Sie einen Onlinespeicher für optimierte Onlinebereitstellung erstellen, generiert Vertex AI Feature Store einen öffentlichen Endpunkt-Domainnamen für den Onlinespeicher. Bevor Sie nach den nächsten Nachbarn aus einer Feature-Ansicht im Onlinespeicher suchen können, müssen Sie den Domainnamen des öffentlichen Endpunkts aus den Onlinespeicherdetails abrufen, ein RFC-Ziel für den Endpunkt erstellen und dann das RFC-Ziel in der Dienstzuordnungstabelle angeben.

  1. Rufen Sie den Domainnamen des öffentlichen Endpunkts für den Onlinespeicher ab:

    1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

      Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

    2. Klicken Sie auf ABAP SDK for Google Cloud > Dienstprogramme > Vertex AI SDK: RFC-Informationen für Feature Store und Vektorsuche abrufen.
    3. Wählen Sie Feature Store-Details abrufen aus.
    4. Geben Sie die folgenden Parameter ein:
    • Google Cloud-Schlüsselname: Der Clientschlüssel für die Authentifizierung bei Google Cloud.
    • Standort: Die Region, in der sich der Onlinespeicher befindet.
    • Feature Store-ID: Der Name des Onlinespeichers, der die Featureansicht enthält.
    1. Klicken Sie auf Ausführen, um die Details aufzurufen. Notieren Sie sich den Domainnamen des öffentlichen Endpunkts unter dem Label Host.
  2. Erstellen Sie ein RFC-Ziel für den Domainnamen des öffentlichen Endpunkts des Onlinespeichers:

    1. Führen Sie in der SAP-GUI den Transaktionscode SM59 aus.

    2. Erstellen Sie ein neues RFC-Ziel. Achten Sie darauf, dass für das von Ihnen erstellte RFC-Ziel der Verbindungstyp so festgelegt ist: G - HTTP connection to external server.

    3. Öffnen Sie den Tab Technische Einstellungen und geben Sie folgende Details ein:

      • Zielhost: Geben Sie den Domainnamen des öffentlichen Endpunkts für den Onlineshop an.

      • Dienstnummer: Geben Sie 443 ein. Diese Portnummer wird für die sichere Kommunikation verwendet.

    4. Gehen Sie zum Tab Anmeldung und Sicherheit und prüfen Sie, ob Feld SSL-Zertifikat auf die Option DFAULT SSL Client (Standard) festgelegt ist.

    5. Speichern Sie die Änderungen.

  3. Konfigurieren Sie die Dienstzuordnungstabelle für die Vertex AI API:

    1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

      Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

    2. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Dienstzuordnung konfigurieren.
    3. Klicken Sie auf Neue Einträge.
    4. Geben Sie das RFC-Ziel für die Vertex AI API an:
    Name Dienstname RFC-Ziel
    Clientschlüssel für die Authentifizierung. apiinvoker:v1 Name des RFC-Ziels.
    1. Speichern Sie den neuen Eintrag.

SAP BTP-Edition

Bevor Sie mit der Bereitstellung von Featurewerten aus einem Onlinespeicher beginnen können, müssen Sie den Domainnamen des öffentlichen Endpunkts aus den Details des Onlinespeichers abrufen. Anschließend müssen Sie ein Kommunikationssystem und eine Kommunikationsanordnung erstellen und sie mithilfe der SAP Fiori App Google SDK: Hauptkonfiguration in der Clientschlüsselkonfiguration konfigurieren.

  1. Wenn Sie den öffentlichen Endpunkt abrufen möchten, erstellen Sie die ZCL_GET_FEATURE_STORE_PUB_EP in einem lokalen Paket Ihrer Wahl. Sie müssen einen gültigen Clientschlüssel sowie die Speicher-ID und den Speicherort des Vertex AI Feature Store übergeben.

    CLASS zcl_get_feature_store_pub_ep DEFINITION
     PUBLIC FINAL
     CREATE PUBLIC.
     PUBLIC SECTION.
       INTERFACES if_oo_adt_classrun.
    ENDCLASS.
    CLASS zcl_get_feature_store_pub_ep IMPLEMENTATION.
     METHOD if_oo_adt_classrun~main.
       DATA lv_ckey        TYPE /goog/keyname.
       DATA lv_location_id TYPE string.
       DATA lv_fsid        TYPE string.
       DATA lv_project_id  TYPE string.
       DATA lv_msg         TYPE string.
    
       "TODO:Developer - Pass relevant values
       lv_ckey = 'CLIENT_KEY'.
       lv_fsid = 'FEATURE_ONLINE_STORE_NAME'.
       lv_location_id = 'LOCATION_ID'.
       TRY.
           DATA(lo_aip) = NEW  /goog/cl_aiplatform_v1( iv_key_name = lv_ckey ).
           lv_project_id = lo_aip->gv_project_id.
           " Call API method: aiplatform.projects.locations.featureOnlineStores.get
           lo_aip->get_feature_online_stores( EXPORTING iv_p_projects_id              = lv_project_id
                                                        iv_p_locations_id             = lv_location_id
                                                        iv_p_feature_online_stores_id = lv_fsid
                                              IMPORTING es_output                     = DATA(ls_output)
                                                        ev_ret_code                   = DATA(lv_ret_code)
                                                        ev_err_text                   = DATA(lv_err_text) ).
           IF lo_aip->is_success( lv_ret_code ) = abap_true.
             out->write( | Public endpoint is| ).
             out->write( ls_output-dedicated_serving_endpoint-public_endpoint_domain_name ).
           ENDIF.
         CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
           lv_msg = lo_cx_sdk->get_text( ).
           out->write( |Exception occurred, reason: { lv_msg }| ).
       ENDTRY.
     ENDMETHOD.
    ENDCLASS.
    
  2. Aktivieren und ausführen Sie die ZCL_GET_FEATURE_STORE_PUB_EP-Klasse.

    Die Ausgabe, also der öffentliche Endpunkt Ihres Onlineshops, hat folgendes Format:

    xxxxxxxxxx.LOCATION_ID-PROJECT_ID.featurestore.vertexai.goog
    

    Diese Ausgabe enthält die folgenden Werte:

    • LOCATION_ID: die Region, in der sich Ihr Onlineshop befindet.
    • PROJECT_ID: die Projekt-ID des Google Cloud-Projekts, in dem sich Ihr Onlineshop befindet.
  3. Rufen Sie das SAP Fiori-Start-Dashboard des BTP ABAP-Systems auf, in dem das ABAP SDK for Google Cloud installiert ist.

  4. Gehen Sie zu Alle Bereiche > Verwaltung > Kommunikationsverwaltung.

  5. Erstellen Sie ein Kommunikationssystem:

    1. Öffnen Sie die App Kommunikationssysteme.
    2. Klicken Sie auf Neu.
    3. Geben Sie im angezeigten Dialogfeld Neues Kommunikationssystem Werte für die folgenden Felder ein:
    • System-ID: Geben Sie eine System-ID ein.
    • Systemname: Geben Sie einen Systemnamen ein.
    1. Klicken Sie auf Erstellen.
    2. Geben Sie im Feld Hostname den öffentlichen Endpunkt ein, den Sie durch Ausführen der Klasse ZCL_GET_FEATURE_STORE_PUB_EP in einem vorherigen Schritt abgerufen haben.
    3. Geben Sie in das Feld Port die Zahl 443 ein.
    4. Rufen Sie den Tab Nutzer für ausgehende Kommunikation auf und klicken Sie auf Hinzufügen.
    5. Wählen Sie im Feld Authentifizierungsmethode die Option Keine aus.
    6. Klicken Sie auf Speichern.
  6. So erstellen Sie eine Kommunikationsvereinbarung:

    1. Öffnen Sie die App Kommunikationsabsprachen.
    2. Klicken Sie auf Neu.
    3. Geben Sie im angezeigten Dialogfeld Neue Kommunikationsvereinbarung Werte für die folgenden Felder ein:
    • Szenario: Wählen Sie Authentifizierung mit der Identitätsföderation von Arbeitslasten (/GOOG/COM_SDK_SRV) aus.
    • Name der Vereinbarung: Geben Sie einen Namen für die Kommunikationsvereinbarung ein.
    1. Klicken Sie auf Erstellen.
    2. Wählen Sie für den angezeigten Eintrag für die Kommunikationsvereinbarung im Feld Kommunikationssystem das Kommunikationssystem aus, das Sie im vorherigen Schritt erstellt haben.
    3. Klicken Sie auf Speichern.
  7. Erstellen Sie einen Clientschlüssel und eine Kommunikationsübersicht:

    1. Rufen Sie den Bereich auf, der die SAP Fiori-Apps für die SDK-Konfiguration enthält.
    2. Öffnen Sie die App Google SDK: Hauptkonfiguration.
    3. Klicken Sie auf Erstellen.
    4. Geben Sie im angezeigten Dialogfeld Erstellen einen Namen für den Clientschlüssel ein.
    5. Klicken Sie auf Weiter.
    6. Geben Sie die folgenden Informationen ein:
    • Dienstkonto: Geben Sie das Dienstkonto ein, dem Zugriff auf die Google Cloud APIs gewährt wurde.
    • Projekt-ID: Geben Sie die Projekt-ID des Google Cloud-Projekts ein, in dem Sie die Google Cloud APIs aktiviert haben. Informationen zur Projekt-ID finden Sie unter Projekte identifizieren.
    • Projektnummer: Geben Sie die Projektnummer des Google Cloud-Projekts ein, in dem Sie die Google Cloud APIs aktiviert haben. Informationen zur Projektnummer finden Sie unter Projekte identifizieren.
    • Authentifizierungstyp: Wählen Sie W (Workload Identity-Föderation) aus.
    1. Geben Sie für die Kommunikationszuordnung für den Standardeintrag „authentication“ die Kommunikationsvereinbarung an, die Sie für die WIF-basierte Authentifizierung eingerichtet haben.
    2. Fügen Sie der Kommunikationszuordnung einen weiteren Eintrag hinzu, wählen Sie als Dienst aiplatform:v1 aus und geben Sie die Kommunikationsvereinbarung an, die Sie gerade erstellt haben.
    3. Klicken Sie auf Erstellen. In einem Dialogfeld bestätigen Sie, dass Sie die Google Cloud Standardnutzungsbedingungen für das ABAP SDK for Google Cloud akzeptieren.
    4. Klicken Sie auf Verbindung prüfen, um die Authentifizierungskonfiguration zu validieren. Ein grünes Häkchen bei einem Eintrag bedeutet, dass die Konfiguration erfolgreich war.

    Informationen zum Beheben häufiger Fehler finden Sie in der Anleitung zur Fehlerbehebung.

  8. Prüfen Sie, ob Ihre Kommunikationskarte die folgenden drei Einträge enthält:

    Dienstname Kommunikationsszenario Kommunikationsvereinbarung
    authentication /GOOG/SDK_COM_WIF Kommunikationsvereinbarung, die Sie für den XSUAA-Dienst erstellt haben.
    aiplatform:v1 /GOOG/COM_SDK_SRV Kommunikationsvereinbarung, die Sie mit dem Kommunikationssystem festgelegt haben, das den regionalen Endpunkt für AI PLATFORM enthält.
    apiinvoker:v1 /GOOG/COM_SDK_SRV Kommunikationsvereinbarung, die Sie mit dem Kommunikationssystem für den öffentlichen Endpunkt für die Bereitstellung im Vertex AI Feature Store im vorherigen Schritt eingerichtet haben.

Übereinstimmungen mit den nächsten Nachbarn einer Einbettung abrufen

Sie können nach semantisch ähnlichen Entitäten suchen, indem Sie eine Einbettung angeben.

Um die nächsten Nachbarn einer Einbettung zu suchen, senden Sie eine Anfrage mithilfe der Methode 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( ).

Ersetzen Sie Folgendes:

  • EMBEDDING_DATA: Die Einbettung, für die Sie die Übereinstimmungen mit nächsten Nachbarn abrufen möchten. Ein Einbettungsvektor wird durch ein Array von Gleitkommawerten dargestellt.
  • FEATURE_VIEW_NAME: Der Name der Featureansicht, in der Sie nach Übereinstimmungen mit den ungefähren nächsten Nachbarn suchen möchten.
  • NEIGHBOR_COUNT: Anzahl der ungefähren nächsten Nachbarn, die Sie abrufen möchten.
  • RETURN_FULL_ENTITY: Optional. Geben Sie an, ob die Features für die Entitäten in die Antwort ein- oder ausgeschlossen werden sollen. Geben Sie ABAP_TRUE ein, um die Features zusammen mit den Entitäten in die Antwort aufzunehmen. Der Standardwert ist ABAP_FALSE.

Übereinstimmungen mit den nächsten Nachbarn einer Entität abrufen

Sie können nach semantisch verwandten Entitäten suchen, indem Sie eine Entitäts-ID angeben.

Um die nächsten Nachbarn einer Entitäts-ID zu suchen, senden Sie eine Anfrage mithilfe der Methode 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( ).

Ersetzen Sie Folgendes:

  • FEATURE_VIEW_NAME: Der Name der Featureansicht, in der Sie nach Übereinstimmungen mit den ungefähren nächsten Nachbarn suchen möchten.
  • ENTITY_ID:: Entitäts-ID der Entität, für die Sie Übereinstimmungen mit ungefähren nächsten Nachbarn abrufen möchten.
  • NEIGHBOR_COUNT: Anzahl der ungefähren nächsten Nachbarn, die Sie abrufen möchten.
  • RETURN_FULL_ENTITY: Optional. Geben Sie an, ob die Features für die Entitäten in die Antwort ein- oder ausgeschlossen werden sollen. Geben Sie ABAP_TRUE ein, um die Features zusammen mit den Entitäten in die Antwort aufzunehmen. Der Standardwert ist ABAP_FALSE.

Nächste Schritte