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.
Du kannst diese Funktion für Such-Apps verwenden, die mit strukturierten Daten verknüpft sind Geschäften.
Über Natural Language Query Understanding
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 Suchanfragen in natürlicher Sprache ist einfacher und flexibler als das Erstellen eigener Filterausdrücke. Informationen zum Schreiben von Filterausdrücken finden Sie unter Allgemeine Suche 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 Natural Language-Query Understanding-Funktion wird anhand des Beispiels der Suche nach einem Hotel.
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 Natural Language Understanding sucht die Such-App nach Dokumenten, die die Wörter enthalten in die Abfrage ein.
Durch das Verständnis von Abfragen in natürlicher Sprache und die Verwendung von richtig strukturierten 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 Suchanfrage in natürlicher Sprache extrahierte Filter:
{ "star_rating": ≥4, "price": ≤300, "amenities": "Wifi", "Pets Allowed" }
Restliche Abfrage, nach dem Entfernen der Filter 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. Vertex AI Search kann Standorte in einer Abfrage erkennen und Umgebungsfilter für die Standorte erstellen.
Angenommen, eine Person stellt auf einer landesweiten Unternehmenswebsite folgende Suchanfrage: „Suchen Sie mir ein elegantes und stilvolles Hotel mit mindestens 4 Sternen in San Francisco.“
Mithilfe der Analyse 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.Residualabfrage, umformuliert nach dem Extrahieren von Filtern:
chic and stylish in San Francisco
Obwohl der Geolokalisierungsfilter angewendet wird, bleibt der Ortsname in der Restabfrage erhalten. Das unterscheidet ihn von anderen Filtern wie dem
star_rating
.
Beschränkungen
Für das Verständnis natürlicher Abfragen gelten die folgenden Einschränkungen:
Das Verständnis natürlicher Sprache kann nicht auf zusammengeführte Suchanwendungen 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 Suchanfragen in natürlicher Sprache funktioniert für jede allgemeine Such-App, die strukturierte Daten verwendet. Google empfiehlt jedoch nicht, diese Funktion für die folgenden Arten von strukturierten Daten zu verwenden:
- Unstrukturierte Daten mit Metadaten
- Websitedaten mit strukturierten Daten
Bei diesen Arten von strukturierten Daten ist die Wahrscheinlichkeit gering, dass gute Ergebnisse erzielt werden, da diese Daten in der Regel keine Inhalte, sondern Informationen zur Art der Inhalte enthalten.
Die Verwendung von Natural Language Query Understanding erhöht die Latenz, sodass Sie es möglicherweise nicht verwenden. ob Latenz ein Problem ist.
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.
Hinweis
Bevor Sie Natural Language Query Understanding verwenden können, müssen Sie es für Datenspeicher aktivieren mit den Apps verbunden, die Sie verwenden möchten.
So aktivieren Sie das Verständnis natürlicher Abfragen:
REST
Suchen Sie Ihre Datenspeicher-ID. Wenn Sie bereits einen Datenspeicher haben ID verwenden, fahren Sie mit dem nächsten Schritt fort.
Rufen Sie in der Google Cloud Console die Seite Agent Builder auf. 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
ist 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, Query Understanding in natürlicher Sprache zu verwenden, bevor der Datenspeicher bereit ist, wird die Antwort erhalten Sie dasselbe Ergebnis, als wäre
filterExtractionCondition
aufDISABLED
gesetzt.
Suchen und Abfragen in natürlicher Sprache in Filter umwandeln
Um eine Suchanfrage in natürlicher Sprache zu durchsuchen und Ergebnisse zu erhalten, die für Abfragen in natürlicher Sprache verwenden, gehen Sie so vor:
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
ist die ID Ihres Google Cloud-Projekts.APP_ID
: Die ID der Vertex AI Search-App, die Sie abfragen möchten. Die App muss die mit einem Datenspeicher verbunden sind, der strukturierte Daten oder Metadaten enthält. Die App darf kein kombinierte Such-App.QUERY
: Die Abfrage ist in natürlicher Sprache.
Suchanfragen, bei denen Standorte in Geolokalisierungsfilter umgewandelt werden
Um eine Suchanfrage in natürlicher Sprache zu durchsuchen und Ergebnisse zu erhalten, die für bei Abfragen in natürlicher Sprache, einschließlich der Nähe zu Standorten, führen Sie Folgendes aus:
REST
Führen Sie den folgenden curl-Befehl aus, um den
search
aufzurufen. :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
ist die ID Ihres Google Cloud-Projekts.APP_ID
: Die ID der Vertex AI Search-App, die Sie abfragen möchten. Die App muss die mit einem Datenspeicher verbunden sind, der strukturierte Daten oder Metadaten enthält. Die App darf kein kombinierte Such-App.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
– wird dieses Feld ignoriert.