Auf dieser Seite wird erläutert, wie Sie Natural Language Understanding anwenden, um automatisch Filter für Suchanfragen zu erstellen und so die Qualität der zurückgegebenen Ergebnisse zu verbessern.
Sie können diese Funktion mit Suchanwendungen verwenden, die mit Datenspeichern für strukturierte Daten verbunden sind.
Interpretation von Anfragen in natürlicher Sprache
Wenn Sie eine allgemeine Such-App mit strukturierten Daten haben, können die Suchanfragen Ihrer Nutzer in natürlicher Sprache in gefilterte Suchanfragen umgewandelt werden. Dies kann zu Suchergebnissen mit höherer Qualität führen als die Suche nach Wörtern im Suchstring.
Die Verwendung von Abfragen in natürlicher Sprache ist einfacher und flexibler als das Erstellen eigener Filterausdrücke. Informationen zum Erstellen von Filterausdrücken finden Sie unter Generischer Suchanfrage nach strukturierten oder unstrukturierten Daten filtern.
Diese Funktion lässt sich am besten anhand von Beispielen erklären:
Im Beispiel: Feldextraktion aus Abfragen sind die Feldfilter zu sehen, die aus der Abfrage extrahiert wurden.
Beispiel: Mit einem geografischen Standortfilter enthält den Sonderfall des geografischen Standortfilters.
Beispiel: Feldextraktion aus Abfragen
Diese Funktion zur Interpretation von Anfragen in natürlicher Sprache wird anhand des Beispiels einer Hotelsuche veranschaulicht.
Betrachten Sie die folgende Abfrage an einen strukturierten Datenspeicher für eine Hotelwebsite: „Suchen Sie mir ein familienfreundliches Hotel mit mindestens vier Sternen, das weniger als 300 € pro Nacht kostet, in dem ich meinen Hund mitbringen kann und das kostenloses WLAN hat.“
Ohne die Interpretation von Suchanfragen in natürlicher Sprache sucht die Such-App nach Dokumenten, die die Wörter in der Suchanfrage enthalten.
Durch das Verständnis von Abfragen in natürlicher Sprache und entsprechend strukturierte Daten wird die Suche effektiver, da ein Teil der natürlichen Sprache in der Abfrage durch Filter ersetzt wird.
Wenn die strukturierten Daten Felder für star_rating
(Zahlen), price
(Zahlen) und amenities
(Strings) enthalten, kann die Abfrage in die folgenden Filter und eine Restabfrage umgeschrieben werden:
Aus der Abfrage in natürlicher Sprache extrahierte Filter:
{ "star_rating": ≥4, "price": ≤300, "amenities": "Wifi", "Pets Allowed" }
Restliche Abfrage, nach Filterung neu formuliert:
family-friendly
Beispiel: Mit einem geografischen Filter
Dieses Beispiel ähnelt dem vorherigen, mit dem Unterschied, dass es einen Geolocation-Filter enthält, eine spezielle Art von extrahierten Filtern. Mit der Vertex AI Search können Sie Standorte in einer Suchanfrage erkennen und Nähe-Filter für die Standorte erstellen.
Angenommen, eine Suchanfrage an eine landesweite Unternehmenswebsite lautet: „Suchen Sie mir ein elegantes und stilvolles Hotel mit mindestens 4 Sternen in San Francisco.“
Mit der Interpretation von Suchanfragen in natürlicher Sprache und dem geografischen Standortfilter wird die Suche in Form von Filtern und einer Restabfrage neu formuliert:
Aus der Suchanfrage in natürlicher Sprache extrahierte Filter für Hotels mit mindestens 4 Sternen und in einem Umkreis von 10 km um San Francisco:
{ "star_rating": ≥4, "location": GEO_DISTANCE(\"San Francisco, CA\", 10000) }
In diesem Beispiel ist
GEO_DISTANCE
eine Adresse. In anderen Abfragen kann es sich aber auch um eine geografische Breite und Länge handeln, auch wenn die ursprüngliche Abfrage eine Adresse enthielt.Restliche Abfrage, nach Filterung neu formuliert:
chic and stylish in San Francisco
Obwohl der Geolokalisierungsfilter angewendet wird, bleibt der Ortsname in der Restabfrage erhalten. Das unterscheidet sich von anderen Filtern wie dem
star_rating
.
Beschränkungen
Für die Verarbeitung von Suchanfragen in natürlicher Sprache gelten die folgenden Einschränkungen:
Die Interpretation von Anfragen in natürlicher Sprache kann nicht auf Apps mit kombinierter Suche angewendet werden. Wenn Sie versuchen, die Verarbeitung von Suchanfragen in natürlicher Sprache mit einer App für die gemischte Suche zu verwenden, erhalten Sie eine Fehlermeldung.
Die Verarbeitung von Abfragen in natürlicher Sprache funktioniert nur für allgemeine Suchanwendungen, die strukturierte Datenspeicher verwenden.
Die Verwendung von NLU für Abfragen erhöht die Latenz. Wenn dies ein Problem darstellt, sollten Sie diese Funktion daher nicht verwenden.
Bei der Standortermittlung muss der Standort explizit beschrieben werden. Sie können keine Orte wie „in meiner Nähe“ oder „Zuhause“ verwenden.
Der Radius für die Standortermittlung beträgt 10 km und kann nicht konfiguriert werden.
Hinweise
Bevor Sie die Funktion zur Verarbeitung von Suchanfragen in natürlicher Sprache verwenden können, müssen Sie sie für die strukturierten Datenspeicher aktivieren, die mit den Apps verbunden sind, die Sie verwenden möchten.
So aktivieren Sie das Verstehen von Suchanfragen in natürlicher Sprache:
REST
Suchen Sie die Datenspeicher-ID. Wenn Sie die Datenspeicher-ID bereits haben, fahren Sie mit dem nächsten Schritt fort.
Rufen Sie in der Google Cloud Console die Seite Agent Builder auf und klicken Sie im Navigationsmenü auf Datenspeicher.
Klicken Sie auf den Namen des Datenspeichers.
Rufen Sie auf der Datenseite Ihres Datenspeichers die Datenspeicher-ID ab.
Führen Sie den folgenden curl-Befehl aus:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID?update_mask=natural_language_query_understanding_config.mode" \ -d '{ "naturalLanguageQueryUnderstandingConfig": { "mode": "ENABLED" } }'
PROJECT_ID
: die ID Ihres Google Cloud -Projekts.DATA_STORE_ID
: die ID des Vertex AI Search-Datenspeichers.
Wiederholen Sie die Schritte 1 und 2 für jeden Datenspeicher.
Warten Sie etwa 24 Stunden.
Wenn Sie versuchen, das Verständnis von Abfragen in natürlicher Sprache zu verwenden, bevor der Datenspeicher bereit ist, erhalten Sie dieselbe Antwort wie bei
filterExtractionCondition
=DISABLED
.
Suche, Umwandlung von Suchanfragen in natürlicher Sprache in Filter
So können Sie eine Suchanfrage in natürlicher Sprache stellen und Ergebnisse erhalten, die für Suchanfragen in natürlicher Sprache optimiert sind:
REST
Führen Sie den folgenden curl-Befehl aus, der die Methode
search
aufruft:curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "query": "QUERY", "naturalLanguageQueryUnderstandingSpec": { "filterExtractionCondition": "ENABLED" } }'
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID Ihres Google Cloud -Projekts.APP_ID
: Die ID der Vertex AI Search-App, die Sie abfragen möchten. Die App muss mit einem Datenspeicher verbunden sein, der strukturierte Daten enthält. Die App darf keine App mit kombinierter Suche sein.QUERY
: Die Suchanfrage ist in natürlicher Sprache verfasst.
Suchanfragen, bei denen Standorte in Geolokalisierungsfilter umgewandelt werden
So können Sie eine Suchanfrage in natürlicher Sprache stellen und Ergebnisse erhalten, die für Suchanfragen in natürlicher Sprache optimiert sind, einschließlich der Nähe zu Orten:
REST
Führen Sie den folgenden curl-Befehl aus, der die Methode
search
aufruft:curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "query": "QUERY", "naturalLanguageQueryUnderstandingSpec": { "filterExtractionCondition": "ENABLED", "geoSearchQueryDetectionFieldNames": ["GEO_FIELD_NAME_1", "GEO_FIELD_NAME_N"]" } }'
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID Ihres Google Cloud -Projekts.APP_ID
: Die ID der Vertex AI Search-App, die Sie abfragen möchten. Die App muss mit einem Datenspeicher verbunden sein, der strukturierte Daten enthält. Die App darf keine App mit kombinierter Suche sein.QUERY
: Die Suchanfrage ist in natürlicher Sprache verfasst.GEO_FIELD_NAME_1, GEO_FIELD_NAME_N
: eine Liste von Werten vom Typgeolocation
. Wenn der Werttyp nichtgeolocation
ist, wird dieses Feld ignoriert.