Citações confiáveis dão aos leitores mais segurança nas respostas e permitem verificar sua exatidão. Este guia mostra como preparar o material que pode ser citado e orientar o modelo a formatar as citações corretamente, usando padrões familiares aos modelos da OpenAI.
Visão geral
Um sistema de citações envolve várias etapas. Você decide o que pode ser citado, apresenta esse material com clareza, orienta o modelo sobre como citá-lo e valida o resultado antes de exibi-lo ao usuário.
Este guia aborda cinco elementos diretamente relacionados à forma como o modelo recebe o material e produz as citações:
Unidades citáveis: defina o que o modelo pode citar.
Representação do material: apresente o material de origem em um formato claro e estruturado.
Formato das citações: especifique o formato exato que o modelo deve usar nas citações.
Instruções do prompt: indique quando o modelo deve citar e como fazer isso corretamente.
Extração das citações: extraia as citações da resposta do modelo para usá-las nas etapas seguintes.
Escolha as unidades citáveis
Antes de escrever os prompts, defina com clareza o que o modelo pode citar. Algumas opções comuns são:
Unidade citável
Quando usar
Desvantagem
Exemplo
Documento
Basta mostrar de qual documento veio a resposta.
Pouca precisão.
Cite o manual do funcionário inteiro quando só precisar indicar qual documento sustenta a afirmação.
Bloco ou trecho
Você busca um equilíbrio entre simplicidade e precisão.
Não identifica a linha exata.
Cite o parágrafo específico do contrato ou o trecho recuperado que contém a cláusula.
Intervalo de linhas
É preciso mostrar o texto exato que sustenta a afirmação.
É mais difícil para o modelo.
Cite as linhas L42-L47 quando o usuário precisar verificar a passagem exata.
Uma boa unidade citável deve ter:
Consistência: a mesma fonte deve manter o mesmo ID entre execuções.
Facilidade de consulta: quem lê a unidade deve conseguir entender o contexto em que ela aparece.
Tamanho adequado: a unidade deve ser extensa o suficiente para fazer sentido e curta o suficiente para manter a precisão.
Na maioria dos sistemas, citar blocos é a melhor opção padrão. Em geral, é mais fácil para o modelo citar blocos do que linhas, e os usuários obtêm referências mais úteis do que quando a citação aponta para o documento inteiro.
Represente o material citável
O modelo só consegue citar material que tenha sido apresentado com clareza. Tanto para material retornado por uma ferramenta quanto para material inserido diretamente, inclua:
ID estável da fonte: um identificador consistente, como file1 ou block1.
Texto legível: o material de origem com formatação clara.
Metadados (opcionais): URLs, datas e horários, títulos e outras informações de contexto.
Citation Marker: {CITATION_START}cite{CITATION_DELIMITER}file0{CITATION_STOP}Title: Employee HandbookURL: https://company.example/handbookUpdated: 2026-03-01[L1] Employees may work remotely up to three days per week.[L2] Additional remote days require manager approval.[L3] Exceptions may apply for approved accommodations.
IDs de fonte e localizadores: o ID da fonte é um identificador estável
gerado pelo modelo, como block1. O localizador indica o trecho exato
destacado na interface, como lines L8-L13 ou
Paragraph 21. Em geral, o modelo deve emitir o ID da fonte,
enquanto o sistema identifica ou exibe o trecho correspondente ao localizador.
Misturar os dois cedo demais tende a aumentar os erros de formatação.
Defina o formato das citações
Defina o formato das citações que o modelo vai gerar. Escolha um formato explícito e consistente que o modelo consiga reproduzir com facilidade e de maneira confiável.
A tabela a seguir apresenta o formato de citação e os marcadores recomendados. Recomendamos especialmente esses marcadores porque são muito semelhantes aos usados no treinamento dos nossos modelos. Se você escolher outros valores para os marcadores, mantenha o formato geral da citação o mais próximo possível do recomendado.
Elemento
Função
Valor recomendado
CITATION_START
Abre o marcador de citação.
\ue200
Família de citações
Identifica o tipo de citação. Use cite para todas as fontes compatíveis.
cite
CITATION_DELIMITER
Separa os campos dentro do marcador.
\ue202
ID da fonte
Identifica a unidade citada. turn# é o número do turno. item# identifica o arquivo, bloco ou URL específico.
turn0file1, turn0block1, turn0url1
Localizador (opcional)
Delimita o trecho exato a que a citação se refere.
L8-L13
CITATION_STOP
Fecha o marcador de citação.
\ue201
Em chamadas de ferramenta, turnN aumenta uma vez por chamada, independentemente
do número de resultados retornados. Em uma mesma chamada, as fontes se distinguem
por sufixos como file0, file1 e assim por diante.
Em um sistema de resposta única, todas as referências terão o formato
turn0… somente se o modelo fizer exatamente uma chamada de ferramenta
antes de responder. Se fizer várias chamadas, poderão aparecer referências
como turn0fileX, turn1fileX e assim por diante.
Para obter a máxima precisão, use padrões de citação familiares ao modelo. Formatos personalizados ou pouco familiares exigem mais esforço do modelo e podem levar a erros nas citações, especialmente em duas situações:
Quando o esforço de raciocínio é baixo, o modelo dispõe de menos recursos para corrigir erros de formatação.
Em tarefas complexas, o modelo dedica a maior parte dos recursos de raciocínio à resolução da tarefa em si, o que deixa menos recursos para corrigir a sintaxe das citações.
A seguir, recomendamos um formato de citação próximo dos padrões que o modelo já conhece. Você pode usá-lo como está ou adaptá-lo ao seu sistema.
Se quiser escrever seu próprio prompt, especifique:
a sintaxe exata dos marcadores.
onde inserir as citações.
quando citar e quando não citar.
como citar várias fontes que sustentam uma afirmação.
quais formatos são proibidos.
o que fazer quando nenhuma fonte sustenta a afirmação.
Dê instruções claras ao modelo usando o seguinte formato:
## CitationsResults are returned by "tool_1". Each message from `tool_1` is called a "source" and identified by its reference ID, which is the first occurrence of 【turn\d+\w+\d+】 (e.g. 【turn2file1】). In this example, the string "turn2file1" would be the source reference ID.Citations are references to `tool_1` sources. Citations may be used to refer to either a single source or multiple sources.Citations to a single source must be written as {CITATION_START}cite{CITATION_DELIMITER}turn\d+\w+\d+{CITATION_STOP} (e.g. {CITATION_START}cite{CITATION_DELIMITER}turn2file5{CITATION_STOP}).Citations to multiple sources must be written as {CITATION_START}cite{CITATION_DELIMITER}turn\d+\w+\d+{CITATION_DELIMITER}turn\d+\w+\d+{CITATION_DELIMITER}...{CITATION_STOP} (e.g. {CITATION_START}cite{CITATION_DELIMITER}turn2file5{CITATION_DELIMITER}turn2file1{CITATION_DELIMITER}...{CITATION_STOP}).Citations must not be placed inside markdown bold, italics, or code fences, as they will not display correctly. Instead, place the citations outside the markdown block. Citations outside code fences may not be placed on the same line as the end of the code fence.You must NOT write reference ID turn\d+\w+\d+ verbatim in the response text without putting them between {CITATION_START}...{CITATION_STOP}.- Place citations at the end of the paragraph, or inline if the paragraph is long, unless the user requests specific citation placement.- Citations must be placed after punctuation.- Citations must not be all grouped together at the end of the response.- Citations must not be put in a line or paragraph with nothing else but the citations themselves.
Se quiser que o modelo também inclua localizadores, como intervalos de linhas (L1-L22), especifique isso no prompt da seguinte forma:
You *must* cite any results you use from this tool using the:`\ue200cite\ue202turn0file0\ue202L8-L13\ue201` format ONLY if the item has a corresponding citation marker.
Não tente citar itens sem um marcador de citação correspondente. Esses itens não se destinam a citações.
Você DEVE incluir os intervalos de linhas nas citações.
As regras a seguir costumam ser úteis quando você precisa que o modelo fundamente melhor as respostas. Adapte esta seção aos requisitos do seu caso de uso.
12345678910111213<extra_considerations_for_citations>- **Relevance:** Include only search results and citations that support the cited response text. Irrelevant sources permanently degrade user trust.- **Diversity:** You must base your answer on sources from diverse domains, and cite accordingly.- **Trustworthiness:** To produce a credible response, you must rely on high quality domains, and ignore information from less reputable domains unless they are the only source.- **Accurate Representation:** Each citation must accurately reflect the source content. Selective interpretation of the source content is not allowed.Remember, the quality of a domain/source depends on the context.- When multiple viewpoints exist, cite sources covering the spectrum of opinions to ensure balance and comprehensiveness.- When reliable sources disagree, cite at least one high-quality source for each major viewpoint.- Ensure more than half of citations come from widely recognized authoritative outlets on the topic.- For debated topics, cite at least one reliable source representing each major viewpoint.- Do not ignore the content of a relevant source because it is low quality.</extra_considerations_for_citations>
Extraia as citações
Depois que o modelo emitir as citações, extraia-as do texto da resposta. Assim, você pode identificar as fontes pelos IDs, exibir links ou remover os marcadores brutos antes de mostrar a resposta aos usuários.
Você pode copiar o código auxiliar a seguir diretamente para o seu aplicativo. Ele extrai citações de uma ou várias fontes e localizadores opcionais de intervalos de linhas, preservando as posições dos caracteres no texto original.
Este exemplo aceita apenas localizadores de linhas. Adapte-o se o seu sistema usar outro formato de localizador.
Se os IDs das fontes tiverem outro formato, ajuste SOURCE_ID_RE ao padrão do seu sistema.
Exemplos
Os exemplos a seguir mostram dois padrões comuns de citação:
Contexto recuperado por uma ferramenta, em que a ferramenta retorna o material citável e os respectivos IDs.
Contexto inserido no prompt, em que você fornece os blocos citáveis diretamente no prompt.
Formate citações de contexto recuperado por uma ferramenta
Use esse padrão quando o modelo usar uma ferramenta para recuperar contexto e citar esse material na resposta.
Defina as unidades citáveis
Escolha as unidades citáveis de acordo com a precisão exigida pelo seu caso de uso. Os exemplos a seguir mostram alguns resultados possíveis de uma chamada de ferramenta.
Esses exemplos ilustram alguns formatos recomendados para a saída da ferramenta. A ferramenta usada pode variar conforme o aplicativo. O mais importante é apresentar a saída com uma estrutura clara e estável, como nos exemplos.
Veja um exemplo de saída da chamada de ferramenta:
Citation Marker: {CITATION_START}cite{CITATION_DELIMITER}turn0file0{CITATION_STOP}[L1] The service agreement states that termination for convenience requires thirty (30) days’ written notice, unless superseded by a customer-specific addendum.[L2] In practice, renewal terms auto-extend for successive one-year periods when no written non-renewal notice is received before the deadline.[L3] Appendix B further clarifies that pricing exceptions must be approved in writing by both Finance and the account owner.Citation Marker: {CITATION_START}cite{CITATION_DELIMITER}turn0file1{CITATION_STOP}...
Neste exemplo, turn0file0 é o ID estável da fonte. Os números das linhas são os localizadores.
Veja um exemplo de saída da chamada de ferramenta:
Citation Marker: {CITATION_START}cite{CITATION_DELIMITER}turn0file0{CITATION_STOP}[Block1]The service agreement states that termination for convenience requires thirty (30) days’ written notice, unless superseded by a customer-specific addendum.In practice, renewal terms auto-extend for successive one-year periods when no written non-renewal notice is received before the deadline.Appendix B further clarifies that pricing exceptions must be approved in writing by both Finance and the account owner.Citation Marker: {CITATION_START}cite{CITATION_DELIMITER}turn0file1{CITATION_STOP}[Block2]...
Se preferir citar blocos em vez de linhas, recomendamos atribuir a cada bloco recuperado seu próprio ID estável de fonte e manter o formato de citação com dois campos, por exemplo, {CITATION_START}cite{CITATION_DELIMITER}turn0file0{CITATION_STOP}. Assim, você evita criar uma família de citações completamente diferente.
Escreva as instruções do prompt
## CitationsResults are returned by "tool_1". Each message from `tool_1` is called a "source" and identified by its reference ID, which is the first occurrence of `turn\\d+file\\d+` (for example, `turn0file0` or `turn2file1`). In this example, the string `turn0file0` would be the source reference ID.Citations are references to `tool_1` sources. Citations may be used to refer to either a single source or multiple sources.A citation to a single source must be written as:{CITATION_START}cite{CITATION_DELIMITER}turn\d+file\d+{CITATION_STOP}If line-level citations are supported, a citation to a specific line range must be written as:{CITATION_START}cite{CITATION_DELIMITER}turn\d+file\d+{CITATION_DELIMITER}L\d+-L\d+{CITATION_STOP}Citations to multiple sources must be written by emitting multiple citation markers, one for each supporting source.You must NOT write reference IDs like `turn0file0` verbatim in the response text without putting them between {CITATION_START}...{CITATION_STOP}.- Place citations at the end of the supported sentence, or inline if the sentence is long and contains multiple supported clauses.- Citations must be placed after punctuation.- Cite only retrieved sources that directly support the cited text.- Never invent source IDs, line ranges, or block locators that were not returned by the tool.- If multiple retrieved sources materially support a proposition, cite all of them.- If the retrieved sources disagree, cite the conflicting sources and describe the disagreement accurately.
Exemplo de saída:
The on-call handoff process is documented in the weekly support sync notes. \ue200cite\ue202turn0file0\ue202L8-L13\ue201
Formate citações de contexto inserido no prompt
Use esse padrão quando você recuperar ou preparar o contexto com antecedência e inseri-lo diretamente no prompt.
Defina as unidades citáveis
Ao inserir o contexto no prompt, uma prática comum é delimitar os trechos de cada fonte com tags explícitas que tenham IDs de referência estáveis.
12345678910<BLOCK id="block1">The service agreement states that termination for convenience requires thirty (30) days’ written notice, unless superseded by a customer-specific addendum.In practice, renewal terms auto-extend for successive one-year periods when no written non-renewal notice is received before the deadline.Appendix B further clarifies that pricing exceptions must be approved in writing by both Finance and the account owner.</BLOCK><BLOCK id="block2">Syllabus</BLOCK>...
Assim, a unidade citável fica claramente delimitada, o que facilita a referência pelo modelo.
Escreva as instruções do prompt
## CitationsSupporting context is provided directly in the prompt as citable units. Each citable unit is identified by the value of its `id` attribute in the first occurrence of a tag such as `<BLOCK id="block5"> ... </BLOCK>`. In this example, `block5` would be the source reference ID.Because this pattern does not invoke tools, there is no tool turn counter to increment. That means you do not need to use a `turn#` prefix for the citation marker. You can keep IDs in a `turn0block5` style if that matches the rest of your system, or use plain IDs like `block5` as shown here. The key requirement is that the citation marker matches the injected context ID exactly and consistently.Citations are references to these provided citable units. Citations may be used to refer to either a single source or multiple sources.A citation to a single source must be written as:{CITATION_START}cite{CITATION_DELIMITER}<block_id>{CITATION_STOP}For example:{CITATION_START}cite{CITATION_DELIMITER}block5{CITATION_STOP}Citations to multiple sources must be written by emitting multiple citation markers, one for each supporting block.You must NOT write block IDs verbatim in the response text without putting them between {CITATION_START}...{CITATION_STOP}.- Place citations at the end of the supported sentence, or inline if the sentence is long and contains multiple supported clauses.- Citations must be placed after punctuation.- Cite only blocks that appear in the provided context.- Never invent new block IDs.- Never cite outside knowledge or outside authorities.- If multiple blocks materially support a proposition, cite all of them.- If the provided blocks conflict, cite the conflicting blocks and describe the conflict accurately.
Exemplo de saída:
The Court held that the District Court lacked personal jurisdiction over the petitioner. \ue200cite\ue202block5\ue201