Vertex AI Vector Search per applicazioni SAP intelligenti

Questo documento descrive un'architettura di riferimento per la creazione di applicazioni SAP intelligenti con Vertex AI Vector Search utilizzando l'SDK Vertex AI per ABAP. Con la ricerca vettoriale, puoi creare applicazioni SAP che vanno oltre la corrispondenza delle parole chiave, utilizzando la comprensione semantica per aiutare gli utenti a trovare esattamente ciò di cui hanno bisogno dai dati aziendali. Puoi anche utilizzare la ricerca vettoriale con la Retrieval-Augmented Generation (RAG) per creare potenti applicazioni di AI nel tuo ambiente SAP. La RAG migliora la qualità delle risposte del modello di AI fornendo un contesto pertinente dai dati aziendali, garantendo che il modello di AI rimanga basato sui dati aziendali.

Il pubblico di destinazione di questo documento include sviluppatori ABAP, architetti di soluzioni SAP e architetti cloud. Questo documento presuppone che tu abbia familiarità con la terminologia di Vector Search.

Architettura

Il seguente diagramma mostra un'architettura di riferimento per l'utilizzo di Vector Search nel panorama delle applicazioni SAP:

Ricerca vettoriale per SAP

Questa architettura di riferimento include i seguenti componenti:

# Componente Dettagli
1 Punto di partenza della query in SAP

Avvia una ricerca utilizzando una delle seguenti opzioni:

  • Servizio OData: fornisci una query di ricerca tramite il servizio OData nell'applicazione frontend SAP.
  • Logica dell'applicazione SAP: fornisci una query di ricerca tramite la logica dell'applicazione SAP, ad esempio miglioramenti SAP, report o job in background.
2 SDK Vertex AI per ABAP Il modulo Vector Search Invoker dell'SDK esegue la ricerca vettoriale in base alla query di ricerca.
3 Vertex AI Vector Search

I dati aziendali vengono indicizzati come embedding vettoriali e organizzati in un indice di cui è stato eseguito il deployment.

Quando viene inserita una query di ricerca, viene eseguita una ricerca vettoriale su questi dati indicizzati per trovare le corrispondenze più strette.

Queste corrispondenze più strette vengono poi restituite alle applicazioni SAP, attivando funzionalità come la ricerca semantica e la RAG.

Prodotti utilizzati

Questa architettura di riferimento utilizza i seguenti prodotti Google Cloud :

  • SDK Vertex AI per ABAP: fornisce moduli e set di strumenti per sviluppare applicazioni incentrate sull'IA in modo nativo da ABAP.
  • Vertex AI Vector Search: consente ricerche efficienti su larga scala nei dati aziendali utilizzando gli incorporamenti vettoriali. Ciò significa che puoi eseguire ricerche per significato e contesto, non solo per parole chiave.

Casi d'uso

Il seguente elenco mostra i casi d'uso di Ricerca vettoriale nelle applicazioni SAP:

  • Creazione di motori di consigli: analizza gli input e il comportamento degli utenti per suggerire elementi pertinenti nelle attività SAP, come prodotti, codici aziendali e conti GL, andando oltre la semplice corrispondenza delle parole chiave.
  • Creazione di pipeline RAG: accedi e integra informazioni provenienti da varie fonti per arricchire il contesto di un modello di AI con informazioni SAP e non SAP pertinenti al fine di generare risposte accurate e pertinenti del modello.
  • Eseguire una ricerca di immagini semantica: attiva la ricerca di immagini simili dal punto di vista visivo, utile per lo shopping, la scoperta visiva e l'analisi di immagini mediche.
  • Eseguire ricerche di testo semantiche: comprendi il significato e il contesto del testo per migliorare l'accuratezza della ricerca nell'analisi di contenuti legali, accademici e feedback dei clienti.
  • Eseguire ricerche basate sul linguaggio naturale: fornisci risposte immediate alle domande degli utenti, migliorando le domande frequenti, le knowledge base e gli strumenti didattici.
  • Eseguire il rilevamento di anomalie: identifica pattern insoliti e potenziali minacce nel settore finanziario, nella sicurezza di rete e nella produzione.

Note sul layout

Questa sezione fornisce indicazioni per aiutarti a utilizzare questa architettura di riferimento per sviluppare architetture che ti consentano di soddisfare i tuoi requisiti specifici di sicurezza, privacy, conformità, costi e prestazioni.

Sicurezza, privacy e conformità

La sicurezza e la conformità sono responsabilità condivise. Per informazioni dettagliate, consulta la sezione Responsabilità condivisa di Vertex AI.

Per informazioni sull'impegno di Google Cloudper la privacy dei dati, consulta il Centro risorse per la privacy.

Ottimizzazione dei costi

Per ridurre i costi, ti consigliamo di scegliere dimensioni degli shard e embedding di dimensioni inferiori per gli indici, in modo da poter utilizzare una macchina di calcolo più piccola per il loro dispiegamento.

Vertex AI è un'offerta fatturabile di Google Cloud. Per informazioni sui prezzi, consulta la pagina Prezzi di Vertex AI e Prezzi di Vector Search. Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.

Ottimizzazione delle prestazioni

Per migliorare la latenza per la ricerca di set di dati di grandi dimensioni, ti consigliamo di scegliere dimensioni dei frammenti più elevate durante la creazione dell'indice e macchine di calcolo ad alte prestazioni durante il deployment dell'indice. Per scoprire di più sulle dimensioni degli shard per un indice, consulta Dimensioni dell'indice.

Per aumentare la pertinenza delle risposte alla ricerca, genera incorporamenti dei dati aziendali in dimensioni superiori. Le macchine Compute e le dimensioni di incorporamento più elevate sono molto costose. Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.

Prima di iniziare

Prima di utilizzare Vector Search nel tuo panorama di applicazioni SAP, assicurati che tu o i tuoi amministratori abbiate completato quanto segue:

Creare e gestire l'indice di vettori

Per utilizzare la ricerca vettoriale, devi indicizzare i dati aziendali e implementarli sotto forma di embedding vettoriali. Per farlo, segui questi passaggi:

  1. Genera embedding vettoriali utilizzando modelli di AI di embedding di testo o multimodali in Vertex AI o in qualsiasi altra piattaforma.
  2. Carica le rappresentazioni in un bucket Cloud Storage.
  3. Crea un indice di vettori con il bucket Cloud Storage contenente gli embedding.
  4. Crea un endpoint dell'indice ed esegui il deployment dell'indice di vettori nell'endpoint per eseguire una ricerca semantica sui dati aziendali indicizzati.

Puoi eseguire i passaggi precedenti dalla console Google Cloud o utilizzare il SDK Vertex AI per ABAP per attivarli dal tuo ambiente SAP.

Per ottenere i risultati di ricerca vettoriale più accurati per una soluzione di AI aziendale, devi anche mantenere aggiornato l'indice con i dati aziendali più recenti. Per ulteriori informazioni, vedi Aggiornare e ricreare un indice di vettori.

Richiama la ricerca vettoriale dalle applicazioni SAP

Dalle tue applicazioni SAP, puoi utilizzare l'SDK Vertex AI per ABAP per eseguire ricerche semantiche sui dati aziendali indicizzati nei seguenti modi:

Puoi utilizzare i risultati della ricerca vettoriale per migliorare il contesto del tuo modello di AI con il contesto aziendale utilizzando RAG. In questo modo, le risposte del modello rimangono basate sui dati aziendali. Puoi anche utilizzare questi risultati come input per i processi aziendali o per generare consigli.

Ricerca semantica tramite prompt di testo

Per eseguire ricerche sui dati multimodali e di testo indicizzati utilizzando i prompt di testo, puoi utilizzare il metodo FIND_NEIGHBORS_BY_STRING della classe /GOOG/CL_VECTOR_SEARCH dell'SDK Vertex AI per ABAP. Puoi concatenare la chiamata al metodo GET_NEAREST_NEIGHBORS con la chiamata al metodo FIND_NEIGHBORS_BY_STRING per ottenere la risposta alla ricerca.

Il seguente esempio di codice illustra come eseguire una ricerca semantica utilizzando i prompt di testo:

TRY.
    DATA(lo_vector_search) = NEW /goog/cl_vector_search( iv_search_key  = 'SEARCH_KEY' ).
    DATA(lt_vector_search_response) = lo_vector_search->find_neighbors_by_string(
                                                          iv_search_string         = 'SEARCH_STRING'
                                                          iv_embeddings_model_key  = 'MODEL_KEY'
                                                          iv_neighbor_count        = NEIGHBOR_COUNT
                                                     )->get_nearest_neighbors( ).
    cl_demo_output=>display( lt_vector_search_response ).
  CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
    cl_demo_output=>display( 'Search not successful.' && lo_cx_sdk->get_text( ) ).

ENDTRY.

Sostituisci quanto segue:

  • SEARCH_KEY: la chiave di ricerca, configurata nei parametri di ricerca di vektori.
  • SEARCH_STRING: il prompt di testo di input.
  • MODEL_KEY: la chiave del modello configurata nei parametri di generazione del modello. Questo modello viene utilizzato per convertire la query di ricerca in embedding.
  • NEIGHBOR_COUNT: il numero di vicini più vicini da recuperare dalla query di ricerca.

Per trovare esempi di ricerca basata sul testo su dati multimodali e di testo aziendali di esempio, consulta gli esempi di codice GitHub per la ricerca semantica sui set di dati di testo utilizzando prompt di testo e la ricerca semantica sulle immagini utilizzando prompt di testo.

Ricerca semantica mediante prompt multimodali

Questo tipo di ricerca è utile quando vuoi trovare le corrispondenze più vicine tra i tuoi dati multimodali, che possono essere immagini o video. Ad esempio, se hai un'applicazione web SAP (Fiori o UI5) e vuoi scattare una foto di un indumento, un prodotto o un componente di un'apparecchiatura e trovare le corrispondenze più strette rispetto all'immagine, puoi scegliere questa opzione di ricerca.

Per eseguire ricerche sui dati multimodali indicizzati utilizzando prompt multimodali, puoi utilizzare il metodo FIND_NEIGHBORS_BY_EMBEDDING della classe /GOOG/CL_VECTOR_SEARCH dell'SDK Vertex AI per ABAP. Puoi concatenare la chiamata al metodo GET_NEAREST_NEIGHBORS con la chiamata al metodo FIND_NEIGHBORS_BY_EMBEDDING per ottenere la risposta alla ricerca.

Il seguente esempio di codice illustra come eseguire una ricerca semantica utilizzando un'immagine:

DATA lv_search_string TYPE string,
DATA ls_image TYPE /goog/cl_embeddings_model=>ty_image.

TRY.
    DATA(lo_vector_search) = NEW /goog/cl_vector_search( iv_search_key = 'SEARCH_KEY' ).
    DATA(lo_embeddings_model) = NEW /goog/cl_embeddings_model( iv_model_key = 'MODEL_KEY' ).

    ls_image-bytes_base64_encoded = 'RAW_DATA'.

    DATA(lt_embeddings) = lo_embeddings_model->gen_image_embeddings( iv_image     = ls_image
                                                                     iv_dimension = 'DIMENSION'
                                            )->get_vector( ).
    DATA(lt_vector_search_response) = lo_vector_search->find_neighbors_by_embedding(
                                                          iv_neighbor_count = NEIGHBOR_COUNT
                                                          it_embeddings     = lt_embeddings
                                                     )->get_nearest_neighbors( ).
    cl_demo_output=>display( lt_vector_search_response ).
  CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
    cl_demo_output=>display( 'Search not successful.' && lo_cx_sdk->get_text( ) ).

ENDTRY.

Sostituisci quanto segue:

  • SEARCH_KEY: la chiave di ricerca, configurata nei parametri di ricerca di vektori.
  • MODEL_KEY: la chiave del modello configurata nei parametri di generazione del modello. Questo modello viene utilizzato per convertire la query di ricerca in embedding.
  • RAW_DATA: i dati non elaborati codificati in Base64 dell'immagine, del PDF o del video da includere in linea nella query.
  • DIMENSION: il numero di dimensioni per gli embedding di output.
  • NEIGHBOR_COUNT: il numero di vicini più vicini da recuperare dalla query di ricerca.

Per trovare esempi di ricerca basata su immagini su dati aziendali di esempio, consulta l'esempio di codice GitHub.

Ricerca semantica utilizzando un ID entità aziendale

Questo tipo di ricerca può essere utile per i casi d'uso SAP in cui vuoi cercare entità aziendali simili per un determinato ID entità, ad esempio trovare o consigliare prodotti simili se un determinato prodotto non è disponibile. Gli ID entità corrispondono ai punti dati archiviati nell'indice vettoriale.

Per cercare un indice di vettori utilizzando un ID entità aziendale, puoi utilizzare il metodo FIND_NEIGHBORS_BY_ENTITY_ID della classe /GOOG/CL_VECTOR_SEARCH dell'SDK Vertex AI per ABAP. Puoi concatenare la chiamata al metodo GET_NEAREST_NEIGHBORS con la chiamata al metodo FIND_NEIGHBORS_BY_ENTITY_ID per ottenere la risposta alla ricerca.

Il seguente esempio di codice illustra come eseguire una ricerca semantica utilizzando un ID entità aziendale:

Below is a code snippet that can be taken as reference for an entity id search.
TRY.
    DATA(lo_vector_search) = NEW /goog/cl_vector_search( iv_search_key  = 'SEARCH_KEY' ).
    DATA(lt_vector_search_response) = lo_vector_search->find_neighbors_by_entity_id(
                                                          iv_entity_id = 'ENTITY_ID'
                                                     )->get_nearest_neighbors( ).
    cl_demo_output=>display( lt_vector_search_response ).
  CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
    cl_demo_output=>display( 'Search not successful.' && lo_cx_sdk->get_text( ) ).

ENDTRY.

Sostituisci quanto segue:

Per trovare esempi di ricerca utilizzando l'ID entità su dati aziendali di esempio, consulta l'esempio di codice GitHub.

Utilizza la ricerca vettoriale con RAG per fornire contesto aggiuntivo al tuo modello di AI

La ricerca vettoriale restituisce i dati aziendali più pertinenti come risposta in base alla tua query di ricerca. Puoi fornire un contesto aggiuntivo al tuo modello di AI fornendogli la risposta di ricerca di Vector Search utilizzando RAG. L'approccio RAG migliora la qualità delle risposte del modello di AI fornendo un contesto pertinente ricavato dai dati aziendali recuperati, garantendo che le risposte del modello rimangano basate sui dati aziendali.

Per fornire contesto aggiuntivo al tuo modello di AI utilizzando la ricerca vettoriale con RAG, svolgi i seguenti passaggi:

  1. Prepara una query di ricerca per ottenere il contesto aziendale.
  2. Esegui Vector Search sull'indice contenente i dati aziendali.
  3. Concatena o aumenta la risposta alla ricerca per il prompt finale seguendo le best practice per i prompt efficaci.

Per ottenere le risposte più pertinenti dai modelli di AI per le tue architetture basate su RAG, mantieni aggiornato l'indice con gli embedding dei dati aziendali più recenti. Per ulteriori informazioni, vedi Aggiornare e ricreare un indice di vettori.

Per eseguire esperimenti su un caso d'uso aziendale con set di dati di esempio, prova la soluzione di esempio Ricerca di vettori basata su embedding di SAP su GitHub. Questa soluzione di esempio mostra un motore di consigli sui prodotti in ABAP, fornendo indicazioni sulle configurazioni richieste e sui dettagli di implementazione. Puoi utilizzare i codici di esempio e i riferimenti come base per altri sistemi di consigli, in cui puoi eseguire la ricerca semantica direttamente dalle tue applicazioni SAP.

Passaggi successivi

Collaboratori

Autore: Devesh Singh | SAP Application Engineer

Altro collaboratore: Vikash Kumar | Technical Writer