Geração de Esquemas com IA - Documentação do Entity Enricher

Geração de Esquemas com IA

Gere schemas JSON estruturados a partir de dados de exemplo com IA, com autocorreção automática e pós-processamento inteligente.

Como Funciona

A geração de esquemas transforma dados brutos de entidades num esquema JSON tipado e anotado que define exatamente que informação extrair durante o enriquecimento. Em vez de escrever esquemas manualmente, você cola JSON de exemplo e deixa a IA analisar a estrutura, inferir tipos, atribuir domínios de especialização e sugerir melhorias.

O Pipeline de Geração

A geração não é um único prompt grande. É uma sequência de chamadas pequenas e de propósito único, na sua maioria executadas em simultâneo — é isso que permite que modelos pequenos e baratos produzam um esquema utilizável, já que cada chamada responde a uma única questão restrita sobre material que consegue abranger.

  1. Canonicalizar a amostra (sem LLM) — um valor que transporta a sua própria unidade passa a número com a unidade no nome ("8.275 h" torna-se half_life_seconds: 29790) e uma data que nenhum tipo nativo consegue representar passa a um ano inteiro. Todos os valores observados têm de comprovar a afirmação, caso contrário a propriedade permanece texto. É a amostra reescrita que fica guardada.
  2. Delimitação de identidade — uma chamada, executada antes de todas as outras por ser a última autorizada a alterar a sua amostra. Quando um item de um array relacionado mistura factos sobre essa entidade com factos sobre a sua associação ao elemento pai, o item é reestruturado: os factos da associação ficam onde estão e os factos próprios da entidade passam a estar aninhados num subobjeto nomeado. Sem isto, os dois tipos de facto partilham uma única identidade.
  3. Derivar o esqueleto (sem LLM) — a árvore de propriedades, os tipos JSON e a nulabilidade vêm diretamente da(s) amostra(s); as formas repetidas e os itens de array semelhantes a entidades tornam-se definições reutilizáveis. Os objetos localizados (como {"en": "...", "fr": "..."}) são reduzidos a um único valor multilingue.
  4. Fazer as perguntas em paralelo — chamadas concorrentes separadas definem a identidade e a nomenclatura da entity, os indicadores comportamentais (chave, preservar, multilingue, anulável, mais propostas de formato), se os campos de números inteiros são genuinamente discretos, que cadeias de texto provêm de um vocabulário fechado e como as propriedades são encaminhadas para os domínios de especialidade.
  5. Escrever a documentação — uma chamada por domínio de especialidade, com a persona desse domínio, produzindo a descrição e os exemplos de cada propriedade — e a sua própria segunda opinião sobre se o valor pode genuinamente estar ausente.
  6. Montar, validar, guardar (sem LLM) — os fragmentos são combinados, as 8 regras de validação funcionam como rede de segurança, o pós-processamento determinístico resolve os conflitos de sinalizadores e o esquema é guardado — desduplicado por hash de conteúdo, para que esquemas idênticos não sejam duplicados.

Cada passo repete-se por conta própria (3 tentativas) e as suas respostas acumulam-se ao longo das tentativas, pelo que um modelo que responde em fragmentos acaba na mesma por convergir. Depois disso, o passo aceita o que obteve e as lacunas são preenchidas de forma determinística — um modelo fraco degrada as descrições em vez de fazer falhar a geração. Só a identidade e o encaminhamento de domínio podem fazer falhar toda a execução. Cada chamada é faturada e registada como um prompt próprio, pelo que o registo mostra exatamente o que foi gasto e onde.

Pode passar várias amostras do mesmo tipo de entidade em vez de apenas uma — o schema passa então a abranger a união dos seus campos, tudo o que faltar numa amostra torna-se anulável e os valores observados nelas tornam-se exemplos reais. Os nomes dos campos têm de coincidir: amostras que descrevem tipos de entidade diferentes são rejeitadas, tal como objetos dentro de uma matriz que não partilham nenhum campo, uma vez que nada restaria para identificar as suas linhas. O editor de amostras assinala qualquer diferença destas antes de gastar uma geração.

Os valores que incluem a sua própria unidade são convertidos em números antes de o esquema ser derivado, porque uma coluna com "8.275 h" e "85 ms" não pode ser ordenada, filtrada por intervalo nem agregada. A unidade passa para o nome da propriedade (half_life_seconds), um substituto não numérico como "stable" torna-se null e as datas anteriores ao ano 1 tornam-se um ano inteiro (negativo para a.C.), que nenhum tipo de data consegue armazenar e que o texto ordena incorretamente. O seu painel de amostra é atualizado em conformidade, para que mostre sempre a amostra que o esquema descreve. Tudo o que a conversão não conseguir ler com certeza é mantido exatamente como o escreveu.

Autocorreção, passo a passo

Como cada passo responde a uma pergunta muito específica, a correção também pode ser específica: o validador de cada passo mantém tudo o que voltou utilizável e volta a pedir apenas o que falta. Nada é regenerado de raiz, por isso uma resposta parcialmente correta é progresso e não uma tentativa desperdiçada.

Exemplo: o passo de sinalização em 30 propriedades

Tentativa 1O modelo responde a 22 delas e divide a resposta por várias chamadas de ferramentas — uma falha comum em modelos pequenos. Todas as 22 são mantidas.
RepetirO pedido seguinte solicita apenas as 8 propriedades restantes — uma pergunta mais curta, com maior probabilidade de ser respondida por inteiro.
Tentativa 2Chegam mais 6. As 2 últimas recorrem a predefinições determinísticas e a falta é anotada no registo de geração em vez de o fazer falhar.

As oito regras de validação continuam a ser aplicadas ao esquema montado como verificação final — correção dos tipos, atribuição de domínio de especialidade, integridade das referências, completude. Nessa altura funcionam como rede de segurança e não como mecanismo de correção. Saiba mais sobre cada regra no guia Regras de Validação.

O Que o Schema Contém

Um esquema gerado é mais do que uma simples definição de tipos. Cada propriedade inclui metadados que orientam o processo de enriquecimento:

Tipo

Tipo de schema JSON (string, number, integer, boolean, array, object)

Descrição

Descrição contextual que indica à IA que informação encontrar

Especialização

Qual o domínio de especialização (financeiro, regulatório, etc.) que fornece este valor

Chave

Se este campo faz parte do que identifica a instância. As chaves desempenham as duas funções ao mesmo tempo: focam o prompt de enriquecimento na entidade certa e são aquilo pelo qual a fusão faz corresponder os itens de array. Uma chave pode continuar a admitir valor nulo — um qualificador que distingue irmãos parecidos continua a ser identificador mesmo quando famílias inteiras genuinamente não o têm

Vocabulário fechado

Quando os valores de uma string provêm de um conjunto pequeno e totalmente enumerável (estados, níveis, códigos de classificação), a geração propõe os membros — escritos tal como as suas amostras os escrevem — para que o enriquecimento não derive para um sinónimo

Anulável

Se o campo pode ser null — os campos não anuláveis são obrigatórios para admissão na base de dados

Multilingue

Se o campo deve ser enriquecido em vários idiomas

Preservar

Se deve manter o valor original inalterado durante o enriquecimento

Exemplos

Valores de exemplo realistas que orientam a IA para o formato correto

Formato / Padrão

Formato verificável por máquina para valores de texto: as respostas malformadas são rejeitadas e repetidas, e os valores armazenados mantêm a forma canónica. A geração só declara um formato nomeado (date, time, date-time, uuid, email, uri, ipv4, ipv6) que as suas amostras comprovem — um padrão regex é uma previsão sobre valores que ainda ninguém viu e, se estiver errado, faz falhar todos os enriquecimentos do campo, pelo que esse é você que o adiciona no editor

Deteção do domínio de especialização

A IA agrupa as propriedades do schema em domínios de especialização com base no seu significado semântico. Por exemplo, o schema de uma empresa farmacêutica pode ter domínios como “Analista Financeiro”, “Especialista Regulatório” e “Informação Corporativa”. Estes domínios são usados pela estratégia multi-especialização para executar chamadas de LLM paralelas e especializadas para resultados mais aprofundados.

Limites de contagem de domínios

O número de domínios de especialização é limitado automaticamente com base no número de propriedades dos seus dados para evitar a fragmentação excessiva:

5 propriedades
1 domínio
12 propriedades
2 domínios
30 propriedades
5 domínios
60 propriedades
10 domínios

Pós-processamento

Depois de montados os fragmentos, passos determinísticos resolvem tudo o que não deve ficar ao critério de um modelo — usando os seus dados de entrada reais como prova:

Alargamento para anulável

Um campo em falta ou nulo em qualquer amostra passa a ser anulável, independentemente do que o modelo tenha respondido, para que um valor desconhecido seja uma resposta aceite e não uma falha de qualidade dos dados. As amostras só podem alargar: um punhado de amostras prova a presença nessas instâncias, nunca em todas as instâncias do tipo — daí o modelo ter também direito a voto, e os dois serem combinados com OR.

Resolução de conflitos entre flags

Os atributos que não podem coexistir são reconciliados por regra, em vez de nova consulta: preserve prevalece sobre multilingual e nullable, um vocabulário fechado que sobreviva anula multilingual, e uma propriedade-chave nunca mantém um enum.

Reparação de chaves de itens de array

Todos os objetos dentro de um array têm garantidamente pelo menos uma propriedade-chave — é a unidade sobre a qual a fusão elimina duplicados, pelo que um item de array sem chave tornaria impossível combinar as respostas de dois modelos.

Coleção de especialização

Todos os domínios de especialização únicos são recolhidos do schema para métricas e configuração de estratégia.

O idioma em que um esquema está escrito

Um esquema descreve-se a si próprio num idioma — os nomes dos seus tipos, as descrições das propriedades, as etiquetas de especialidade e as sugestões. Isso é diferente dos idiomas para os quais enriquece. Indique um ao gerar, ou deixe em branco e o idioma dos nomes das propriedades da sua amostra decide: uma amostra em francês deixa de produzir um esquema em inglês. A escolha fica guardada, para que as edições posteriores por IA continuem a escrever no mesmo idioma em vez de voltarem ao inglês.

Gerar as próprias amostras

Não precisa de dados de exemplo para começar. Descreva o tipo de entidade — opcionalmente com documentos que lhe sirvam de base, ou com pesquisa web para o confrontar com a realidade — e a plataforma escreve os exemplos por si. Peça vários e obtém várias instâncias diferentes, não a mesma instância reformulada.

Todas as instâncias são escolhidas de uma só vez

A primeira amostra também define sobre quem serão as restantes, na mesma chamada. Pedir N vezes de forma independente “um exemplo” devolve invariavelmente N vezes a mesma instância famosa; nomear todo o elenco à partida é o que as torna distintas.

A primeira amostra fixa a estrutura

As restantes amostras são geradas em paralelo face à estrutura da amostra 1, tomada como contrato, e não apenas com o pedido de a imitarem — pelo que uma variante não pode renomear, acrescentar ou eliminar um campo. As que ainda assim regressem duplicadas ou malformadas são pedidas de novo numa vaga de repetições limitada e, se o número total não for atingido, é-lhe comunicado em vez de receber silenciosamente menos amostras.

Idioma e as suas próprias instruções

O idioma assume por predefinição auto, inferido a partir das palavras do seu próprio pedido e, depois, de qualquer documento anexado. As instruções adicionais que acrescentar são vinculativas: ou são cumpridas, ou a resposta indica o que não pôde ser cumprido e porquê — nunca são ignoradas em silêncio.

Verificação de Ambiguidade

Leia o nome de uma propriedade no contexto do respetivo objeto pai e conte as coisas distintas que poderia estar a pedir. Uma é claro. Duas ou mais e cada modelo escolhe uma diferente, pelo que a coluna acaba por misturar respostas a perguntas diferentes — annual_revenue numa empresa pode ser o grupo ou a entidade, bruto ou líquido, numa de várias moedas. Nenhuma — um nome para algo que este elemento pai simplesmente não tem — é pior: sem nada para consultar, o modelo inventa um valor.

A geração combate isto duas vezes: o próprio prompt exige nomes que admitam uma única leitura e uma passagem posterior sobre o esquema concluído anota os que continuam a não a admitir. Nesta fase, a solução é uma renomeação — as descrições foram geradas a partir dos nomes, pelo que uma descrição não pode desambiguar o nome de que resultou, e nada depende ainda do esquema. A geração de amostras executa a mesma verificação sobre a amostra e aplica as renomeações antes de a ver. O texto livre — uma descrição, um resumo, notas — nunca é assinalado: a redação varia, mas a pergunta feita é clara.

As propriedades assinaladas apresentam um emblema «ambíguo» no Editor de Fluxos de Trabalho, com a lista das leituras que o nome admite. Assim que o esquema está em produção, a solução passa a ser uma descrição reescrita, que fixa um único significado sem quebrar o contrato de dados. Consulte o guia Verificação de Ambiguidade para conhecer os critérios completos e as respetivas soluções.

Ao gerar uma entidade de amostra a partir de uma descrição, pode ativar “Usar pesquisa na web” para permitir que o modelo procure factos atuais na web em vez de depender apenas dos seus dados de treino. Isto produz valores de amostra mais recentes e precisos — especialmente para factos que mudam rapidamente, como preços, número de funcionários ou lançamentos recentes. A opção só aparece para modelos cujo fornecedor suporta pesquisa na web integrada, e as chamadas de pesquisa são faturadas pelo fornecedor como qualquer outra utilização do modelo.

Edição de Esquemas com IA

Após a geração, pode modificar esquemas com instruções em linguagem natural. Escreva um comando e a IA aplica a alteração, preservando a estrutura existente do seu esquema. Cada edição também produz 5 sugestões para melhorias adicionais.

Exemplos de comandos de edição

Adicionar um campo inteiro employee_count
Crie um objeto de morada aninhado com cidade e país
Adicionar descrições em francês a todos os campos de texto
Defina uma referência de empresa-mãe usando $defs
Marcar o campo do website como anulável

As edições por IA são validadas usando um subconjunto das regras de geração (verificação de tipos, integridade de referências, consistência de especialização) sem comparar com os dados de entrada, uma vez que pode adicionar ou remover campos intencionalmente.

Sugestões da IA

Tanto a geração de schema como a edição por IA produzem 5 sugestões específicas que abrangem diferentes categorias de melhoria:

Completude dos dadosCampos em falta que poderiam enriquecer a sua entity
Qualidade dos dadosVocabulários fechados, nulabilidade, correções de tipo
RelaçõesEstruturas aninhadas, referências de entity via $defs
InternacionalizaçãoTraduções multilingues, suporte de localizações
Contexto de negócioCampos específicos de domínio e agrupamentos por expertise domain

As sugestões aparecem como chips clicáveis no Editor de Fluxo de Trabalho — clique num deles para preencher automaticamente o campo de edição de IA e aplicá-lo.

Próximos Passos