Auf dieser Seite wird die Suche mit weiterführenden Fragen für Agent Search vorgestellt und gezeigt, wie Sie sie mit API-Aufrufen implementieren.
Wenn Sie dem Such-Widget die Suche mit Follow-ups hinzufügen möchten, lesen Sie den Abschnitt Ergebnisse für das Such-Widget konfigurieren.
Die Suche mit weiterführenden Fragen ist für Such-Apps mit unstrukturierten Daten und Websites verfügbar.
Suche mit weiterführenden Fragen
Die Suche mit weiterführenden Fragen basiert auf generativen KI-Modellen. Die Suche mit Folgefragen unterscheidet sich von der regulären Suche nach unstrukturierten Daten, da bei der Suche mit Folgefragen frühere Anfragen in derselben Suchsitzung berücksichtigt werden.
Die Suche mit weiterführenden Fragen unterstützt Folgendes:
Verarbeitung von Anfragen in natürlicher Sprache:Gemini verarbeitet und versteht Eingaben in menschlicher Sprache, ermittelt die Absicht hinter einer Anfrage und gibt relevante Ergebnisse zurück.
Kontextsensitivität:Gemini versteht den Kontext früherer Interaktionen und liefert kontextbezogene Antworten.
Multi-Turn:Nutzer können Folgefragen stellen und relevante Antworten erhalten.
Beispiel für die Suche mit weiterführenden Fragen
Im Folgenden finden Sie ein Beispiel für eine Suche mit weiterführenden Fragen. Angenommen, Sie möchten sich über Urlaub in Mexiko informieren:
Sie: Wann ist die beste Reisezeit für Mexiko?
Suche mit weiterführenden Fragen: Die beste Reisezeit für Mexiko ist die Trockenzeit von November bis April.
Sie: Wie hoch ist der Wechselkurs?
Suche mit weiterführenden Fragen: 1 EURO entspricht ungefähr 21,22 mexikanischen Pesos.
Sie: Wie hoch ist die Durchschnittstemperatur im Dezember?
Antwort mit weiterführenden Fragen: Die Durchschnittstemperatur schwankt zwischen 21 und 26 °C. Die Durchschnittstemperatur in Cancún beträgt etwa 25 °C.
Bei einer regulären Suche wäre die Frage „Wie hoch ist der Wechselkurs?“ nicht beantwortbar, da bei einer regulären Suche nicht klar wäre, dass Sie den Wechselkurs für mexikanische Pesos wissen möchten. Bei einer normalen Suche würde der Kontext nicht beibehalten, um Ihnen die Temperaturen für Mexiko zu liefern.
Über Konversationen
Bei der Suche mit weiterführenden Fragen besteht eine Unterhaltung aus Textanfragen, die von einem Nutzer gestellt werden, und Antworten, die von Agent Search bereitgestellt werden.
Diese Abfrage-Antwort-Paare werden manchmal als Nachrichten bezeichnet. Im vorherigen Beispiel besteht die zweite Nachricht aus „Wie hoch ist der Wechselkurs?“ und „1 EURO entspricht ungefähr 21, 22 mexikanischen Pesos.“
Die Unterhaltungen werden im selben Datenspeicher wie die unstrukturierten Daten gespeichert. Im Datenspeicher wird eine Unterhaltung durch die Conversation-Ressource dargestellt. In der Konversationsressource ist neben den Abfrage- und Antwortnachrichten Folgendes enthalten:
Ein eindeutiger Name (die Unterhaltungs-ID).
Ein Status („In Bearbeitung“ oder „Abgeschlossen“).
Eine Pseudo-ID für den Nutzer, also eine Besucher-ID, mit der der Nutzer nachverfolgt wird. Sie kann programmatisch zugewiesen werden.
Eine Start- und eine Endzeit.
Hinweis
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind. Die Anforderungen variieren je nach Art der App.
Wenn Sie eine App für die unstrukturierte Suche haben, muss die Option Generative Antwort aktiviert sein.
Wenn Sie eine Suchanwendung für Websites haben, müssen die folgenden Optionen aktiviert sein:
Unterhaltungen speichern und Antworten erhalten
Sie können über die Befehlszeile oder Clientbibliotheken Suchergebnisse generieren und die Unterhaltung „Suchen mit Follow-ups“ speichern.
REST
So erstellen Sie eine Unterhaltung über die Befehlszeile und generieren Antworten auf Basis der Eingabe des Nutzers:
Geben Sie den Datenspeicher an, in dem Sie den Unterhaltungsverlauf speichern möchten:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations" \ -d '{ "user_pseudo_id": "USER_PSEUDO_ID" }'PROJECT_ID: Die Projektnummer oder ‑ID Ihres Google Cloud -Projekts
DATA_STORE_ID: Die ID des Datenspeichers, der mit Ihrer App verknüpft ist.
USER_PSEUDO_ID: eine eindeutige Kennung zum Tracken eines Besuchers, der die Suche nutzt. Dies kann beispielsweise mit einem HTTP-Cookie implementiert werden, das einen Besucher auf einem einzelnen Gerät eindeutig identifiziert.
Klicken Sie hier, um eine Beispielantwort auf den Befehl
POSTzu sehen.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "startTime": "2023-08-15T20:08:12.094639Z" }
Eine Suchantwort generieren und einer neuen oder vorhandenen Unterhaltung in Ihrem Datenspeicher hinzufügen:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "filter": "FILTER" }'PROJECT_ID: Die Projektnummer oder ‑ID Ihres Google Cloud -Projekts
DATA_STORE_ID: Die ID des Datenspeichers, der mit Ihrer App verknüpft ist.
CONVERSATION_ID: Eine eindeutige ID für die Unterhaltung, z. B.
123456. Verwenden Sie für eine Unterhaltung mit Suchanfragen und Folgeanfragen in jeder Runde dieselbe Unterhaltungs-ID.FREE_TEXT: Ein Freitextstring mit der Frage des Nutzers, z. B.
what is bigquery?FILTER: Ein Textfeld zum Filtern der Suche mit einem Filterausdruck. Der Standardwert ist ein leerer String. Wie Sie Ihren Filter erstellen, hängt davon ab, ob Sie Websitedaten oder unstrukturierte Daten mit Metadaten haben. Weitere Informationen finden Sie unter Suche nach Follow-ups filtern.
Klicken Sie hier, um eine Beispielantwort auf den Befehl
POSTzu sehen.{ "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } }, "conversation": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }, "searchResults": [ { "id": "c86f19582746b56f71c9bb6929893835", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/c86f19582746b56f71c9bb6929893835", "id": "c86f19582746b56f71c9bb6929893835", "derivedStructData": { "link": "gs://aquamuse-data-ucs-eval-dev/documents/94627ee0249dfdfda25b1b158c717bca.txt", "snippets": [ { "snippet_status": "SUCCESS", "snippet": "For larger websites, talk to the IT team and/or utilize a big data solution such as Google \u003cb\u003eBigQuery\u003c/b\u003e to extract all URLs. It may also be necessary to ask the ..." } ], "extractive_answers": [ { "content": "Alternatively, load the Server Log Files into Google BigQuery and use the Google BigQuery interface or the 360 Data Studio to analyze the data. To monitor the indexation numbers of the HTTP and the HTTPS version, keep an eye on all submitted XML Sitemaps." } ] } } }, { "id": "774bd7ce2a3509ab4bbd1fc876f39dc2", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/774bd7ce2a3509ab4bbd1fc876f39dc2", "id": "774bd7ce2a3509ab4bbd1fc876f39dc2", "derivedStructData": { "snippets": [ { "snippet": "No snippet is available for this page.", "snippet_status": "NO_SNIPPET_AVAILABLE" } ], "extractive_answers": [ { "content": "This consists of a collection of virtual tables. A virtual table exists for every queryable object type (content type if you prefer) in the repository. Each row in these virtual tables correspond to an instance of the corresponding object type (or of one of its subtypes)." } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/28841ef8590a105e9415f1390648a811.txt" } } }, { "id": "3e1d306e49aefd9e23f2d5f7a66e6c76", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/3e1d306e49aefd9e23f2d5f7a66e6c76", "id": "3e1d306e49aefd9e23f2d5f7a66e6c76", "derivedStructData": { "snippets": [ { "snippet": "No snippet is available for this page.", "snippet_status": "NO_SNIPPET_AVAILABLE" } ], "extractive_answers": [ { "content": "Other logo switches are based on search terms. For instance, if the term "ASCII art" is searched, an ASCII art version of the Google logo will appear next to the search box." } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/98008df3eef5d3ee1661c52f23189190.txt" } } }, { "id": "cf94e24aacd47cd2c2f5effcbdeda832", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/cf94e24aacd47cd2c2f5effcbdeda832", "id": "cf94e24aacd47cd2c2f5effcbdeda832", "derivedStructData": { "extractive_answers": [ { "content": "The company is listed on the NASDAQ stock exchange under the ticker symbols GOOGL and GOOG, and on the Frankfurt Stock Exchange under the ticker symbol GGQ1. These ticker symbols now refer to Alphabet Inc., Google's holding company, since the fourth quarter of 2015." } ], "snippets": [ { "snippet": "No snippet is available for this page.", "snippet_status": "NO_SNIPPET_AVAILABLE" } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/d80204083ef1096799fa4b7257548b33.txt" } } }, { "id": "05bc6497a4e7e6ca36b2e495b354b764", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/05bc6497a4e7e6ca36b2e495b354b764", "id": "05bc6497a4e7e6ca36b2e495b354b764", "derivedStructData": { "extractive_answers": [ { "content": "SQL injection countermeasures are designed to utilize secure programming methods. By changing the variables used by the application code, weaknesses in applications can be greatly minimized. This report will detail how to perform a SQL injection and explore the best countermeasures to prevent the attack." } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/7cba75d646f5774a21d96801bec68bb3.txt", "snippets": [ { "snippet_status": "NO_SNIPPET_AVAILABLE", "snippet": "No snippet is available for this page." } ] } } } ] }
Wiederholen Sie Schritt 2 für jede neue Frage in der Unterhaltung.
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Agent Search Python API.
Richten Sie zur Authentifizierung bei Agent Search Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Suche mit weiterführenden Fragen filtern
Wenn Sie eine Anfrage mit der Funktion „Suche mit Follow-ups“ stellen, können Sie das Feld filter verwenden, um den Pool von Dokumenten einzuschränken, aus denen eine Antwort abgeleitet wird. Sie erstellen den Filter mit Filterausdrücken. Die Filterausdrücke, die Sie verwenden, hängen davon ab, ob Sie Websitedaten oder unstrukturierte Daten mit Metadaten haben.
Filterausdrücke für Websitedaten
Wenn Sie einen Datenspeicher mit Websitedaten haben, können Sie Ihre Suche mit Follow-up-Anfragen mithilfe der Filterausdrücke in Filterausdrücke mit erweiterter Websiteindexierung filtern. Nachdem Sie den Filterausdruck erstellt haben, verwenden Sie ihn für den Wert des Felds filter in Schritt 2 von Unterhaltungen speichern und Antworten erhalten.
Filterausdrücke für unstrukturierte Daten mit Metadaten
Wenn Sie einen Datenspeicher mit unstrukturierten Daten mit Metadaten haben, können Sie Ihre Suche mit einer Folgeanfrage filtern, sodass Dokumente basierend auf den Metadatenfeldern zurückgegeben werden, die die Dokumente enthalten. Unter Suche nach strukturierten oder unstrukturierten Daten filtern erfahren Sie, wie Sie Metadaten verwenden, um normale Suchanfragen (ohne Follow-ups) zu filtern. Sie können dieselben Prinzipien verwenden, um die Suche mit Follow-ups mithilfe von Metadaten zu filtern. Nachdem Sie den Filterausdruck erstellt haben, verwenden Sie ihn als Wert für das Feld filter in Schritt 2 von Unterhaltungen speichern und Antworten erhalten.
Zusammenfassung konfigurieren
Die Antwortnachricht der Suche mit weiterführenden Fragen ist eine generierte Zusammenfassung, die in summaryText zurückgegeben wird. Es gibt verschiedene Möglichkeiten, die generierte Zusammenfassung zu konfigurieren. Diese werden in den folgenden Abschnitten beschrieben:
- Zitationen mit Suchergebnissen abrufen
- Schädliche Anfragen ignorieren
- Abfragen ignorieren, die nicht auf eine Zusammenfassung abzielen
- Anzahl der Ergebnisse für die Zusammenfassung festlegen
- Benutzerdefinierte Zusammenfassungen abrufen
- SafeSearch auf Chatantworten anwenden
Quellenangaben in Suchergebnissen erhalten
Quellenangaben sind, sofern angegeben, Zahlen, die inline in einer Zusammenfassung der Suchergebnisse platziert werden. Diese Zahlen geben an, aus welchen Suchergebnissen bestimmte Sätze in der Zusammenfassung stammen.
So rufen Sie Quellenangaben ab:
Folgen Sie der Anleitung unter Unterhaltungen im Store speichern und Chatantworten erhalten. Führen Sie jedoch in Schritt 2 diesen Befehl aus, der das Feld
summarySpecenthält, mit demincludeCitationsauf „true“ gesetzt wird.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "include_citations": true } }'Klicken Sie hier, um einen Teil der Antwort auf einen Beispielbefehl zu sehen.
{ "reply": { "summary": { } "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly [1]. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data [2, 3].", "safetyAttributes": { "categories": [ "Finance", "Legal" ] …
Die Zitationsnummern sind im Zusammenfassungstext enthalten. Die Quellennummern beziehen sich auf die zurückgegebenen Suchergebnisse und sind 1-indexiert. [1] bedeutet beispielsweise, dass der Satz dem ersten Suchergebnis zugeordnet wird. [2, 3] bedeutet, dass der Satz sowohl dem zweiten als auch dem dritten Suchergebnis zugeordnet wird.
Schädliche Abfragen ignorieren
Zu den schädlichen Abfragen gehören negative Kommentare oder Abfragen, die darauf abzielen, unsichere, richtlinienwidrige Ausgaben zu generieren. Sie können festlegen, dass für schädliche Abfragen keine Suchzusammenfassungen zurückgegeben werden sollen. Wenn eine schädliche Abfrage ignoriert wird, enthält die Eigenschaft summaryText einen Standardtext, der angibt, dass keine Zusammenfassung der Suche zurückgegeben wird. Suchdokumente werden für schädliche Abfragen zurückgegeben, auch wenn keine Suchzusammenfassungen zurückgegeben werden.
So geben Sie an, dass für schädliche Abfragen keine Suchzusammenfassungen zurückgegeben werden sollen:
Folgen Sie der Anleitung unter Unterhaltungen im Store speichern und Chatantworten erhalten. Führen Sie jedoch in Schritt 2 diesen Befehl aus, der das Feld
summarySpecenthält, mit demignoreAdversarialQueryauf „true“ gesetzt wird.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "ignoreAdversarialQuery": true } }'Klicken Sie hier, um einen Teil der Antwort auf eine feindselige Anfrage zu sehen.
"reply": { "summary": { "summaryText": "A summary could not be generated for your search query. Here are some search results.", "summarySkippedReasons": [ "ADVERSARIAL_QUERY_IGNORED" ] …
Abfragen ignorieren, die nicht auf eine Zusammenfassung abzielen
Bei Abfragen, die nicht auf eine Zusammenfassung abzielen, werden Ergebnisse zurückgegeben, die sich nicht zusammenfassen lassen. Beispiele: „Warum ist der Himmel blau?“ und „Wer ist der beste Fußballspieler der Welt?“ sind Abfragen, die auf eine Zusammenfassung abzielen, „Flughafen San Francisco“ und „Fußball-Weltmeisterschaft 2026“ jedoch nicht. Meist handelt es sich um Navigationsabfragen. Sie können festlegen, dass für Abfragen, die nicht auf eine Zusammenfassung abzielen, keine Suchzusammenfassungen zurückgegeben werden sollen. Für Abfragen, die nicht auf eine Zusammenfassung abzielen, werden Suchdokumente zurückgegeben, auch wenn keine Suchzusammenfassungen zurückgegeben werden.
So geben Sie an, dass für Abfragen, die nicht auf Zusammenfassungen abzielen, keine Suchzusammenfassungen zurückgegeben werden sollen:
Folgen Sie der Anleitung unter Unterhaltungen im Store speichern und Chatantworten erhalten. Führen Sie jedoch in Schritt 2 diesen Befehl aus, der das Feld
summarySpecenthält, mit demignoreNonSummarySeekingQueryauf „true“ gesetzt wird.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "ignore_non_summary_seeking_query": true } }'Klicken Sie hier, um einen Teil der Antwort auf eine feindselige Anfrage zu sehen.
"reply": { "summary": { "summaryText": "A summary could not be generated for your search query. Here are some search results.", "summarySkippedReasons": [ "NON_SUMMARY_SEEKING_QUERY_IGNORED" ] …
Anzahl der Ergebnisse festlegen, die in der Zusammenfassung verwendet werden sollen
Sie können die Anzahl der Ergebnisse angeben, die zum Generieren der Zusammenfassung verwendet werden sollen. Wenn das Feld summaryResultCount nicht festgelegt ist, werden standardmäßig alle zurückgegebenen Ergebnisse zum Generieren der Zusammenfassung verwendet.
So legen Sie die Anzahl der Top-Ergebnisse fest, die für die Zusammenfassung verwendet werden sollen:
Folgen Sie der Anleitung unter Unterhaltungen speichern und Chatantworten erhalten. Führen Sie aber in Schritt 2 diesen Befehl aus, der das Feld
summarySpecenthält, mit demsummaryResultCountfestgelegt wird.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "summary_result_count": NUMBER_OF_RESULTS } }'NUMBER_OF_RESULTS: Die Anzahl der Top-Ergebnisse, aus denen die Suchzusammenfassung generiert werden soll. Wenn die Anzahl der zurückgegebenen Ergebnisse kleiner als
summaryResultCountist, wird die Zusammenfassung aus allen Ergebnissen generiert. Der Höchstwert ist5.
Benutzerdefinierte Zusammenfassungen abrufen
Sie können benutzerdefinierte Zusammenfassungen abrufen, indem Sie Anweisungen in natürlicher Sprache im Feld modelPromptSpec.preamble eingeben, wenn Sie eine Zusammenfassung anfordern.
Sie können Anpassungen wie Länge und Detaillierungsgrad, Ausgabestil (z. B. „einfach“), Ausgabesprache, Fokus der Antwort und Format (z. B. Tabellen, Aufzählungszeichen und XML) anfordern.
Für die Abfrage „What are the benefits of bigquery?“ (Was sind die Vorteile von BigQuery?) könnten Sie beispielsweise Anpassungsanweisungen wie in den folgenden Beispielen eingeben:
Beispielanleitung:
"please show the answer format in an ordered list"Beispielantwort:
The benefits of BigQuery are: 1. Increased business productivity 2. IT staff productivity 3. Reduced infrastructure costs 4. Loading and exporting data are freeBeispielanleitung:
give a very detailed answerBeispielantwort:
BigQuery is a serverless, highly scalable, and cost-effective cloud data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that takes care of provisioning, scaling, and managing the underlying infrastructure, so you can focus on analyzing your data. BigQuery is also integrated with other Google Cloud services, such as Google Kubernetes Engine, Cloud Data Fusion, and Cloud Dataproc, making it easy to build and deploy data pipelines. Here are some of the benefits of using BigQuery: * **Fast and scalable:** BigQuery can process petabytes of data very quickly, and it can scale to handle even the most demanding workloads. * **Cost-effective:** BigQuery is a very cost-effective way to store and analyze data. You only pay for the data that you use, and there are no upfront costs or commitments. * **Secure:** BigQuery is a secure platform that meets the needs of even the most security-conscious organizations. * **Easy to use:** BigQuery is easy to use, even for non-technical users. It has a simple and intuitive user interface, and it supports a variety of data sources. * **Integrated with other Google Cloud services:** BigQuery is integrated with other Google Cloud services, making it easy to build and deploy data pipelines. If you are looking for a fast, scalable, and cost-effective way to analyze your data, then BigQuery is a great option.
So rufen Sie eine benutzerdefinierte Zusammenfassung ab:
Folgen Sie der Anleitung Unterhaltungen speichern und Chatantworten erhalten oben. Führen Sie jedoch in Schritt 2 den folgenden Befehl aus, der das Feld
summarySpecenthält, in dem die Anpassungsanweisung inmodelPromptSpec.preambleangegeben wird.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "modelPromptSpec": { "preamble": "CUSTOMIZATION_INSTRUCTIONS" } } }'- CUSTOMIZATION_INSTRUCTIONS: Die Anleitung zur Anpassung als String.
SafeSearch auf Chatantworten anwenden
Mit SafeSearch können Sie explizite, unsichere oder richtlinienwidrige Ausgaben aus Zusammenfassungen herausfiltern. Weitere Informationen zu SafeSearch finden Sie unter Sicherheitseinstellungen für die Agent-Suche.
So wenden Sie die Funktion „SafeSearch“ auf eine Chatantwort an:
Folgen Sie der Anleitung unter Unterhaltungen speichern und Chatantworten erhalten, außer bei Schritt 2. Geben Sie dort
safe_searchin die Anfrage ein.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "safe_search": true }'
Gespeicherte Unterhaltungen ansehen und ändern
Sie können die Befehlszeile verwenden, um gespeicherte Unterhaltungen abzurufen, zu löschen, zu aktualisieren und aufzulisten.
Unterhaltung aus dem Datenspeicher abrufen
So rufen Sie alle Details zu einer bestimmten Unterhaltung aus einem Datenspeicher ab:
Führen Sie den folgenden curl-Befehl aus:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID"PROJECT_ID: Die Projektnummer oder ‑ID Ihres Google Cloud -Projekts
DATA_STORE_ID:Die ID des Datenspeichers, der mit Ihrer App verknüpft ist.
CONVERSATION_ID: Die ID der Unterhaltung
Klicken Sie hier, um eine Beispielantwort auf den Befehl
GETzu sehen.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/2040473575290303058", "state": "IN_PROGRESS", "userPseudoId": "2040473575290303058", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:11:24.046735Z" }
Unterhaltung aus dem Datenspeicher löschen
Standardmäßig werden Unterhaltungen, die älter als 60 Tage sind, automatisch gelöscht. Wenn Sie jedoch eine bestimmte Unterhaltung löschen möchten, z. B. weil sie versehentlich sensible Inhalte enthielt, verwenden Sie diesen API-Aufruf.
So löschen Sie eine Unterhaltung aus einem Datenspeicher:
Führen Sie den folgenden curl-Befehl aus:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID"PROJECT_ID: Die Projektnummer oder ‑ID Ihres Google Cloud -Projekts
DATA_STORE_ID: Die ID des Datenspeichers, der mit Ihrer App verknüpft ist.
CONVERSATION_ID: Die ID der Unterhaltung
Die Antwort auf den Befehl
DELETEsieht so aus:{}
Unterhaltung aktualisieren
Zum Aktualisieren einer Unterhaltung kann es verschiedene Gründe geben. Hier einige Beispiele:
Unterhaltungen als abgeschlossen markieren
Nachrichten aus einer Unterhaltung in eine andere zusammenführen
user_pseudo_idändern
So aktualisieren Sie die state in einer Unterhaltung:
Führen Sie den folgenden curl-Befehl aus:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID?updateMask=state" \ -d '{ "state": "NEW_STATE" }'PROJECT_ID: Die Projektnummer oder ‑ID Ihres Google Cloud -Projekts
DATA_STORE_ID: Die ID des Datenspeichers, der mit Ihrer App verknüpft ist.
CONVERSATION_ID: die ID der Unterhaltung, die Sie aktualisieren möchten
NEW_STATE: Der neue Wert für den Status, z. B.
COMPLETED.
Klicken Sie hier, um eine Beispielantwort auf den Befehl
PATCHzu sehen.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "COMPLETED", "userPseudoId": "test_id1", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }
So aktualisieren Sie die user_pseudo_id in einer Unterhaltung:
Führen Sie den folgenden curl-Befehl aus:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID?updateMask=user_pseudo_id" \ -d '{ "user_pseudo_id": "NEW_USER_PSEUDO_ID" }'PROJECT_ID: Die Projektnummer oder ‑ID Ihres Google Cloud -Projekts
DATA_STORE_ID: Die ID des Datenspeichers, der mit Ihrer App verknüpft ist.
CONVERSATION_ID: Die ID der Unterhaltung, die Sie aktualisieren möchten
NEW_USER_PSEUDO_ID: Der neue Wert für die pseudonymisierte Nutzer-ID
Klicken Sie hier, um eine Beispielantwort auf den Befehl
PATCHzu sehen.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id1", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }
Im vorherigen Befehl wird gezeigt, wie Sie user_pseudo_id. ändern. Sie können jedoch auch andere Felder in der Unterhaltung aktualisieren, indem Sie user_pseudo_id durch andere Felder in der Conversation-Ressource ersetzen.
Alle Unterhaltungen auflisten
So listen Sie alle Unterhaltungen in einem Datenspeicher auf:
Führen Sie den folgenden curl-Befehl aus:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations"PROJECT_ID: Die Projektnummer oder ‑ID Ihres Google Cloud -Projekts
DATA_STORE_ID: Die ID des Datenspeichers, der mit Ihrer App verknüpft ist.
Klicken Sie hier, um eine Beispielantwort auf den Befehl
GETzu sehen.{ "conversations": [ { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }, { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/2040473575290303058", "state": "IN_PROGRESS", "userPseudoId": "2040473575290303058", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ] } ] }
Die Antwort enthält eine Liste von Unterhaltungen und die next_page_token. Wenn kein next_page_token zurückgegeben wird, sind keine weiteren Unterhaltungen zum Auflisten vorhanden.
Die Standardseitengröße ist 50.
Unterhaltungen nach Filter auflisten
Anstatt alle Unterhaltungen in einem Datenspeicher aufzulisten, möchten Sie vielleicht alle offenen Unterhaltungen oder alle Unterhaltungen, die einem bestimmten Nutzer zugeordnet sind, auflisten.
Sie könnten dem Nutzer beispielsweise seine geschlossenen Suchanfragen mit der Option präsentieren, eine davon wieder zu öffnen.
Dazu listen Sie Konversationen auf, die einem bestimmten Filter entsprechen:
user_pseudo_id
oder
state
(IN_PROGRESS oder COMPLETED).
Unterhaltungen für einen Nutzer auflisten
So listen Sie Unterhaltungen auf, die mit einem Nutzer oder Besucher verknüpft sind:
Führen Sie den folgenden curl-Befehl aus:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations?filter=user_pseudo_id=USER_PSEUDO_ID"PROJECT_ID: Die Projektnummer oder ‑ID Ihres Google Cloud -Projekts
DATA_STORE_ID: Die ID des Datenspeichers, der mit Ihrer App verknüpft ist.
USER_PSEUDO_ID: Die Pseudo-ID des Nutzers, dessen Unterhaltungen Sie auflisten möchten.
Die Antwort des
GET-Befehls sieht in etwa so aus:Klicken Sie hier, um eine Beispielantwort auf den Befehl
GETzu sehen.{ "conversations": [ { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" } ] }
Unterhaltungen für einen Nutzer und einen Status auflisten
So listen Sie Unterhaltungen in einem bestimmten Status (offen oder geschlossen) auf, die mit einem Nutzer oder Besucher verknüpft sind:
Führen Sie den folgenden curl-Befehl aus:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations?filter=user_pseudo_id=USER_PSEUDO_ID%20AND%20state=STATE"PROJECT_ID: Die Projektnummer oder ‑ID Ihres Google Cloud -Projekts
DATA_STORE_ID: Die ID des Datenspeichers, der mit Ihrer App verknüpft ist.
USER_PSEUDO_ID: Die Pseudo-ID des Nutzers, dessen Unterhaltungen Sie auflisten möchten.
STATE: Gibt an, ob die Unterhaltung offen oder geschlossen ist (
IN_PROGRESSoderCOMPLETED).
Die Antwort des
GET-Befehls sieht in etwa so aus:Klicken Sie hier, um eine Beispielantwort auf den Befehl
GETzu sehen.{ "conversations": [ { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" } ] }
Allgemeine Informationen zur Filtersyntax finden Sie unter AIP-160 – Filtern.
Ähnliche Fragen
„Ähnliche Fragen“ ist eine Vorabversion mit Zulassungsliste, die zusätzlich zu den Suchergebnissen auch ähnliche Fragen zurückgeben kann.
Wenn Sie beispielsweise fragen: „Wann ist die beste Reisezeit für Mexiko?“, werden Ihnen nicht nur Antworten auf Ihre Frage, sondern auch weitere Fragen vorgeschlagen, die Sie stellen könnten, z. B. „In welchem Monat ist eine Reise nach Mexiko am günstigsten?“ und „Wann ist in Mexiko Hochsaison?“.
Wenn Ihre Such-App ähnliche Fragen zurückgeben soll, wenden Sie sich an Ihr Google-Kontoteam und teilen Sie ihm mit, für welche Projekte und Apps Sie ähnliche Fragen aktivieren möchten. Wenn Sie nicht die Standardbereitstellungskonfiguration verwenden, müssen Sie auch den Namen der Bereitstellungskonfiguration angeben.
Nachdem die Funktion für ähnliche Fragen aktiviert wurde, werden Fragen als Strings in der ConverseConversationResponse zurückgegeben.
Weitere Informationen
Weitere Informationen zu den Feldern
summaryResultCount,includeCitations,ignoreAdversarialQueryundignoreNonSummarySeekingQueryfinden Sie in der Dokumentation zur Agent Search API unter SummarySpec.Weitere Beispiele zum Abrufen von Suchzusammenfassungen finden Sie unter Zusammenfassungen abrufen.