É possível atualizar o esquema de qualquer dado que ofereça suporte a um esquema, como dados estruturados, dados de sites com dados estruturados, ou outros dados não estruturados com metadados.
É possível atualizar o esquema no Google Cloud console ou usando o
método da
schemas.patch API.
A atualização do esquema de um site só é compatível com a API REST.
Para atualizar o esquema, adicione novos campos, mude as anotações indexáveis, pesquisáveis e recuperáveis de um campo ou marque um campo como uma propriedade principal, como title, uri e description.
Antes de começar
Antes de atualizar o esquema, entenda os conceitos principais explicados nesta seção.
Importância das propriedades principais
Confira alguns motivos para mapear os campos do esquema para as propriedades principais:
O Google recomenda que você atualize o esquema com mapeamentos de propriedades principais, especialmente para
title. Isso garante que os resultados sejam exibidos corretamente e ajuda a Pesquisa do agente a identificar informações importantes que permitem gerar resultados melhores.Em repositórios de dados estruturados, para receber o
keywordSimilarityScoreindicador em sua resposta da pesquisa, você deve atualizar seu esquema para fazer o seguinte:- Mapeie os campos de texto essenciais para a correspondência de palavras-chave para as propriedades principais
titleedescription. - Atualize a anotação dos campos de texto como
Searchable.
- Mapeie os campos de texto essenciais para a correspondência de palavras-chave para as propriedades principais
Requisitos
Ao atualizar um esquema, verifique se o novo esquema é compatível com versões anteriores do que você está atualizando. Para atualizar um esquema com um novo esquema que não seja compatível com versões anteriores, exclua todos os documentos no repositório de dados, exclua o esquema e crie um novo.
A atualização de um esquema aciona a reindexação de todos os documentos. Isso pode levar tempo e gerar custos adicionais:
Tempo. A reindexação de um repositório de dados grande pode levar horas ou dias.
Despesa. A reindexação pode gerar custos, dependendo do analisador. Por exemplo, a reindexação de repositórios de dados que usam o analisador de OCR ou o analisador de layout gera custos. Para mais informações, consulte Preços dos recursos da Document AI.
Impacto no serviço. A reindexação pode levar a serviços lentos ou indisponíveis, especialmente para repositórios de dados grandes. O Google recomenda que você planeje as atualizações de esquema de acordo com a possível inatividade de aplicativos críticos.
As atualizações de esquema não oferecem suporte ao seguinte:
- Mudança de um tipo de campo. Uma atualização de esquema não oferece suporte à mudança do tipo de campo. Por exemplo, um campo mapeado para
integernão pode ser alterado parastring. - Remoção de um campo. Depois de definido, um campo não pode ser removido. É possível continuar adicionando novos campos, mas não é possível remover um campo existente.
Atualizar o esquema
É possível atualizar o esquema no Google Cloud console ou usando a API.
Console
Para atualizar um esquema no Google Cloud console, siga estas etapas:
Consulte a seção Requisitos e limitações para verificar se a atualização do esquema é válida.
Se você estiver atualizando anotações de campo (definindo campos como indexáveis, recuperáveis, facetáveis dinâmicos, pesquisáveis ou completáveis), consulte Configurar as definições de campo para as limitações e requisitos de cada tipo de anotação.
Verifique se você concluiu a ingestão de dados. Caso contrário, o esquema ainda não estará disponível para edição.
No Google Cloud console, acesse a página Aplicativos de IA.
No menu de navegação, selecione Repositório de dados.
Na coluna Nome, clique no repositório de dados com o esquema que você quer atualizar.
Clique na guia Esquema para conferir o esquema dos seus dados.
Essa guia poderá estar vazia se for a primeira vez que você edita os campos.
Clique no botão Editar.
Atualize o esquema:
Mapear propriedades principais:na coluna Propriedades principais do esquema, selecione uma propriedade principal para mapear um campo. Por exemplo, se um campo chamado
detailssempre contiver a descrição de um documento, mapeie esse campo para a propriedade principal Descrição.Atualizar o número de dimensões (avançado): é possível atualizar esta configuração se você estiver usando embeddings de vetor personalizados com a Pesquisa do agente. Consulte Avançado: usar embeddings personalizados.
Atualizar anotações de campo:para atualizar as anotações de um campo, selecione ou desmarque a configuração de anotação de um campo. As anotações disponíveis são Recuperável, Indexável, Facetável dinâmico, Pesquisável e Completável. Algumas configurações de campo têm limitações. Consulte Configurar as definições de campo para descrições e requisitos de cada tipo de anotação.
Adicionar um novo campo:adicionar novos campos ao esquema antes de importar novos documentos com esses campos pode reduzir o tempo necessário para a Pesquisa do agente reindexar os dados após a importação.
Clique em Adicionar novos campos para expandir essa seção.
Clique em add_box Adicionar nó e especifique as configurações do novo campo.
Para indicar uma matriz, defina Matriz como Sim. Por exemplo, para adicionar uma matriz de strings, defina tipo como
stringe Matriz comoYes.Para um índice de repositório de dados de site, todos os campos adicionados são matrizes por padrão.
Clique em Salvar para aplicar as mudanças de esquema.
A mudança do esquema aciona a reindexação. Para repositórios de dados grandes, a reindexação pode levar horas.
REST
Para usar a API para atualizar o esquema, siga estas etapas:
Consulte as seções Requisitos e limitações e Exemplos de limitações (somente REST) para verificar se as mudanças de esquema são válidas.
Para atualizar o esquema de repositórios de dados com sites ou dados não estruturados com metadados, pule para a etapa 5 para chamar o método
schema.patch.Se você estiver atualizando anotações de campo (definindo campos como indexáveis, recuperáveis, facetáveis dinâmicos ou pesquisáveis), consulte Configurar as definições de campo para as limitações e requisitos de cada tipo de anotação.
Se você estiver editando um esquema detectado automaticamente, verifique se concluiu a ingestão de dados. Caso contrário, o esquema ainda não estará disponível para edição.
Encontre o ID do repositório de dados. Se você já tiver o ID do repositório de dados, pule para a próxima etapa.
No Google Cloud console, acesse a página Aplicativos de IA e no menu de navegação, clique em Repositórios de dados.
Clique no nome do seu repositório de dados.
Na página Dados do seu repositório de dados, encontre o ID do repositório.
Use o método da API schemas.patch para fornecer seu novo esquema JSON como um objeto JSON.
curl -X PATCH \ -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/dataStores/DATA_STORE_ID/schemas/default_schema" \ -d '{ "structSchema": JSON_SCHEMA_OBJECT }'Substitua:
PROJECT_ID: o ID do Google Cloud projeto.DATA_STORE_ID: o ID do repositório de dados da Pesquisa do agente.JSON_SCHEMA_OBJECT: seu novo esquema JSON como um objeto JSON. Exemplo:{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "keyPropertyMapping": "title" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } }, "uri": { "type": "string", "keyPropertyMapping": "uri" } } }
Opcional: revise o esquema seguindo o procedimento Conferir uma definição de esquema.
C#
Para mais informações, consulte a Pesquisa do agente C# API documentação de referência.
Para autenticar na Pesquisa do agente, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a Pesquisa do agente Go API documentação de referência.
Para autenticar na Pesquisa do agente, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a Pesquisa do agente Java API documentação de referência.
Para autenticar na Pesquisa do agente, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a Pesquisa do agente Python API documentação de referência.
Para autenticar na Pesquisa do agente, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Pesquisa do agente Ruby .
Para autenticar na Pesquisa do agente, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Exemplos de limitações (somente REST)
Esta seção mostra exemplos de tipos válidos e inválidos de atualizações de esquema. Esses exemplos usam o seguinte esquema JSON:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string",
"keyPropertyMapping": "description"
},
"categories": {
"type": "array",
"items": {
"type": "string",
"keyPropertyMapping": "category"
}
}
}
}
Exemplos de atualizações aceitas
As seguintes atualizações do esquema de exemplo são aceitas.
Adicionar um campo. Neste exemplo, o campo
properties.urifoi adicionado ao esquema.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string", "keyPropertyMapping": "description" }, "uri": { // Added field. This is supported. "type": "string", "keyPropertyMapping": "uri" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }Adicionar ou remover anotações de propriedade principal para
title,descriptionouuri. Neste exemplo,keyPropertyMappingfoi adicionado ao campotitle.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "keyPropertyMapping": "title" // Added "keyPropertyMapping". This is supported. }, "description": { "type": "string", "keyPropertyMapping": "description" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }
Exemplos de atualizações de esquema inválidas
As seguintes atualizações do esquema de exemplo não são aceitas.
Mudança de um tipo de campo. Neste exemplo, o tipo do campo
titlefoi alterado de string para número. Isso está indisponível.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "number" // Changed from string. Not allowed. }, "description": { "type": "string", "keyPropertyMapping": "description" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }Remoção de um campo. Neste exemplo, o campo
titlefoi removido. Isso está indisponível.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { // "title" is removed. Not allowed. "description": { "type": "string", "keyPropertyMapping": "description" }, "uri": { "type": "string", "keyPropertyMapping": "uri" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }
A seguir
- Conferir a definição de esquema para dados estruturados
- Excluir um esquema de dados estruturados
- Visualizar os resultados da pesquisa