Vertex AI Vektorsuche für intelligente SAP-Anwendungen

In diesem Dokument wird eine Referenzarchitektur für die Entwicklung intelligenter SAP-Anwendungen mit der Vertex AI-Vektorsuche beschrieben. Dazu wird das Vertex AI SDK für ABAP verwendet. Mit Vector Search können Sie SAP-Anwendungen erstellen, die über das Keyword-Matching hinausgehen. Mithilfe des semantischen Verständnisses können Nutzer genau das finden, was sie in ihren Unternehmensdaten benötigen. Sie können die Vektorsuche auch mit Retrieval Augmented Generation (RAG) kombinieren, um leistungsstarke KI-Anwendungen in Ihrer SAP-Umgebung zu erstellen. Mit RAG wird die Qualität der Antworten Ihres KI-Modells verbessert, indem relevanter Kontext aus Ihren Unternehmensdaten bereitgestellt wird. So bleibt das KI-Modell auf Ihren Unternehmensdaten basiert.

Dieses Dokument richtet sich an ABAP-Entwickler, SAP-Lösungsarchitekten und Cloud-Architekten. In diesem Dokument wird davon ausgegangen, dass Sie mit der Terminologie der Vektorsuche vertraut sind.

Architektur

Das folgende Diagramm zeigt eine Referenzarchitektur für die Verwendung der Vektorsuche in der SAP-Anwendungsumgebung:

Vektorsuche für SAP

Diese Referenzarchitektur umfasst die folgenden Komponenten:

# Komponente Details
1 Ausgangspunkt der Abfrage in SAP

Sie haben folgende Möglichkeiten, eine Suche zu starten:

  • OData-Dienst: Sie geben in Ihrer SAP-Frontend-Anwendung eine Suchanfrage über den OData-Dienst ein.
  • SAP-Anwendungslogik: Sie können eine Suchanfrage über die SAP-Anwendungslogik stellen, z. B. über SAP-Erweiterungen, Berichte oder Hintergrundjobs.
2 Vertex AI SDK für ABAP Das Vector Search Invoker-Modul des SDK führt eine Vektorsuche basierend auf Ihrer Suchanfrage durch.
3 Vertex AI Vektorsuche

Unternehmensdaten werden als Vektoreinbettungen indexiert und in einem bereitgestellten Index organisiert.

Wenn eine Suchanfrage eingegeben wird, wird eine Vektorsuche auf diesen indexierten Daten durchgeführt, um die besten Übereinstimmungen zu finden.

Diese am besten passenden Ergebnisse werden dann an die SAP-Anwendungen zurückgegeben, wodurch Funktionen wie die semantische Suche und die RAG-Bewertung aktiviert werden.

Verwendete Produkte

In dieser Referenzarchitektur werden die folgenden Google Cloud-Produkte verwendet:

  • Vertex AI SDK für ABAP: Bietet Module und Toolsets zum Erstellen KI-orientierter Anwendungen direkt in ABAP.
  • Vertex AI Vector Search: Ermöglicht mithilfe von Vektoreinbettungen eine skalierbare und effiziente Suche in Ihren Unternehmensdaten. Das bedeutet, dass Sie nicht nur nach Keywords, sondern auch nach Bedeutung und Kontext suchen können.

Anwendungsbereiche

Die folgende Liste zeigt Anwendungsfälle der Vektorsuche in SAP-Anwendungen:

  • Empfehlungssysteme erstellen: Nutzereingaben und -verhalten analysieren, um relevante Elemente für SAP-Unternehmen wie Produkte, Unternehmenscodes und GL-Konten vorzuschlagen, und dabei über die Keyword-Abgleiche hinausgehen.
  • RAG-Pipelines erstellen: Sie können auf Informationen aus verschiedenen Quellen zugreifen und diese integrieren, um den Kontext eines KI-Modells mit relevanten SAP- und Nicht-SAP-Informationen anzureichern und so präzise und relevante Modellantworten zu generieren.
  • Semantische Bildsuche: Sie können die Suche nach visuell ähnlichen Bildern aktivieren. Das ist nützlich für Shopping, visuelle Entdeckungen und die Analyse medizinischer Bilder.
  • Semantische Textsuche: Sie können die Bedeutung und den Kontext von Text ermitteln, um die Suchgenauigkeit bei der Analyse von rechtlichen, akademischen und Kundenfeedbacks zu verbessern.
  • Suche in natürlicher Sprache: Sie können Nutzern sofort Antworten auf ihre Fragen geben, indem Sie FAQs, Wissensdatenbanken und Lerntools ergänzen.
  • Anomalieerkennung: Identifizieren Sie ungewöhnliche Muster und potenzielle Bedrohungen in der Finanz-, Netzwerksicherheit und Fertigung.

Designaspekte

Dieser Abschnitt enthält eine Anleitung zur Verwendung dieser Referenzarchitektur, um Architekturen zu entwickeln, die Ihren spezifischen Anforderungen an Sicherheit, Datenschutz, Compliance, Kosten und Leistung entsprechen.

Sicherheit, Datenschutz und Compliance

Für Sicherheit und Compliance tragen Sie gemeinsam die Verantwortung. Weitere Informationen finden Sie unter Geteilte Verantwortung bei Vertex AI.

Informationen zu den Datenschutzverpflichtungen von Google Cloud finden Sie im Datenschutz-Center.

Kostenoptimierung

Um die Kosten zu senken, sollten Sie kleinere Shard-Größen und niedriger dimensionale Embeds für Ihre Indexe auswählen. So können Sie für die Bereitstellung der Indexe einen kleineren Compute-Rechner verwenden.

Vertex AI ist ein abrechenbares Angebot von Google Cloud. Informationen zu Preisen finden Sie unter Vertex AI-Preise und Preise für die Vektorsuche. Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.

Leistungsoptimierung

Um die Latenz beim Abrufen großer Datensätze zu verbessern, sollten Sie beim Erstellen des Index größere Shard-Größen und beim Bereitstellen des Index Hochleistungsrechner verwenden. Weitere Informationen zu Shard-Größen für einen Index finden Sie unter Indexgröße.

Um die Relevanz von Suchantworten zu erhöhen, generieren Sie Einbettungen Ihrer Unternehmensdaten in höheren Dimensionen. Compute-Maschinen und höhere Einbettungsdimensionen sind kostenintensiv. Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.

Hinweise

Bevor Sie Vector Search in Ihrer SAP-Anwendungsumgebung verwenden, müssen Sie oder Ihre Administratoren Folgendes tun:

Vektorindex erstellen und verwalten

Wenn Sie die Vektorsuche verwenden möchten, müssen Ihre Unternehmensdaten indexiert und in Form von Vektor-Embeddings bereitgestellt werden. Gehen Sie dazu so vor:

  1. Vektoreinbettungen mithilfe von KI-Modellen für Texteinbettungen oder multimodale Einbettungen in Vertex AI oder einer anderen Plattform generieren
  2. Laden Sie die Einbettungen in einen Cloud Storage-Bucket hoch.
  3. Erstellen Sie einen Vektorindex mit dem Cloud Storage-Bucket, der die Einbettungen enthält.
  4. Erstellen Sie einen Indexendpunkt und stellen Sie den Vektorindex auf dem Endpunkt bereit, um eine semantische Suche in Ihren indexierten Unternehmensdaten durchzuführen.

Sie können die vorherigen Schritte in der Google Cloud Console ausführen oder das Vertex AI SDK for ABAP verwenden, um sie aus Ihrer SAP-Umgebung auszulösen.

Damit Sie für eine KI-Lösung für Unternehmen über die Vektorsuche möglichst genaue Ergebnisse erhalten, müssen Sie den Index außerdem mit den neuesten Unternehmensdaten aktualisieren. Weitere Informationen finden Sie unter Vektorindex aktualisieren und neu erstellen.

Vektorsuche über SAP-Anwendungen aufrufen

Mit dem Vertex AI SDK für ABAP können Sie in Ihren SAP-Anwendungen semantische Suchanfragen in Ihren indexierten Unternehmensdaten auf folgende Arten ausführen:

Sie können die Ergebnisse der Vektorsuche verwenden, um den Kontext Ihres KI-Modells mithilfe von RAG um Unternehmenskontext zu ergänzen. So bleiben die Modellantworten auf Ihren Unternehmensdaten basierend. Sie können diese Ergebnisse auch als Eingabe für Geschäftsprozesse oder zum Generieren von Empfehlungen verwenden.

Semantische Suche mithilfe von Text-Prompts

Wenn Sie mithilfe von Textprompts in Ihrem indexierten Text und Ihren multimodalen Daten suchen möchten, können Sie die Methode FIND_NEIGHBORS_BY_STRING der Klasse /GOOG/CL_VECTOR_SEARCH des Vertex AI SDK für ABAP verwenden. Sie können den Aufruf der Methode GET_NEAREST_NEIGHBORS mit dem Aufruf der Methode FIND_NEIGHBORS_BY_STRING verketten, um die Suchantwort abzurufen.

Im folgenden Codebeispiel wird gezeigt, wie Sie mithilfe von Textprompts eine semantische Suche durchführen:

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.

Ersetzen Sie Folgendes:

  • SEARCH_KEY: Der Suchschlüssel, der in den Parametern für die Vektorsuche konfiguriert ist.
  • SEARCH_STRING: Der Eingabetext-Prompt.
  • MODEL_KEY: Der Modellschlüssel, der in den Parametern für die Modellgenerierung konfiguriert ist. Dieses Modell wird verwendet, um Ihre Suchanfrage in Einbettungen umzuwandeln.
  • NEIGHBOR_COUNT: Die Anzahl der nächsten Nachbarn, die mit der Suchanfrage abgerufen werden sollen.

Beispiele für die textbasierte Suche in Beispieltexten und multimodalen Daten für Unternehmen finden Sie in den GitHub-Codebeispielen für die semantische Suche in Textdatensätzen mithilfe von Textprompts und die semantische Suche in Bildern mithilfe von Textprompts.

Semantische Suche mithilfe von multimodalen Prompts

Diese Art der Suche ist nützlich, wenn Sie die besten Übereinstimmungen aus Ihren multimodalen Daten finden möchten, z. B. Bildern oder Videos. Wenn Sie beispielsweise eine SAP-Webanwendung (Fiori oder UI5) verwenden und ein Bild von Kleidung, einem Produkt oder einem Geräteteil aufnehmen und die am besten passenden Ergebnisse zu dem Bild finden möchten, können Sie diese Suchoption auswählen.

Wenn Sie mithilfe von multimodalen Prompts in Ihren indexierten multimodalen Daten suchen möchten, können Sie die Methode FIND_NEIGHBORS_BY_EMBEDDING der Klasse /GOOG/CL_VECTOR_SEARCH des Vertex AI SDK für ABAP verwenden. Sie können die Methode GET_NEAREST_NEIGHBORS mit der Methode FIND_NEIGHBORS_BY_EMBEDDING verketten, um die Suchantwort abzurufen.

Im folgenden Codebeispiel wird gezeigt, wie Sie mithilfe eines Bildes eine semantische Suche durchführen:

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.

Ersetzen Sie Folgendes:

  • SEARCH_KEY: Der Suchschlüssel, der in den Parametern für die Vektorsuche konfiguriert ist.
  • MODEL_KEY: Der Modellschlüssel, der in den Parametern für die Modellgenerierung konfiguriert ist. Dieses Modell wird verwendet, um Ihre Suchanfrage in Einbettungen umzuwandeln.
  • RAW_DATA: Die Base64-codierten Rohdaten des Bildes, PDFs oder Videos, die inline in die Suchanfrage aufgenommen werden sollen.
  • DIMENSION: Die Anzahl der Dimensionen für die Ausgabe-Ebenen.
  • NEIGHBOR_COUNT: Die Anzahl der nächsten Nachbarn, die mit der Suchanfrage abgerufen werden sollen.

Beispiele für die bildbasierte Suche in Beispieldaten für Unternehmen finden Sie im GitHub-Codebeispiel.

Semantische Suche mithilfe einer Unternehmensentitäts-ID

Diese Art der Suche kann für SAP-Anwendungsfälle nützlich sein, bei denen Sie ähnliche Unternehmensentitäten für eine bestimmte Entitäts-ID suchen möchten, z. B. ähnliche Produkte finden oder empfehlen, wenn ein bestimmtes Produkt nicht auf Lager ist. Entitäts-IDs entsprechen den Datenpunkten, die in Ihrem Vektorindex gespeichert sind.

Wenn Sie einen Vektorindex mithilfe einer Unternehmensentitäts-ID durchsuchen möchten, können Sie die Methode FIND_NEIGHBORS_BY_ENTITY_ID der Klasse /GOOG/CL_VECTOR_SEARCH des Vertex AI SDK für ABAP verwenden. Sie können den Aufruf der Methode GET_NEAREST_NEIGHBORS mit dem Aufruf der Methode FIND_NEIGHBORS_BY_ENTITY_ID verketten, um die Suchantwort abzurufen.

Das folgende Codebeispiel zeigt, wie Sie mithilfe einer Unternehmensentitäts-ID eine semantische Suche durchführen:

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.

Ersetzen Sie Folgendes:

Beispiele für die Suche mithilfe der Entitäts-ID in Beispieldaten für Unternehmen finden Sie im GitHub-Codebeispiel.

Vektorsuche mit RAG verwenden, um Ihrem KI-Modell zusätzlichen Kontext zu bieten

Die Vektorsuche liefert als Antwort auf Ihre Suchanfrage die relevantesten Unternehmensdaten. Sie können Ihrem KI-Modell zusätzlichen Kontext zur Verfügung stellen, indem Sie es mit der Suchantwort aus der Vektorsuche füttern und RAG verwenden. Mit RAG lässt sich die Qualität der Antworten Ihres KI-Modells verbessern, indem relevanter Kontext aus abgerufenen Unternehmensdaten bereitgestellt wird. So bleiben die Modellantworten auf Ihren Unternehmensdaten basierend.

So fügen Sie Ihrem KI-Modell mithilfe der Vektorsuche mit RAG zusätzlichen Kontext hinzu:

  1. Erstellen Sie eine Suchanfrage, um den Unternehmenskontext abzurufen.
  2. Führen Sie eine Vektorsuche im Index mit den Unternehmensdaten durch.
  3. Fügen Sie die Suchantwort dem endgültigen Prompt hinzu oder ergänzen Sie sie gemäß den Best Practices für effiziente Prompts.

Damit Sie für Ihre RAG-basierten Architekturen die relevantesten Antworten von KI-Modellen erhalten, sollten Sie Ihren Index mit den Einbettungen Ihrer neuesten Unternehmensdaten aktualisieren. Weitere Informationen finden Sie unter Vektorindex aktualisieren und neu erstellen.

Wenn Sie einen Unternehmensnutzungsfall mit Beispieldatensätzen ausprobieren möchten, sehen Sie sich die Beispiellösung Vector Search powered by Embeddings from SAP auf GitHub an. Diese Beispiellösung zeigt eine Produktempfehlungs-Engine in ABAP und enthält eine Anleitung zu erforderlichen Konfigurationen und Implementierungsdetails. Sie können die Beispielcodes und ‑referenzen als Grundlage für andere Empfehlungssysteme verwenden, in denen Sie die semantische Suche direkt über Ihre SAP-Anwendungen ausführen können.

Nächste Schritte

Beitragende

Autor: Devesh Singh | SAP Application Engineer

Weiterer Mitwirkender: Vikash Kumar | Technischer Autor