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:
Diese Referenzarchitektur umfasst die folgenden Komponenten:
# | Komponente | Details |
---|---|---|
1 | Ausgangspunkt der Abfrage in SAP | Sie haben folgende Möglichkeiten, eine Suche zu starten:
|
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:
- Sie haben die neueste Version der lokalen oder einer beliebigen Cloud-Version des ABAP SDK for Google Cloud installiert.
- Sie haben die Vertex AI API in Ihrem Google Cloud-Projekt aktiviert.
- Richten Sie die Authentifizierung für den Zugriff auf die Vertex AI API ein.
- Sie haben die Parameter für die Vektorsuche konfiguriert.
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:
- Vektoreinbettungen mithilfe von KI-Modellen für Texteinbettungen oder multimodale Einbettungen in Vertex AI oder einer anderen Plattform generieren
- Laden Sie die Einbettungen in einen Cloud Storage-Bucket hoch.
- Erstellen Sie einen Vektorindex mit dem Cloud Storage-Bucket, der die Einbettungen enthält.
- 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:
- Mithilfe von Textprompts suchen: Sie können eine semantische Suche in Ihren Text- und multimodalen Daten mithilfe eines Suchstrings durchführen.
- Mithilfe von multimodalen Prompts suchen: Sie können eine semantische Suche in Ihren multimodalen Daten durchführen, indem Sie multimodale Eingaben wie ein Bild oder ein Video verwenden.
- Anhand von Entitäts-IDs von Unternehmen suchen: Sie können eine semantische Suche in Ihren Unternehmensdaten durchführen, indem Sie unternehmensspezifische IDs wie Produkt-ID, Bestell-ID oder Kunden-ID verwenden.
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:
SEARCH_KEY
: Der Suchschlüssel, der in den Parametern für die Vektorsuche konfiguriert ist.ENTITY_ID
: Die Entitäts-ID, nach der gesucht werden soll.
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:
- Erstellen Sie eine Suchanfrage, um den Unternehmenskontext abzurufen.
- Führen Sie eine Vektorsuche im Index mit den Unternehmensdaten durch.
- 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
- Wie relevant die einzelnen Suchergebnisse für Ihre Suchanfrage sind, erfahren Sie unter Entfernung des abgerufenen Nachbarn ermitteln.
- Informationen zur Verwendung der Vektorsuche mit dem Vertex AI SDK für ABAP finden Sie unter Vertex AI-Vektorsuche verwenden.
Wenn Sie Hilfe bei der Behebung von Problemen mit dem ABAP SDK for Google Cloud benötigen, gehen Sie so vor:
- Weitere Informationen finden Sie im Leitfaden zur Fehlerbehebung für ABAP SDK for Google Cloud.
- In den Cloud-Foren können Sie Ihre Fragen stellen und über die ABAP SDK für Google Cloud mit der Community sprechen.
- Erfassen Sie alle verfügbaren Diagnoseinformationen und wenden Sie sich an Cloud Customer Care. Weitere Informationen zur Kontaktaufnahme mit Customer Care finden Sie unter Support für SAP in Google Cloud.
Beitragende
Autor: Devesh Singh | SAP Application Engineer
Weiterer Mitwirkender: Vikash Kumar | Technischer Autor