É possível atualizar os dados estruturados e os dados não estruturados com metadados que são compatíveis com um esquema.
É possível atualizar o esquema no console do Google Cloud ou usando o
método de API schemas.patch.
Para atualizar o esquema, é possível adicionar novos campos, mudar as anotações indexáveis, pesquisáveis e
recuperáveis de um campo ou marcar um campo como uma propriedade de chave, como
title, uri e description.
Atualizar o esquema
É possível atualizar o esquema no console do Google Cloud ou usando a API.
Console
Para atualizar um esquema no console do Google Cloud , 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 as anotações de campo (definindo campos como indexáveis, recuperáveis, com tabelas dinâmicas, pesquisáveis ou completáveis), consulte Definir configurações de campo para saber as limitações e os requisitos de cada tipo de anotação.
Verifique se você concluiu a ingestão de dados. Caso contrário, talvez o esquema ainda não esteja disponível para edição.
No console Google Cloud , acesse a página Gemini Enterprise.
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 pode estar vazia se for a primeira vez que você edita os campos.
Clique no botão Editar.
Atualize o esquema:
Mapear propriedades de chave: na coluna Propriedades de chave do esquema, selecione uma propriedade de chave para mapear um campo. Por exemplo, se um campo chamado
detailssempre tiver a descrição de um documento, mapeie esse campo para a propriedade de chave Descrição.Atualizar o número de dimensões (avançado): é possível atualizar essa configuração se você estiver usando embeddings de vetor personalizados com o Gemini Enterprise. Consulte Usar embeddings personalizados na documentação do Agent Search.
Atualizar as anotações de campo: para atualizar as anotações de um campo, marque ou desmarque a configuração de anotação de um campo. As anotações disponíveis são Recuperável, Indexável, Tabela dinâmica, Pesquisável e Concluível. Algumas configurações de campo têm limitações. Consulte Definir as configurações de campo para ver as descrições e os 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 que o Gemini Enterprise leva para reindexar seus dados após a importação.
Clique em Adicionar novos campos para abrir a 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 type como
stringe Array comoYes.
Clique em Salvar para aplicar as mudanças no esquema.
A alteração 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 seu esquema, siga estas etapas:
Consulte as seções Requisitos e limitações e Exemplos de limitação (somente REST) para verificar se as mudanças no esquema são válidas.
Para atualizar o esquema de repositórios de dados não estruturados com metadados, pule para a Etapa 5 e chame o método
schema.patch.Se você estiver atualizando as anotações de campo (definindo campos como indexáveis, recuperáveis, pesquisáveis ou com tabelas dinâmicas), consulte Definir configurações de campo para ver as limitações e os 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, talvez o esquema ainda não esteja disponível para edição.
Encontre o ID do seu repositório de dados. Se você já tiver o ID do repositório de dados, pule para a próxima etapa.
No console do Google Cloud , acesse a página Gemini Enterprise 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 de API schemas.patch para fornecer o 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: ID do projeto.DATA_STORE_ID: o ID do repositório de dados.JSON_SCHEMA_OBJECT: o 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 Ver uma definição de esquema.
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no guia de início rápido do Gemini Enterprise: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Gemini Enterprise C#.
Para se autenticar no Gemini Enterprise, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no guia de início rápido do Gemini Enterprise: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Gemini Enterprise Go.
Para se autenticar no Gemini Enterprise, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no guia de início rápido do Gemini Enterprise: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Gemini Enterprise Java.
Para se autenticar no Gemini Enterprise, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no guia de início rápido do Gemini Enterprise: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Gemini Enterprise Python.
Para se autenticar no Gemini Enterprise, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Antes de testar este exemplo, siga as instruções de configuração do Ruby no guia de início rápido do Gemini Enterprise: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Gemini Enterprise Ruby.
Para se autenticar no Gemini Enterprise, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Requisitos e limitações
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. A reindexação de um repositório de dados grande pode levar horas ou dias.
As atualizações de esquema não são compatíveis com o seguinte:
- Mudança de um tipo de campo. Uma atualização de esquema não permite alterar o tipo
do campo. Por exemplo, um campo associado a
integernão pode ser alterado parastring. - Remoção de um campo. Depois de definido, um campo não pode ser removido. Você pode continuar adicionando novos campos, mas não pode remover um atual.
Exemplos de limitação (somente REST)
Nesta seção, mostramos exemplos de tipos válidos e inválidos de atualizações de esquema. Estes exemplos usam o seguinte exemplo de 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 no esquema de exemplo são compatíveis.
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 de chave 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 atualizações a seguir no esquema de exemplo não são compatíveis.
Mudança de um tipo de campo. Neste exemplo, o tipo do campo
titlefoi alterado de string para número. Essa opção não é aceita.{ "$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. Essa opção não é aceita.{ "$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
- Confira a definição do esquema para dados estruturados
- Excluir um esquema de dados estruturados
- Visualizar os resultados da pesquisa