Esta página apresenta a pesquisa com acompanhamentos para a Vertex AI Search e mostra como implementá-la usando chamadas de API.
Se quiser adicionar a pesquisa com acompanhamento ao widget de pesquisa, consulte Configurar resultados para o widget de pesquisa.
A pesquisa com acompanhamento se aplica a apps de pesquisa com dados não estruturados e sites.
Sobre a Pesquisa com acompanhamentos
A pesquisa com acompanhamento é baseada em modelos de IA generativa. A pesquisa com acompanhamento é diferente da pesquisa regular de dados não estruturados porque ela considera consultas anteriores na mesma sessão de pesquisa.
A pesquisa com acompanhamentos é compatível com o seguinte:
Processamento de consultas em linguagem natural:processa e entende a entrada de linguagem humana, identifica a intenção por trás de uma consulta e retorna resultados relevantes.
Consciência do contexto:entende o contexto das interações anteriores e fornece respostas contextuais.
Multiturno:permite que os usuários façam perguntas de acompanhamento e recebam respostas relevantes.
Exemplo de pesquisa com acompanhamentos
Confira a seguir um exemplo de pesquisa com acompanhamentos. Imagine que você queira saber sobre férias no México:
Você:Qual é a melhor época do ano para passar as férias no México?
Pesquisa com acompanhamento:a melhor época para passar férias no México é durante a estação seca, que vai de novembro a abril.
Você:Qual é a taxa de câmbio?
Pesquisa com acompanhamento:US$ 1 equivale a aproximadamente 17,65 pesos mexicanos.
Você:Qual é a temperatura média em dezembro?
Pesquisar com acompanhamentos:a temperatura média varia de 21 a 26 °C. A média de Cancún é de aproximadamente 25 °C.
Com a pesquisa normal, a pergunta "Qual é a taxa de câmbio?" não teria resposta porque a pesquisa normal não saberia que você queria a taxa de câmbio do México. Da mesma forma, uma pesquisa comum não manteria o contexto para fornecer temperaturas do México.
Sobre conversas
Na pesquisa com acompanhamento, uma conversa é composta de consultas de texto fornecidas por um usuário e respostas fornecidas pela Vertex AI para Pesquisa.
Esses pares de consulta e resposta às vezes são chamados de mensagens. No exemplo anterior, a segunda mensagem é composta por "Qual é a taxa de câmbio?" e "US$ 1 é igual a aproximadamente 17,65 pesos mexicanos".
As conversas são armazenadas no mesmo repositório de dados em que os dados não estruturados são mantidos. No repositório de dados, uma conversa é representada pelo recurso Conversation. Além de conter as mensagens de consulta e resposta, o recurso de conversa tem:
Um nome exclusivo (o ID da conversa).
Um estado (em andamento ou concluído).
Um pseudoID do usuário, que é um ID de visitante que rastreia o usuário. Ele pode ser atribuído de forma programática.
Um horário de início e um de término.
Antes de começar
Verifique se você atende aos seguintes pré-requisitos. Os requisitos variam de acordo com o tipo de app.
Se você tiver um app de pesquisa não estruturada, verifique se a opção Recursos avançados do LLM está ativada.
Se você tiver um app de pesquisa em sites, verifique se as seguintes opções estão ativadas:
Armazenar conversas e receber respostas
É possível usar a linha de comando ou as bibliotecas de cliente para gerar respostas de pesquisa e armazenar a conversa de pesquisa com acompanhamento.
REST
Para usar a linha de comando e criar uma conversa e gerar respostas com base na entrada do usuário, siga estas etapas:
Especifique o repositório de dados em que você quer armazenar o histórico de conversas:
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: o número ou ID do seu projeto do Google Cloud
DATA_STORE_ID: o ID do repositório de dados associado ao seu app.
USER_PSEUDO_ID: identificador exclusivo para rastrear um visitante da pesquisa. Por exemplo, é possível implementar isso com um cookie HTTP, que identifica um visitante de maneira exclusiva em um único dispositivo.
Clique para ver um exemplo de resposta do comando
POST
.{ "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" }
Gere uma resposta de pesquisa e adicione-a a uma conversa nova ou existente no repositório de dados:
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: o número ou ID do seu projeto do Google Cloud
DATA_STORE_ID: o ID do repositório de dados associado ao seu app.
CONVERSATION_ID: um ID exclusivo para a conversa, por exemplo,
123456
. Para uma conversa de pesquisa com acompanhamento, use o mesmo ID em todos os turnos.FREE_TEXT: uma string de texto livre que contém a pergunta do usuário. Por exemplo,
what is bigquery?
.FILTER: um campo de texto para filtrar a pesquisa usando uma expressão de filtro. O valor padrão é uma string vazia. A maneira de criar o filtro varia dependendo se você tem dados do site ou dados não estruturados com metadados. Para mais informações, consulte Filtrar pesquisas com acompanhamentos.
Clique para ver um exemplo de resposta do comando
POST
.{ "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." } ] } } } ] }
Repita a etapa 2 para cada nova pergunta na conversa.
Python
Para mais informações, consulte a documentação de referência da API Python de aplicativos de IA.
Para autenticar no AI Applications, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Filtrar pesquisas com acompanhamentos
Ao fazer uma consulta com a pesquisa com acompanhamento, você pode incluir o campo filter
para restringir o conjunto de documentos de que uma resposta é derivada. Você
cria o filtro usando expressões de filtro. As expressões de filtro que você usa variam dependendo se você tem dados de sites ou dados não estruturados com metadados.
Expressões de filtro para dados do site
Se você tiver um repositório de dados com dados de sites, poderá filtrar sua pesquisa com
consultas de acompanhamento usando as expressões de filtro em Expressões de filtro com
indexação avançada de sites. Depois de
criar a expressão de filtro, use-a como o valor do campo filter
na
etapa 2 de Armazenar conversas e receber respostas.
Expressões de filtro para dados não estruturados com metadados
Se você tiver um repositório de dados com dados não estruturados e metadados, poderá filtrar sua pesquisa com uma consulta de acompanhamento para que ela retorne documentos com base nos campos de metadados que eles contêm. Consulte Filtrar a pesquisa por dados estruturados ou não estruturados para entender como usar metadados e filtrar a pesquisa comum (sem acompanhamentos). Você pode usar esses mesmos princípios
para filtrar a pesquisa com acompanhamentos usando metadados. Depois de criar a expressão de filtro, use-a como valor do campo filter
na etapa 2 de Armazenar conversas e receber respostas.
Configurar o resumo
A mensagem de resposta da pesquisa com acompanhamentos é um resumo gerado retornado
em summaryText
. Há várias maneiras de configurar o resumo gerado. Elas são descritas nas seções a seguir:
- Receber citações com resultados da pesquisa
- Ignorar consultas adversárias
- Ignorar consultas que não buscam um resumo
- Definir o número de resultados a serem usados no resumo
- Receber resumos personalizados
- Aplicar o SafeSearch às respostas do chat
Receber citações com resultados da pesquisa
As citações, quando especificadas, são números colocados em linha em um resumo da pesquisa. Esses números indicam de quais resultados de pesquisa frases específicas no resumo foram retiradas.
Para receber citações:
Siga o procedimento Armazenar conversas e receber respostas de chat, exceto na etapa 2. Execute este comando que inclui o campo
summarySpec
, que defineincludeCitations
como "true".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 } }'
Clique para ver parte da resposta de um comando de exemplo.
{ "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" ] …
Os números das citações estão incluídos no texto do resumo. Os números das citações se referem aos resultados da pesquisa retornados e são indexados em 1. Por exemplo, [1]
significa que a frase é atribuída ao primeiro resultado da pesquisa. [2, 3]
significa que a frase é atribuída ao segundo e ao terceiro resultados da pesquisa.
Ignorar consultas adversárias
Consultas adversárias incluem comentários negativos ou são projetadas para gerar resultados não seguros e que violam a política. Você pode especificar que nenhum resumo de pesquisa seja retornado para consultas adversárias. Quando uma consulta adversária é ignorada, a propriedade
summaryText
contém texto padrão indicando que nenhum resumo da pesquisa
foi retornado. Os documentos de pesquisa são retornados para consultas adversárias, mesmo que os resumos de pesquisa não sejam.
Para especificar que nenhum resumo de pesquisa deve ser retornado para consultas adversárias:
Siga o procedimento Armazenar conversas e receber respostas de chat, exceto na etapa 2. Execute este comando que inclui o campo
summarySpec
, que defineignoreAdversarialQuery
como "true".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 } }'
Clique para ver parte da resposta de uma consulta adversária.
"reply": { "summary": { "summaryText": "A summary could not be generated for your search query. Here are some search results.", "summarySkippedReasons": [ "ADVERSARIAL_QUERY_IGNORED" ] …
Ignorar consultas que não buscam um resumo
Consultas que não buscam resumos retornam resultados que não são adequados para resumo. Por exemplo, "por que o céu é azul" e "quem é o melhor jogador de futebol do mundo?" são consultas que buscam um resumo, mas "aeroporto de SFO" e "copa do mundo 2026" não são. Provavelmente são consultas de navegação. Você pode especificar que nenhum resumo de pesquisa seja retornado para consultas que não buscam resumos. Os documentos de pesquisa são retornados para consultas que não buscam resumos, mesmo que os resumos de pesquisa não sejam.
Para especificar que nenhum resumo de pesquisa deve ser retornado para consultas que não buscam resumos:
Siga o procedimento Armazenar conversas e receber respostas de chat, exceto na etapa 2. Execute este comando que inclui o campo
summarySpec
, que defineignoreNonSummarySeekingQuery
como "true".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 } }'
Clique para ver parte da resposta de uma consulta adversária.
"reply": { "summary": { "summaryText": "A summary could not be generated for your search query. Here are some search results.", "summarySkippedReasons": [ "NON_SUMMARY_SEEKING_QUERY_IGNORED" ] …
Definir o número de resultados a serem usados no resumo
Você pode especificar o número de resultados a serem usados na geração do resumo. Por padrão, se o campo summaryResultCount
não estiver definido, todos os resultados retornados serão usados para gerar o resumo.
Para definir o número de principais resultados a serem usados no resumo:
Siga o procedimento Armazenar conversas e receber respostas por chat, exceto na etapa 2. Execute este comando que inclui o campo
summarySpec
, que definesummaryResultCount
.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: o número de principais resultados para gerar o resumo da pesquisa. Se o número de resultados retornados for menor que
summaryResultCount
, o resumo será gerado com base em todos os resultados. O valor máximo é5
.
Receba resumos personalizados
Você pode receber resumos personalizados fornecendo instruções em linguagem natural no campo modelPromptSpec.preamble
ao solicitar um resumo.
Você pode pedir personalizações como tamanho e nível de detalhes, estilo de saída (como "simples"), idioma da saída, foco da resposta e formato (como tabelas, marcadores e XML).
Por exemplo, para a consulta "Quais são os benefícios do BigQuery?", você pode inserir instruções de personalização como os exemplos a seguir:
Exemplo de instrução:
"please show the answer format in an ordered list"
Exemplo de resposta:
The benefits of BigQuery are: 1. Increased business productivity 2. IT staff productivity 3. Reduced infrastructure costs 4. Loading and exporting data are free
Exemplo de instrução:
give a very detailed answer
Exemplo de resposta:
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.
Para receber um resumo personalizado:
Siga o procedimento Armazenar conversas e receber respostas de chat, exceto na etapa 2. Execute este comando que inclui o campo
summarySpec
, que especifica a instrução de personalização emmodelPromptSpec.preamble
.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: a instrução para personalização, como uma string.
Aplicar o SafeSearch às respostas do chat
O SafeSearch pode ser usado para filtrar conteúdo explícito, não seguro e que viola a política das respostas geradas por resumo. Para mais informações sobre o SafeSearch, consulte Configurações de segurança da Vertex AI para Pesquisa.
Para aplicar a Pesquisa Segura a uma resposta do chat:
Siga o procedimento Armazenar conversas e receber respostas por chat, exceto na etapa 2. Na consulta, especifique
safe_search
.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 }'
Acessar e modificar conversas armazenadas
É possível usar a linha de comando para receber, excluir, atualizar e listar conversas armazenadas.
Receber uma conversa do repositório de dados
Para conferir todos os detalhes de uma conversa específica de um repositório de dados:
Execute o seguinte comando curl:
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: o número ou ID do seu projeto do Google Cloud
DATA_STORE_ID:o ID do repositório de dados associado ao seu app.
CONVERSATION_ID: o ID da conversa
Clique para ver um exemplo de resposta do comando
GET
.{ "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" }
Excluir uma conversa do repositório de dados
Por padrão, as conversas com mais de 60 dias são excluídas automaticamente. No entanto, se você quiser excluir uma conversa específica, por exemplo, se ela tiver conteúdo sensível por engano, use essa chamada de API para excluir.
Para excluir uma conversa de um repositório de dados:
Execute o seguinte comando curl:
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: o número ou ID do seu projeto do Google Cloud
DATA_STORE_ID: o ID do repositório de dados associado ao seu app.
CONVERSATION_ID: o ID da conversa
A resposta do comando
DELETE
é assim:{}
Atualizar uma conversa
Há vários motivos para atualizar uma conversa. Por exemplo, para fazer uma das seguintes ações:
Marcar uma conversa como "Concluída"
Mesclar as mensagens de uma conversa em outra
Mudar o
user_pseudo_id
Para atualizar o state
em uma conversa:
Execute o seguinte comando curl:
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: o número ou ID do seu projeto do Google Cloud
DATA_STORE_ID: o ID do repositório de dados associado ao seu app.
CONVERSATION_ID: o ID da conversa que você quer atualizar.
NEW_STATE: o novo valor do estado. Por exemplo,
COMPLETED
Clique para ver um exemplo de resposta do comando
PATCH
.{ "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" }
Para atualizar o user_pseudo_id
em uma conversa:
Execute o seguinte comando curl:
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: o número ou ID do seu projeto do Google Cloud
DATA_STORE_ID: o ID do repositório de dados associado ao seu app.
CONVERSATION_ID: o ID da conversa que você quer atualizar
NEW_USER_PSEUDO_ID: o novo valor do ID pseudônimo do usuário
Clique para ver um exemplo de resposta do comando
PATCH
.{ "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" }
O comando anterior mostra como mudar o user_pseudo_id.
. No entanto, é possível atualizar outros campos na conversa substituindo user_pseudo_id
por outros campos no recurso Conversation.
Listar todas as conversas
Para listar todas as conversas em um repositório de dados:
Execute o seguinte comando curl:
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: o número ou ID do seu projeto do Google Cloud
DATA_STORE_ID: o ID do repositório de dados associado ao seu app.
Clique para ver um exemplo de resposta do comando
GET
.{ "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." } } } ] } ] }
A resposta contém uma lista de conversas e o next_page_token
. Se nenhum
next_page_token
for retornado, não haverá mais conversas para listar.
O tamanho de página padrão é 50.
Listar conversas por filtro
Em vez de listar todas as conversas em um repositório de dados, talvez você queira listar todas as conversas abertas ou todas as conversas associadas a um usuário específico.
Por exemplo, você pode apresentar ao usuário as pesquisas fechadas com uma opção para reabrir uma delas.
Para fazer isso, liste as conversas que correspondem a um determinado filtro:
user_pseudo_id
ou
state
(IN_PROGRESS
ou COMPLETED
).
Listar conversas de um usuário
Para listar conversas associadas a um usuário ou visitante:
Execute o seguinte comando curl:
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: o número ou ID do seu projeto do Google Cloud
DATA_STORE_ID: o ID do repositório de dados associado ao seu app.
USER_PSEUDO_ID: o ID pseudônimo do usuário cujas conversas você quer listar.
A resposta do comando
GET
será parecida com esta:Clique para ver um exemplo de resposta do comando
GET
.{ "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" } ] }
Listar conversas de um usuário e um estado
Para listar conversas em um estado específico (aberta ou fechada) e associadas a um usuário ou visitante:
Execute o seguinte comando curl:
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: o número ou ID do seu projeto do Google Cloud
DATA_STORE_ID: o ID do repositório de dados associado ao seu app.
USER_PSEUDO_ID: o ID pseudônimo do usuário cujas conversas você quer listar.
STATE: indica se a conversa está aberta ou fechada (
IN_PROGRESS
ouCOMPLETED
)
A resposta do comando
GET
será parecida com esta:Clique para ver um exemplo de resposta do comando
GET
.{ "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" } ] }
Para informações gerais sobre a sintaxe de filtragem, consulte AIP-160: filtragem.
Perguntas relacionadas
As perguntas relacionadas são um recurso de pré-lançamento com lista de permissão que pode retornar perguntas relacionadas além dos resultados da pesquisa.
Por exemplo, quando você pergunta "Qual é a melhor época do ano para passar férias no México?", além de responder à sua pergunta, a pesquisa sugere outras perguntas que você pode fazer, como "Qual é o mês mais barato para passar férias no México?" e "Quais são os meses de alta temporada no México?".
Se você quiser que o app de pesquisa retorne perguntas relacionadas, entre em contato com a equipe da sua Conta do Google e informe em quais projetos e apps você quer ativar esse recurso. Se você não estiver usando a configuração de veiculação padrão, também precisará informar o nome dela.
Depois que o recurso de perguntas relacionadas é ativado, as perguntas são retornadas como
strings no ConverseConversationResponse
.
Mais informações
Para mais informações sobre os campos
summaryResultCount
,includeCitations
,ignoreAdversarialQuery
eignoreNonSummarySeekingQuery
, consulte SummarySpec na documentação da API AI Applications.Para mais exemplos de como receber resumos de pesquisa, consulte Receber resumos.