Utiliser Vertex AI Feature Store

Ce document explique comment utiliser Vertex AI Feature Store pour effectuer des tâches telles que la synchronisation d'un magasin en ligne, la diffusion de caractéristiques à partir d'un magasin en ligne et la recherche dans un magasin en ligne à partir d'une entité ou d'embeddings, à l'aide du SDK Vertex AI pour ABAP.

Vertex AI Feature Store est un service de magasin de caractéristiques cloud natif géré. Il simplifie la gestion de vos caractéristiques de ML et les processus de livraison en ligne en vous permettant de gérer vos données de caractéristiques dans une table ou une vue BigQuery.

Dans un workflow typique de configuration de Vertex AI Feature Store, vous préparez d'abord votre source de données SAP dans BigQuery, enregistrez vos sources de données en créant des groupes de caractéristiques et des caractéristiques, puis configurez les ressources de magasin en ligne et de vue de caractéristiques. Vous pouvez ensuite diffuser les dernières valeurs de caractéristiques en ligne à partir d'une vue de caractéristiques ou effectuer une recherche de similarité sur le magasin de caractéristiques en ligne. Pour savoir comment configurer Vertex AI Feature Store, consultez Vertex AI Feature Store.

Une fois que votre Vertex AI Feature Store est prêt pour la diffusion en ligne, vous pouvez utiliser le SDK Vertex AI pour ABAP pour les opérations suivantes :

  • Pour fournir les valeurs de caractéristiques les plus récentes et les plus précises pour la diffusion en temps réel lors de la prédiction du modèle, synchronisez votre magasin en ligne avec la source de données de caractéristiques dans BigQuery.
  • Pour fournir des valeurs de caractéristiques à partir d'un magasin en ligne pour des applications en temps réel, diffusez des caractéristiques à partir du magasin en ligne.
  • Pour récupérer une liste d'entités sémantiquement similaires ou associées au magasin en ligne, effectuez une recherche à l'aide d'une entité ou d'un embedding.

Avant de commencer

Avant d'utiliser le SDK Vertex AI pour ABAP avec Vertex AI Feature Store, assurez-vous que vous ou vos administrateurs avez rempli les conditions préalables suivantes :

Instancier la classe ABAP pour Vertex AI Feature Store

Pour utiliser Vertex AI Feature Store dans votre application ABAP, vous devez instancier la classe /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' ).

Remplacez les éléments suivants :

  • CLIENT_KEY : clé client configurée pour l'authentification.
  • LOCATION_ID : région où se trouve le magasin en ligne, par exemple us-central1.
  • FEATURE_ONLINE_STORE_NAME : nom du magasin en ligne contenant la vue de caractéristiques.

Synchroniser le magasin en ligne

Pour vous assurer que votre magasin en ligne dispose des valeurs de caractéristiques les plus récentes et les plus précises pour la diffusion en temps réel lors de la prédiction du modèle, vous devez synchroniser les ressources de vue de caractéristiques de votre magasin en ligne avec la source de données de caractéristiques dans BigQuery.

Avant de commencer

Sur site ou dans n'importe quelle édition cloud

Comme vous accédez à Vertex AI Feature Store via un point de terminaison régional, vous devez créer une destination RFC pour établir une connexion à l'API Vertex AI. Vous spécifiez ensuite la destination RFC dans la table de mappage des services.

  1. Créez une destination RFC pour l'API Vertex AI avec le point de terminaison régional où se trouve votre Vertex AI Feature Store. Par exemple, si votre Vertex AI Feature Store se trouve dans us-east1, le point de terminaison de l'hôte cible est us-east1-aiplatform.googleapis.com. Pour en savoir plus sur les points de terminaison régionaux, consultez Point de terminaison du service. Pour créer une destination RFC, procédez comme suit :

    1. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction SM59.

    2. Créez une destination RFC. Pour les destinations RFC que vous avez créées, assurez-vous que le type de connexion est défini comme suit: G - HTTP connection to external server.

    3. Accédez à l'onglet Paramètres techniques, puis saisissez les informations suivantes :

      • Hébergeur cible : indiquez le point de terminaison régional où se trouve votre Vertex AI Feature Store.

      • Numéro de service : Saisissez 443. Ce numéro de port est utilisé pour les communications sécurisées.

    4. Accédez à l'onglet Connexion et sécurité et assurez-vous que le champ Certificat SSL est défini avec l'option Client SSL par défaut (standard).

    5. Enregistrez les modifications.

  2. Configurez la table de mappage des services pour l'API Vertex AI :

    1. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction /GOOG/SDK_IMG.

      Vous pouvez également exécuter le code de transaction SPRO, puis cliquer sur SAP Reference IMG (IMG de référence SAP).

    2. Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer le mappage des services.

    3. Cliquez sur Nouvelles entrées.

    4. Spécifiez la destination RFC pour l'API Vertex AI :

    Nom Nom du service Destination RFC
    Clé client pour l'authentification. aiplatform:v1 Nom de la destination RFC.
    1. Enregistrez la nouvelle entrée.

Édition SAP BTP

Comme vous accédez à Vertex AI Feature Store via un point de terminaison régional, vous devez créer un système de communication, un arrangement de communication et configurer la clé client en conséquence.

  1. Accéder à la plate-forme de lancement SAP Fiori du système BTP ABAP dans lequel le SDK ABAP pour Google Cloud est installé.

  2. Accédez à Tous les espaces > Administration > Gestion de la communication.

  3. Créez un système de communication:

    1. Ouvrez l'application Systèmes de communication.
    2. Cliquez sur Nouveau.
    3. Dans la boîte de dialogue Nouveau système de communication qui s'affiche, saisissez une valeur pour les champs suivants:
    • ID système : saisissez un ID système.
    • Nom du système : saisissez un nom du système.
    1. Cliquez sur Créer.
    2. Dans le champ Host name (Nom d'hôte), saisissez l'URL du point de terminaison régional. Par exemple, si votre Vertex AI Feature Store se trouve dans us-east1, le point de terminaison de l'hôte cible est us-east1-aiplatform.googleapis.com. Pour en savoir plus sur les points de terminaison régionaux, consultez la section Point de terminaison du service.
    3. Dans le champ Port, saisissez 443.
    4. Dans l'onglet Utilisateurs pour la communication sortante, cliquez sur Ajouter.
    5. Dans le champ Méthode d'authentification, sélectionnez Aucune.
    6. Cliquez sur Enregistrer.
  4. Créez une configuration de communication :

    1. Ouvrez l'application Configuration de communication.
    2. Cliquez sur Nouveau.
    3. Dans la boîte de dialogue Nouvelle configuration de communication qui s'affiche, saisissez une valeur pour les champs suivants:
    • Scénario: sélectionnez Authentification à l'aide de la fédération d'identité de charge de travail (/GOOG/COM_SDK_SRV).
    • Nom de la configuration : saisissez un nom pour la configuration de communication.
    1. Cliquez sur Créer.
    2. Pour l'entrée de la configuration de la communication qui s'affiche, dans le champ Système de communication, sélectionnez le système de communication que vous avez créé à l'étape précédente.
    3. Cliquez sur Enregistrer.
  5. Créez une clé client et un plan de communication :

    1. Accédez à l'espace contenant les applications SAP Fiori pour la configuration du SDK.
    2. Ouvrez l'application SDK Google : configuration principale.
    3. Cliquez sur Créer.
    4. Dans la boîte de dialogue Créer qui s'affiche, saisissez un nom de clé client.
    5. Cliquez sur Continuer.
    6. Saisissez une valeur pour les champs suivants:
    • Compte de service: saisissez le compte de service autorisé à accéder aux API Google Cloud .
    • ID du projet: saisissez l'ID du projet Google Cloud dans lequel vous avez activé les API Google Cloud . Pour en savoir plus sur l'ID de projet, consultez la section Identifier des projets.
    • Numéro du projet: saisissez le numéro du projet Google Cloud dans lequel vous avez activé les API Google Cloud . Pour en savoir plus sur le numéro de projet, consultez la section Identifier des projets.
    • Type d'authentification: sélectionnez W (Fédération d'identité de charge de travail).
    • Pour le plan de communication de l'entrée par défaut du nom de service "authentication", indiquez la configuration de communication que vous avez définie pour l'authentification basée sur WIF.
    • Ajoutez une autre entrée au plan de communication, choisissez le service aiplatform:v1 et indiquez la configuration de communication que vous venez de créer.
    • Cliquez sur Créer. Une boîte de dialogue s'affiche confirmant que vous acceptez d'utiliser le SDK ABAP pour Google Cloud conformément aux conditions d'utilisation standards. Google Cloud
    • Pour valider la configuration de l'authentification, cliquez sur Vérifier la connexion. Une coche verte à côté d'une entrée indique que la configuration a réussi.

    En cas d'erreur, consultez le guide de dépannage pour savoir comment résoudre les erreurs courantes.

Synchroniser Vertex AI Feature Store

Pour démarrer une synchronisation des données dans une vue des caractéristiques, utilisez la méthode 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( ).

Remplacez FEATURE_VIEW_NAME par le nom de la vue d'élément géographique pour laquelle vous souhaitez démarrer la synchronisation des données.

Cette méthode renvoie un ID de synchronisation de vue de fonctionnalité, qui permet de vérifier l'état de la synchronisation.

Obtenir l'état de la synchronisation de Vertex AI Feature Store

Pour obtenir l'état d'une synchronisation de Vertex AI Feature Store, vous pouvez utiliser la méthode 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( ).

Remplacez les éléments suivants :

  • FEATURE_VIEW_NAME : nom de la vue de caractéristiques pour laquelle vous souhaitez vérifier l'état de la synchronisation.
  • FEATURE_VIEW_SYNC_ID : ID de synchronisation de la vue des caractéristiques reçu de Sync Vertex AI Feature Store.

    Cette méthode renvoie l'un des états suivants, avec le message d'erreur le cas échéant : C: Complete, R: Running ou F: Failed.

Synchroniser Vertex AI Feature Store à l'aide d'un job SAP en arrière-plan

Sur site ou dans n'importe quelle édition cloud

Pour démarrer une synchronisation des données dans une vue des caractéristiques à l'aide d'un job SAP en arrière-plan, vous pouvez utiliser la méthode SYNC_FEATURE_DATA_TO_FS_BGJOB.

Cette méthode crée un job en arrière-plan dans votre système SAP, qui démarre la synchronisation du magasin de caractéristiques et vérifie son état toutes les 30 secondes. Si l'état de la synchronisation du magasin de cractéristiques est "Terminé" ou "Échec", le job en arrière-plan se termine avec un message correspondant. Si la synchronisation du magasin de caractéristiques est en cours d'exécution, le job en arrière-plan s'exécute jusqu'à la valeur TIMEOUT spécifiée. Une fois le délai avant expiration dépassé, le job en arrière-plan se termine, mais la synchronisation du magasin de caractéristiques continue de s'exécuter.

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

Remplacez les éléments suivants :

  • FEATURE_VIEW_NAME : nom de la vue de caractéristiques pour laquelle vous souhaitez démarrer manuellement la synchronisation des données.
  • TIMEOUT : délai en secondes après lequel le job en arrière-plan expire. Cela n'a aucune incidence sur la synchronisation de Vertex AI Feature Store.

Cette méthode renvoie un nom de job en arrière-plan et l'ID correspondant. Ce job peut être surveillé depuis SAP pour vérifier l'état de la synchronisation du magasin de caractéristiques.

Édition SAP BTP

Vous pouvez ignorer cette section, car elle ne s'applique pas à l'édition SAP BTP du SDK ABAP pour Google Cloud.

Diffuser des caractéristiques à partir d'un magasin en ligne

Vous pouvez diffuser des valeurs de caractéristiques à partir d'un magasin en ligne pour des applications en temps réel, telles que des recommandations de produits. Selon le type de diffusion en ligne que vous avez configuré pour votre magasin en ligne, vous pouvez diffuser des valeurs de caractéristiques de l'une des manières suivantes :

  • Extraire les valeurs de caractéristiques à l'aide de la diffusion en ligne Bigtable
  • Extraire les valeurs de caractéristiques à l'aide de la diffusion en ligne optimisée avec un point de terminaison public
  • Extraire les valeurs de caractéristiques à l'aide de la diffusion en ligne optimisée avec un point de terminaison Private Service Connect

Pour en savoir plus sur la diffusion de valeurs de caractéristiques, consultez Diffuser des caractéristiques à partir d'un magasin en ligne.

Avant de commencer

Sur site ou dans n'importe quelle édition cloud

Avant de pouvoir diffuser des valeurs de caractéristiques à partir d'un magasin en ligne, vous devez récupérer le nom de domaine du point de terminaison public à partir des détails du magasin en ligne, créer une destination RFC pour le point de terminaison, puis spécifier la destination RFC dans la table de mappage des services.

  1. Récupérez le nom de domaine du point de terminaison public pour le magasin en ligne :

    1. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction /GOOG/SDK_IMG.

      Vous pouvez également exécuter le code de transaction SPRO, puis cliquer sur SAP Reference IMG (IMG de référence SAP).

    2. Cliquez sur SDK ABAP pour Google Cloud > Utilitaires > SDK Vertex AI : obtenir des informations RFC pour Feature Store et Vector Search.
    3. Sélectionnez Obtenir des informations sur le magasin de caractéristiques.
    4. Renseignez les paramètres suivants :
    • Nom de la clé Google Cloud: clé client pour l'authentification sur Google Cloud.
    •  : région où se trouve le magasin en ligne, par exemple .
    • ID du magasin de caractéristiques : nom du magasin en ligne contenant la vue de caractéristiques.
    1. Cliquez sur Exécuter pour afficher les détails. Notez le nom de domaine du point de terminaison public en regard du libellé Host (Hôte).
  2. Créez une destination RFC pour le point de terminaison régional, le nom de domaine du point de terminaison public ou le point de terminaison Private Service Connect du magasin en ligne. Pour créer une destination RFC, procédez comme suit :

    1. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction SM59.
    2. Créez une destination RFC. Pour les destinations RFC que vous avez créées, assurez-vous que le type de connexion est défini comme suit : G - HTTP connection to external server.
    3. Accédez à l'onglet Paramètres techniques, puis saisissez les informations suivantes :
    • Hôte cible: indiquez le nom de domaine du point de terminaison public où se trouve votre Vertex AI Feature Store.

    • Numéro de service : Saisissez 443. Ce numéro de port est utilisé pour les communications sécurisées.

    1. Accédez à l'onglet Connexion et sécurité et assurez-vous que le champ Certificat SSL est défini avec l'option Client SSL par défaut (standard).

    2. Enregistrez les modifications.

  3. Configurez la table de mappage des services pour l'API Vertex AI :

  4. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction /GOOG/SDK_IMG.

    Vous pouvez également exécuter le code de transaction SPRO, puis cliquer sur SAP Reference IMG (IMG de référence SAP).

  5. Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer le mappage des services.

  6. Cliquez sur Nouvelles entrées.

  7. Spécifiez la destination RFC pour l'API Vertex AI :

    Nom Nom du service Destination RFC
    Clé client pour l'authentification. apiinvoker:v1 Nom de la destination RFC.
  8. Enregistrez la nouvelle entrée.

Édition SAP BTP

Avant de pouvoir diffuser des valeurs de caractéristiques à partir d'un magasin en ligne, vous devez récupérer le nom de domaine du point de terminaison public à partir des détails du magasin en ligne. Vous devez ensuite créer un système et une configuration de communication, puis les configurer dans la configuration de la clé client à l'aide de l'application SAP Fiori SDK Google: configuration principale.

  1. Pour récupérer le point de terminaison public, créez le ZCL_GET_FEATURE_STORE_PUB_EP dans un package local de votre choix. Vous devez transmettre une clé client valide, ainsi que l'ID et l'emplacement du Feature Store Vertex AI.

    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. Activez et exécutez la classe ZCL_GET_FEATURE_STORE_PUB_EP.

    La sortie, qui correspond au point de terminaison public de votre boutique en ligne, utilise le format suivant:

    xxxxxxxxxx.LOCATION_ID-PROJECT_ID.featurestore.vertexai.goog
    

    Ce résultat inclut les valeurs suivantes :

    • LOCATION_ID: région où se trouve votre boutique en ligne.
    • PROJECT_ID: ID du projet Google Cloud dans lequel se trouve votre boutique en ligne.
  3. Accéder à la plate-forme de lancement SAP Fiori du système BTP ABAP dans lequel le SDK ABAP pour Google Cloud est installé.

  4. Accédez à Tous les espaces > Administration > Gestion de la communication.

  5. Créez un système de communication:

    1. Ouvrez l'application Systèmes de communication.
    2. Cliquez sur Nouveau.
    3. Dans la boîte de dialogue Nouveau système de communication qui s'affiche, saisissez une valeur pour les champs suivants:
    • ID système : saisissez un ID système.
    • Nom du système : saisissez un nom du système.
    1. Cliquez sur Créer.
    2. Dans le champ Host name (Nom d'hôte), saisissez le point de terminaison public que vous avez récupéré en exécutant la classe ZCL_GET_FEATURE_STORE_PUB_EP à l'étape précédente.
    3. Dans le champ Port, saisissez 443.
    4. Accédez à l'onglet Utilisateurs pour la communication sortante, puis cliquez sur Ajouter.
    5. Dans le champ Méthode d'authentification, sélectionnez Aucune.
    6. Cliquez sur Enregistrer.
  6. Créez une configuration de communication :

    1. Ouvrez l'application Configuration de communication.
    2. Cliquez sur Nouveau.
    3. Dans la boîte de dialogue Nouvelle configuration de communication qui s'affiche, saisissez une valeur pour les champs suivants:
    • Scénario: sélectionnez Authentification à l'aide de la fédération d'identité de charge de travail (/GOOG/COM_SDK_SRV).
    • Nom de la configuration : saisissez un nom pour la configuration de communication.
    1. Cliquez sur Créer.
    2. Pour l'entrée de la configuration de la communication qui s'affiche, dans le champ Système de communication, sélectionnez le système de communication que vous avez créé à l'étape précédente.
    3. Cliquez sur Enregistrer.
  7. Créez une clé client et un plan de communication:

    1. Accédez à l'espace contenant les applications SAP Fiori pour la configuration du SDK.
    2. Ouvrez l'application SDK Google : configuration principale.
    3. Cliquez sur Créer.
    4. Dans la boîte de dialogue Créer qui s'affiche, saisissez un nom de clé client.
    5. Cliquez sur Continuer.
    6. Saisissez les informations suivantes :
    • Compte de service: saisissez le compte de service autorisé à accéder aux API Google Cloud .
    • ID du projet: saisissez l'ID du projet Google Cloud dans lequel vous avez activé les API Google Cloud . Pour en savoir plus sur l'ID de projet, consultez la section Identifier des projets.
    • Numéro du projet: saisissez le numéro du projet Google Cloud dans lequel vous avez activé les API Google Cloud . Pour en savoir plus sur le numéro de projet, consultez la section Identifier des projets.
    • Type d'authentification: sélectionnez W (Fédération d'identité de charge de travail).
    1. Pour le plan de communication de l'entrée par défaut du nom de service "authentication", indiquez la configuration de communication que vous avez définie pour l'authentification basée sur WIF.
    2. Ajoutez une autre entrée au plan de communication, choisissez le service aiplatform:v1 et indiquez la configuration de communication que vous venez de créer.
    3. Cliquez sur Créer. Une boîte de dialogue s'affiche confirmant que vous acceptez d'utiliser le SDK ABAP pour Google Cloud conformément aux conditions d'utilisation standards. Google Cloud
    4. Pour valider la configuration de l'authentification, cliquez sur Vérifier la connexion. Une coche verte à côté d'une entrée indique que la configuration a réussi.

    En cas d'erreur, consultez le guide de dépannage pour savoir comment résoudre les erreurs courantes.

  8. Vérifiez que votre carte de communication contient les trois entrées suivantes:

    Nom du service Scénario de communication Organisation de la communication
    authentication /GOOG/SDK_COM_WIF Configuration de communication que vous avez créée pour le service XSUAA.
    aiplatform:v1 /GOOG/COM_SDK_SRV Configuration de la communication que vous avez définie à l'aide du système de communication contenant le point de terminaison régional pour AI PLATFORM.
    apiinvoker:v1 /GOOG/COM_SDK_SRV Configuration de la communication que vous avez définie à l'aide du système de communication pour le point de terminaison public de la diffusion Vertex AI Feature Store à l'étape précédente.

Récupérer les valeurs de caractéristiques

Dans Vertex AI Feature Store, une entité désigne un élément pour lequel vous souhaitez suivre des caractéristiques, comme un client, un produit ou tout autre point de données. Chaque entité est associée à un ensemble de caractéristiques et à leurs valeurs correspondantes.

Pour extraire les valeurs de caractéristiques en spécifiant un seul ID d'entité, utilisez la méthode 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( ).

Remplacez les éléments suivants :

  • FEATURE_VIEW_NAME : nom de la vue de caractéristiques à partir de laquelle vous souhaitez diffuser les valeurs de caractéristiques.
  • ENTITY_ID : valeur de la colonne "ID" dans l'enregistrement de caractéristiques à partir duquel vous souhaitez diffuser les dernières valeurs de caractéristiques. Vous pouvez également fournir un tableau de composants pour construire l'ID d'entité. Assurez-vous que les colonnes d'ID sont dans le même ordre que celui défini dans la vue d'élément.

Rechercher les voisins approximatifs les plus proches

Pour les magasins en ligne créés pour la diffusion en ligne optimisée, vous pouvez effectuer une recherche de similarité de vecteurs pour récupérer une liste d'entités sémantiquement similaires ou associées, également appelées voisins approximatifs les plus proches. Vous pouvez rechercher des voisins approximatifs les plus proches en fonction d'un ID d'entité ou d'une intégration.

Avant de commencer

Sur site ou dans n'importe quel cloud

Lorsque vous créez un magasin en ligne pour une diffusion en ligne optimisée, Vertex AI Feature Store génère un nom de domaine de point de terminaison public pour le magasin en ligne. Avant de pouvoir rechercher les voisins les plus proches à partir d'une vue des caractéristiques du magasin en ligne, vous devez récupérer le nom de domaine du point de terminaison public à partir des détails du magasin en ligne, créer une destination RFC pour le point de terminaison, puis spécifier la destination RFC dans la table de mappage des services.

  1. Récupérez le nom de domaine du point de terminaison public pour le magasin en ligne :

    1. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction /GOOG/SDK_IMG.

      Vous pouvez également exécuter le code de transaction SPRO, puis cliquer sur SAP Reference IMG (IMG de référence SAP).

    2. Cliquez sur SDK ABAP pour Google Cloud > Utilitaires > SDK Vertex AI : obtenir des informations RFC pour Feature Store et Vector Search.
    3. Sélectionnez Obtenir des informations sur le magasin de caractéristiques.
    4. Renseignez les paramètres suivants :
    • Nom de la clé Google Cloud: clé client pour l'authentification sur Google Cloud.
    •  : région où se trouve le magasin en ligne, par exemple .
    • ID du magasin de caractéristiques : nom du magasin en ligne contenant la vue de caractéristiques.
    1. Cliquez sur Exécuter pour afficher les détails. Notez le nom de domaine du point de terminaison public en regard du libellé Host (Hôte).
  2. Créez une destination RFC pour le nom de domaine du point de terminaison public du magasin en ligne :

    1. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction SM59.

    2. Créez une destination RFC. Pour les destinations RFC que vous avez créées, assurez-vous que le type de connexion est défini comme suit: G - HTTP connection to external server.

    3. Accédez à l'onglet Paramètres techniques, puis saisissez les informations suivantes :

      • Hôte cible : indiquez le nom de domaine du point de terminaison public pour le magasin en ligne.

      • Numéro de service : Saisissez 443. Ce numéro de port est utilisé pour les communications sécurisées.

    4. Accédez à l'onglet Connexion et sécurité et assurez-vous que le champ Certificat SSL est défini avec l'option Client SSL par défaut (standard).

    5. Enregistrez les modifications.

  3. Configurez la table de mappage des services pour l'API Vertex AI :

    1. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction /GOOG/SDK_IMG.

      Vous pouvez également exécuter le code de transaction SPRO, puis cliquer sur SAP Reference IMG (IMG de référence SAP).

    2. Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer le mappage des services.
    3. Cliquez sur Nouvelles entrées.
    4. Spécifiez la destination RFC pour l'API Vertex AI :
    Nom Nom du service Destination RFC
    Clé client pour l'authentification. apiinvoker:v1 Nom de la destination RFC.
    1. Enregistrez la nouvelle entrée.

Édition SAP BTP

Avant de pouvoir diffuser des valeurs de caractéristiques à partir d'un magasin en ligne, vous devez récupérer le nom de domaine du point de terminaison public à partir des détails du magasin en ligne. Vous devez ensuite créer un système et une configuration de communication, puis les configurer dans la configuration de la clé client à l'aide de l'application SAP Fiori SDK Google: configuration principale.

  1. Pour récupérer le point de terminaison public, créez le ZCL_GET_FEATURE_STORE_PUB_EP dans un package local de votre choix. Vous devez transmettre une clé client valide, ainsi que l'ID et l'emplacement du Feature Store Vertex AI.

    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. Activez et exécutez la classe ZCL_GET_FEATURE_STORE_PUB_EP.

    La sortie, qui correspond au point de terminaison public de votre boutique en ligne, utilise le format suivant:

    xxxxxxxxxx.LOCATION_ID-PROJECT_ID.featurestore.vertexai.goog
    

    Ce résultat inclut les valeurs suivantes :

    • LOCATION_ID: région où se trouve votre boutique en ligne.
    • PROJECT_ID: ID du projet Google Cloud dans lequel se trouve votre boutique en ligne.
  3. Accéder à la plate-forme de lancement SAP Fiori du système BTP ABAP dans lequel le SDK ABAP pour Google Cloud est installé.

  4. Accédez à Tous les espaces > Administration > Gestion de la communication.

  5. Créez un système de communication:

    1. Ouvrez l'application Systèmes de communication.
    2. Cliquez sur Nouveau.
    3. Dans la boîte de dialogue Nouveau système de communication qui s'affiche, saisissez une valeur pour les champs suivants:
    • ID système : saisissez un ID système.
    • Nom du système : saisissez un nom du système.
    1. Cliquez sur Créer.
    2. Dans le champ Host name (Nom d'hôte), saisissez le point de terminaison public que vous avez récupéré en exécutant la classe ZCL_GET_FEATURE_STORE_PUB_EP à l'étape précédente.
    3. Dans le champ Port, saisissez 443.
    4. Accédez à l'onglet Utilisateurs pour la communication sortante, puis cliquez sur Ajouter.
    5. Dans le champ Méthode d'authentification, sélectionnez Aucune.
    6. Cliquez sur Enregistrer.
  6. Créez une configuration de communication :

    1. Ouvrez l'application Configuration de communication.
    2. Cliquez sur Nouveau.
    3. Dans la boîte de dialogue Nouvelle configuration de communication qui s'affiche, saisissez une valeur pour les champs suivants:
    • Scénario: sélectionnez Authentification à l'aide de la fédération d'identité de charge de travail (/GOOG/COM_SDK_SRV).
    • Nom de la configuration : saisissez un nom pour la configuration de communication.
    1. Cliquez sur Créer.
    2. Pour l'entrée de la configuration de la communication qui s'affiche, dans le champ Système de communication, sélectionnez le système de communication que vous avez créé à l'étape précédente.
    3. Cliquez sur Enregistrer.
  7. Créez une clé client et un plan de communication:

    1. Accédez à l'espace contenant les applications SAP Fiori pour la configuration du SDK.
    2. Ouvrez l'application SDK Google : configuration principale.
    3. Cliquez sur Créer.
    4. Dans la boîte de dialogue Créer qui s'affiche, saisissez un nom de clé client.
    5. Cliquez sur Continuer.
    6. Saisissez les informations suivantes :
    • Compte de service: saisissez le compte de service autorisé à accéder aux API Google Cloud .
    • ID du projet: saisissez l'ID du projet Google Cloud dans lequel vous avez activé les API Google Cloud . Pour en savoir plus sur l'ID de projet, consultez la section Identifier des projets.
    • Numéro du projet: saisissez le numéro du projet Google Cloud dans lequel vous avez activé les API Google Cloud . Pour en savoir plus sur le numéro de projet, consultez la section Identifier des projets.
    • Type d'authentification: sélectionnez W (Fédération d'identité de charge de travail).
    1. Pour le plan de communication de l'entrée par défaut du nom de service "authentication", indiquez la configuration de communication que vous avez définie pour l'authentification basée sur WIF.
    2. Ajoutez une autre entrée au plan de communication, choisissez le service aiplatform:v1 et indiquez la configuration de communication que vous venez de créer.
    3. Cliquez sur Créer. Une boîte de dialogue s'affiche confirmant que vous acceptez d'utiliser le SDK ABAP pour Google Cloud conformément aux conditions d'utilisation standards. Google Cloud
    4. Pour valider la configuration de l'authentification, cliquez sur Vérifier la connexion. Une coche verte à côté d'une entrée indique que la configuration a réussi.

    En cas d'erreur, consultez le guide de dépannage pour savoir comment résoudre les erreurs courantes.

  8. Vérifiez que votre carte de communication contient les trois entrées suivantes:

    Nom du service Scénario de communication Organisation de la communication
    authentication /GOOG/SDK_COM_WIF Configuration de communication que vous avez créée pour le service XSUAA.
    aiplatform:v1 /GOOG/COM_SDK_SRV Configuration de la communication que vous avez définie à l'aide du système de communication contenant le point de terminaison régional pour AI PLATFORM.
    apiinvoker:v1 /GOOG/COM_SDK_SRV Configuration de la communication que vous avez définie à l'aide du système de communication pour le point de terminaison public de la diffusion Vertex AI Feature Store à l'étape précédente.

Récupérer les correspondances des voisins les plus proches d'un embedding.

Vous pouvez rechercher des entités sémantiquement liées en spécifiant un embedding.

Pour rechercher les voisins les plus proches d'un embedding, envoyez une requête à l'aide de la méthode 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( ).

Remplacez les éléments suivants :

  • EMBEDDING_DATA : embedding pour lequel vous souhaitez récupérer les correspondances voisines approximatives les plus proches. Un embedding est représenté par un tableau de valeurs flottantes.
  • FEATURE_VIEW_NAME : nom de la vue de la caractéristique dans laquelle vous souhaitez rechercher les correspondances voisines approximatives les plus proches.
  • NEIGHBOR_COUNT : nombre de voisins approximatifs les plus proches que vous souhaitez récupérer.
  • RETURN_FULL_ENTITY : facultatif. Indiquez si vous souhaitez inclure ou exclure les caractéristiques des entités de la réponse. Pour inclure les caractéristiques avec les entités dans la réponse, saisissez ABAP_TRUE. La valeur par défaut est ABAP_FALSE.

Récupérer les correspondances des voisins les plus proches d'une entité

Vous pouvez rechercher des entités sémantiquement liées en spécifiant un ID d'entité.

Pour rechercher les ID des entités voisines les plus proches, envoyez une requête à l'aide de la méthode 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( ).

Remplacez les éléments suivants :

  • FEATURE_VIEW_NAME : nom de la vue de la caractéristique dans laquelle vous souhaitez rechercher les correspondances voisines approximatives les plus proches.
  • ENTITY_ID: : ID de l'entité pour laquelle vous souhaitez récupérer les correspondances des voisins approximatifs les plus proches.
  • NEIGHBOR_COUNT : nombre de voisins approximatifs les plus proches que vous souhaitez récupérer.
  • RETURN_FULL_ENTITY : facultatif. Indiquez si vous souhaitez inclure ou exclure les caractéristiques des entités de la réponse. Pour inclure les caractéristiques avec les entités dans la réponse, saisissez ABAP_TRUE. La valeur par défaut est ABAP_FALSE.

Étape suivante