Skip to main content
Compare uma resposta de IA concluída com as fontes que ela citou. O resultado é um mapa compacto: os parágrafos de cada página de origem incluídos no resultado, as partes da resposta a que eles correspondem, uma explicação para cada vínculo e resumos curtos montados a partir desses vínculos. É uma análise de correspondência a posteriori de uma resposta existente: não prova que uma fonte fez o modelo gerar uma frase, nem dá nota à qualidade de uma página. Trate como evidência a examinar, não como veredito.
Faça polling em GET /v1/async/task/:id ou informe webhook.url no envio; a tarefa informa taskType: "SOURCE_INFLUENCE". Não envie esta análise por POST /v1/async/task: use o endpoint dedicado. POST /v1/research e o tipo de tarefa CITATION_ATTRIBUTION são os nomes anteriores a setembro de 2026 e continuam funcionando como aliases obsoletos.

Analisar uma tarefa que você já executou

Se a resposta veio desta API, envie o id da tarefa em vez de copiar a resposta e as citações do resultado:
A tarefa precisa ser sua, estar em COMPLETED e ainda poder ser lida por GET /v1/async/task/:id. O Markdown da resposta (o texto, se o mecanismo não retornou Markdown) vira answer, e as URLs citadas viram citations na ordem do mecanismo: as 100 primeiras, com no máximo 10 threads de discussão. Marcadores de cartões de produto e de vídeo (links de googleusercontent.com) e links de busca do Google são ignorados, porque não têm página para ler. O prompt, o country e o mecanismo da tarefa são usados, a menos que você os envie. Enviar taskId junto com answer ou citations é rejeitado com 400, assim como uma tarefa inacabada ou sem texto de resposta ou URL citada. Um id de tarefa desconhecido ou expirado retorna 404.

Payload

A opção analysis foi descontinuada. Versões anteriores aceitavam analysis: {version: 1, …}. Agora os insights fazem parte de todo resultado, então esse campo é rejeitado com 400 em vez de ignorado: remova-o das integrações existentes. O conteúdo das tarefas existentes continua legível; os registros armazenados não são migrados.

Resultado

answer

A resposta que você enviou, sem alterações. answerRanges são offsets exatamente nesta string: unidades de código UTF-16 do JavaScript, start inclusivo e end exclusivo. Recorte como está, com answer.slice(start, end), em vez de dividir o texto de novo. Cada intervalo identifica uma unidade semântica inteira da resposta: uma frase, um item de lista ou uma célula de tabela. Os limites se referem ao texto original.

sources[]: uma entrada por citação enviada

  • id: identificador opaco, único dentro do resultado.
  • url: a URL da citação que você enviou.
  • paragraphs[]: os parágrafos daquela página incluídos no resultado. Cada um tem um id (único em todo o resultado) e o text do parágrafo. Um parágrafo pode ser incluído sem nenhum vínculo.
  • error: presente só quando a página não pôde ser lida. Nesse caso paragraphs fica vazio, e a string traz um motivo curto para aquela fonte.
  • paragraphId: o parágrafo a que o vínculo se refere. Sempre aponta para um parágrafo que existe em sources[].
  • answerRanges[]: as partes da resposta a que este parágrafo corresponde, como pares start/end nos mesmos offsets UTF-16. Um vínculo pode ter vários intervalos; o mesmo texto da resposta não se repete entre eles. Cada intervalo é uma unidade inteira da resposta (frase, item de lista ou célula de tabela).
  • explanation: uma frase curta que descreve a correspondência, ou seja, o que o parágrafo afirma sobre aquela parte da resposta.

insights[]

Resumos curtos do que os vínculos deste resultado mostram em conjunto. linkIds indica a partir de quais vínculos cada resumo foi montado e só pode citar vínculos que aparecem em links[]: um insight nunca afirma uma relação que a resposta não contém. Sem vínculos, não há o que resumir.

Como ler o resultado corretamente

  • Ausência de vínculo não é veredito. Um parágrafo sem vínculo apenas não correspondeu a um intervalo da resposta, e uma parte da resposta sem intervalo significa que nenhum parágrafo foi vinculado a ela. Nenhum dos dois diz que a página é irrelevante, não foi usada ou não é confiável.
  • Uma página não lida continua incerta. Quando sources[].error está definido, aquela citação ficou fora da análise; não trate a falta de vínculos como resultado negativo. Tente de novo ou envie o body se ela importar.
  • Correspondência, não causalidade. O resultado descreve como uma resposta existente e o texto de uma página existente se alinham depois do fato. Ele não mede influência na geração, não ordena páginas entre si, não dá nota à página nem informa como a resposta foi produzida.
  • Os ids são internos. Não guarde os identificadores p…/l… como chaves estáveis entre execuções; eles valem só dentro de um resultado.

Execução e limites

  • Tamanho não é motivo de falha. Tudo o que o contrato da requisição aceita, uma answer de até 200.000 caracteres com até 100 citações, é analisado. Respostas longas, conjuntos grandes de fontes e páginas muito longas são tratados dividindo o trabalho, não rejeitando a tarefa.
  • A profundidade acompanha a resposta, não a página. Uma página longa não gera mais vínculos do que a resposta consegue sustentar: a análise se concentra nos trechos com maior chance de corresponder à resposta, e toda fonte que mostra alguma correspondência aparece representada. Em uma página grande, ou que repete a mesma afirmação em navegação, listagens e avaliações, espere os trechos mais fortes, não cada ocorrência.
  • Marcação não é evidência. Mapas do site, índices de links e galerias de imagens não geram vínculos; uma página feita só disso é informada sem parágrafos, em vez de com correspondências inventadas.
  • Uma fonte que não pôde ser lida é informada em sources[].error sem derrubar a tarefa se outra fonte puder ser lida. A tarefa falha quando nenhuma fonte pôde ser lida, em caso de falha da análise, timeout ou erro de configuração do serviço.
  • As requisições são cobradas por uso, como o resto da API. A resposta do envio mostra a reserva temporária de créditos; a cobrança final é acertada quando a tarefa chega a um estado final.