Mit Natural Language Understanding filtern

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:

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

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

    1. Rufen Sie in der Google Cloud Console die Seite Agent Builder 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"
          }
        }'
    
    • 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, 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

  1. 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

  1. 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 Typ geolocation. Wenn der Werttyp nicht geolocation ist, wird dieses Feld ignoriert.