Mit Natural Language Understanding filtern

Auf dieser Seite wird erläutert, wie Sie Natural Language Understanding (NLU) 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 benutzerdefinierte Such-App mit strukturierten Daten haben, können die Anfragen Ihrer Nutzer in natürlicher Sprache als gefilterte Anfragen neu formatiert werden. Das kann zu besseren Suchergebnissen führen, als wenn Sie nach Wörtern im Suchstring suchen.

Die Verwendung von Abfragen in natürlicher Sprache ist einfacher und flexibler als das Schreiben eigener Filterausdrücke. Informationen zum Schreiben von Filterausdrücken finden Sie unter Benutzerdefinierte Suche nach strukturierten oder unstrukturierten Daten filtern.

Diese Funktion lässt sich am besten anhand von Beispielen erklären:

Beispiel: Felder aus Anfragen extrahieren

Diese Funktion zur Interpretation von Anfragen in natürlicher Sprache wird anhand eines Beispiels für die Suche nach einem Hotel erläutert.

Hier ist eine Anfrage, die an einen strukturierten Datenspeicher für eine Hotelwebsite gerichtet wurde: „Finde 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 bietet.“

Ohne die Interpretation von Anfragen in natürlicher Sprache sucht die Such-App nach Dokumenten, die die Wörter in der Anfrage 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 Anfrage als die folgenden Filter plus eine Residualanfrage neu geschrieben werden:

  • Aus der natürlichsprachlichen Anfrage extrahierte Filter:

    {
        "star_rating": ≥4,
        "price": ≤300,
        "amenities": "Wifi", "Pets Allowed"
    }
    
  • Verbleibende Abfrage, die nach dem Extrahieren von Filtern neu formuliert wurde:

    family-friendly

Beispiel: Mit einem Geofilter

Dieses Beispiel ähnelt dem vorherigen, enthält aber einen Geolokalisierungsfilter, der eine spezielle Art von extrahiertem Filter ist. Vertex AI Search kann Orte in einer Anfrage erkennen und Näherungsfilter für die Orte erstellen.

Hier ist eine Anfrage, die an eine unternehmensweite Website gerichtet wurde: „Suche ein schickes und stilvolles Hotel mit mindestens 4 Sternen in San Francisco.“

Durch die Analyse der Abfrage in natürlicher Sprache und den Geolocation-Filter wird die Suche als Filter und eine verbleibende Abfrage neu formuliert:

  • Filter, die aus der natürlichsprachigen Anfrage extrahiert wurden, für mindestens 4 Sterne und innerhalb eines Radius 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 Anfragen kann sie jedoch als Breiten- und Längengrad angegeben sein, obwohl die ursprüngliche Anfrage eine Adresse enthielt.

  • Verbleibende Abfrage, die nach dem Extrahieren von Filtern neu formuliert wurde:

    chic and stylish in San Francisco

    Obwohl der Geolocation-Filter erstellt wird, bleibt der Ortsname in der verbleibenden Anfrage. Das unterscheidet sich von den anderen Filtern, z. B. star_rating.

Beschränkungen

Für das Verständnis von Anfragen in natürlicher Sprache gelten die folgenden Einschränkungen:

  • Die Interpretation von Anfragen in natürlicher Sprache kann nicht auf Apps für die kombinierte Suche angewendet werden. Wenn Sie versuchen, das Verständnis von Anfragen in natürlicher Sprache mit einer App für die kombinierte Suche zu verwenden, erhalten Sie eine Fehlermeldung.

  • Die Interpretation von Anfragen in natürlicher Sprache funktioniert nur für benutzerdefinierte Such-Apps, die strukturierte Datenspeicher verwenden.

  • Die Verwendung von Natural Language Query Understanding erhöht die Latenz. Wenn Latenz ein Problem ist, sollten Sie diese Funktion daher nicht verwenden.

  • Bei der Geolocation muss der Standort explizit beschrieben werden. Sie können keine Orte wie „in meiner Nähe“ oder „Zuhause“ verwenden.

  • Der Radius für die Geolocation beträgt 10 km und kann nicht konfiguriert werden.

Hinweise

Bevor Sie die Funktion zum Verarbeiten von Anfragen 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 die Verarbeitung von Anfragen in natürlicher Sprache:

REST

  1. Suchen Sie nach Ihrer Datenspeicher-ID. Wenn Sie die ID Ihres Datenspeichers bereits haben, fahren Sie mit dem nächsten Schritt fort.

    1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf und klicken Sie im Navigationsmenü auf Datenspeicher.

      Zur Seite „Datenspeicher“

    2. Klicken Sie auf den Namen des Datenspeichers.

    3. Rufen Sie auf der Datenseite Ihres Datenspeichers die Datenspeicher-ID ab.

  2. 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"
          }
        }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Google Cloud Projekts.
    • DATA_STORE_ID: Die ID des Vertex AI Search-Datenspeichers.
  3. Wiederholen Sie die Schritte 1 und 2 für jeden Datenspeicher.

  4. Warten Sie etwa 24 Stunden.

    Wenn Sie versuchen, die Verarbeitung von Anfragen in natürlicher Sprache zu verwenden, bevor der Datenspeicher bereit ist, entspricht die Antwort, die Sie erhalten, der Antwort, die Sie erhalten, wenn filterExtractionCondition auf DISABLED festgelegt ist.

Suchen und Umwandeln von Anfragen in natürlicher Sprache in Filter

So suchen Sie mit einer Abfrage in natürlicher Sprache und erhalten Ergebnisse, die für Abfragen in natürlicher Sprache optimiert sind:

REST

  1. Führen Sie den folgenden curl-Befehl aus, mit dem die Methode search aufgerufen wird:

    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 für die kombinierte Suche sein.
    • QUERY: Die Anfrage ist in natürlicher Sprache formuliert.

Standorte in Anfragen in Geolocation-Filter umwandeln

So suchen Sie mit einer Anfrage in natürlicher Sprache und erhalten Ergebnisse, die für Anfragen in natürlicher Sprache optimiert sind, einschließlich der Nähe zu Orten:

REST

  1. Führen Sie den folgenden curl-Befehl aus, mit dem die Methode search aufgerufen wird:

    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 für die kombinierte Suche sein.
    • QUERY: Die Anfrage ist in natürlicher Sprache formuliert.
    • GEO_FIELD_NAME_1, GEO_FIELD_NAME_N: eine Liste von Werten des Typs geolocation. Wenn der Werttyp nicht geolocation ist, wird dieses Feld ignoriert.