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 Vector Search, puoi creare applicazioni SAP che andare 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 IA nel tuo ambiente SAP. RAG migliora la qualità delle risposte del modello AI di fornendo un contesto pertinente dai dati aziendali, garantendo che il modello di AI rimane basato sui tuoi dati aziendali.

Il pubblico di destinazione di questo documento include sviluppatori ABAP, SAP Solution Architect e Cloud Architect. Questo documento presuppone che tu conosca 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:

Vector Search 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 nella tua applicazione frontend SAP.
  • Logica dell'applicazione SAP: fornisci una query di ricerca tramite l'applicazione SAP come miglioramenti SAP, report o job in background.
2 SDK Vertex AI per ABAP Il modulo Invoker di Vector Search 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 e su larga scala tra i dati aziendali utilizzando gli incorporamenti vettoriali. Ciò significa che puoi cercare per significato e contesto, non solo per parole chiave.

Casi d'uso

Il seguente elenco mostra i casi d'uso di Vector Search 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 IA 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.
  • Esecuzione della ricerca basata sul linguaggio naturale: fornisci risposte immediate all'utente. di formazione, migliorando le domande frequenti, le knowledge base e gli strumenti didattici.
  • Esecuzione del rilevamento di anomalie: identifica pattern e potenziali insoliti di minacce nei settori della finanza, della sicurezza di rete e del settore manifatturiero.

Note sul layout

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

Sicurezza, privacy e conformità

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

Per informazioni sull'impegno di Google Cloud per 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 utilizzare una macchina di calcolo più piccola per il loro dispiegamento.

Vertex AI è un'offerta fatturabile di Google Cloud. Per informazioni sui prezzi, vedi 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 degli shard più grandi 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:

Crea e gestisci l'indice vettoriale

Per utilizzare Vector Search, i dati aziendali devono essere indicizzati e il deployment sotto forma di incorporamenti vettoriali. Per farlo, segui questi passaggi:

  1. Genera incorporamenti vettoriali utilizzando modelli di AI per incorporamenti di testo o multimodali in Vertex AI o su 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 oppure utilizzare SDK Vertex AI per ABAP per attivarle dal tuo ambiente SAP.

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

Richiama Vector Search dalle applicazioni SAP

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

Puoi utilizzare i risultati di Vector Search per migliorare Contesto del 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 nei 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 vettoriale.
  • 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ù prossimi che possono essere recuperati 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 nel tuo dati multimodali, che possono essere immagini o video. Ad esempio, se disponi di Applicazione web SAP (Fiori o UI5) e vuoi scattare una foto di un capo d'abbigliamento, di un prodotto o di un componente e trova l'abbinamento più vicino 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 il metodo GET_NEAREST_NEIGHBORS con il metodo FIND_NEIGHBORS_BY_EMBEDDING per ottenere la risposta della 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 vettoriale.
  • MODEL_KEY: la chiave del modello configurata nei parametri di generazione del modello. Questo modello viene utilizzato per convertire la query di ricerca in incorporamenti.
  • RAW_DATA: dati non elaborati codificati in Base64 dell'immagine, del PDF o del video da includere 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 mediante un ID entità aziendale

Questo tipo di ricerca può essere utile per i casi d'uso di SAP in cui si desidera cercare entità aziendali simili per un particolare ID entità, ad esempio trovare o consigliare prodotti simili se un determinato prodotto non è disponibile. Gli ID entità corrispondono ai punti dati memorizzati 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 il metodo Chiamata GET_NEAREST_NEIGHBORS con il metodo FIND_NEIGHBORS_BY_ENTITY_ID per ottenere la risposta della 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 Vector Search con RAG per fornire ulteriore contesto al tuo modello di AI

La ricerca vettoriale torna i dati aziendali più pertinenti in risposta alla tua query di ricerca. Puoi fornire ulteriore contesto al tuo modello di AI fornendogli dati la risposta di ricerca di Vector Search utilizzando RAG. RAG migliora la qualità delle risposte del modello AI fornendo contesto dai dati aziendali recuperati, assicurando che le risposte del modello rimangano fondate ai dati aziendali.

Per fornire contesto aggiuntivo al modello di AI mediante l'uso di Vector Search with RAG, segui questi passaggi:

  1. Prepara una query di ricerca per ottenere il contesto aziendale.
  2. Eseguire la ricerca vettoriale 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, per mantenere aggiornato l'indice con gli incorporamenti dei tuoi dati aziendali più recenti. Per maggiori informazioni, vedi Aggiornare e ricreare un indice vettoriale.

Per fare esperimenti con 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 suggerimento sul prodotto in ABAP, fornendo indicazioni sulle configurazioni e sull'implementazione richieste i dettagli. 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 | Scrittore tecnico