Carregando
0x60Lição 7 de 11

Gere respostas fundamentadas nas fontes

Monte o prompt, ordene o contexto, exija citações e deixe o modelo dizer “não sei”.

22 min Questionário com 6 perguntas 2 exercícios de código
Ao final desta lição, você saberá
  • Escrever um prompt que separe as instruções, as fontes e a pergunta
  • Ordenar o contexto para que o modelo o use de fato
  • Verificar se toda afirmação está citada e sustentada

A recuperação encontrou bons chunks - agora o modelo precisa usá-los com fidelidade. Um bom prompt de RAG tem partes claras:

  1. Instruções: responder só a partir das fontes; citar o ID da fonte depois de cada afirmação; se as fontes não responderem à pergunta, dizer isso.
  2. Fontes: cada chunk com o seu ID, bem delimitado (por exemplo, em tags <source id="returns#2">…</source>), e tratado como dado - nunca como instruções a seguir.
  3. A pergunta, no fim.

Abster-se é uma funcionalidade. “Não encontrei isso na nossa documentação” é muito melhor do que um chute confiante, e mostra quais documentos estão faltando.

Onde você coloca as evidências também importa. O estudo “Lost in the Middle” (Liu et al., TACL 2024) concluiu que os modelos usam as informações do começo e do fim de um contexto longo muito melhor do que as do meio - a acurácia caiu mais de 30% em alguns testes. Então:

  • mande menos chunks, e melhores (é para isso que serve o reranking), e
  • coloque as evidências mais fortes no começo e no fim.

Experimente

Até 15 XP

Encontre as afirmações sem fundamento

Leia as fontes e depois confira a resposta gerada. Clique em toda afirmação que não é sustentada pela fonte que ela cita - ou que não tem fonte nenhuma.

Pergunta sobre devoluções (rodada 1 de 2)Sinais encontrados 0/0

Clique em todos os trechos suspeitos. São 3.

FONTES [s1] As devoluções são aceitas em até 30 dias após a entrega. Os itens precisam estar sem uso. [s2] Os reembolsos vão para a forma de pagamento original em até 5 dias úteis. PERGUNTA Como funcionam as devoluções e os reembolsos? RESPOSTA Você pode devolver itens sem uso em até 30 dias após a entrega [s1]. Os reembolsos voltam para a sua forma de pagamento original em até 5 dias úteis [s2]. O frete da devolução é grátis [s2]. A maioria dos clientes recebe o dinheiro em 2 dias. Itens danificados podem ser trocados na loja.
prompt_template.py
sources = {"returns#2": "Opened electronics: 14 days, 10% fee."}
blocks = "\n".join(f'<source id="{key}">{text}</source>' for key, text in sources.items())
print(blocks)
Saída
<source id="returns#2">Opened electronics: 14 days, 10% fee.</source>

Principais conclusões

  • Separe as instruções, as fontes delimitadas e a pergunta; peça citações e permita o “não sei”.

  • Coloque as evidências mais fortes no começo e no fim; mande menos chunks, e melhores.

  • Uma citação precisa sustentar de fato a sua afirmação - confira.

Quiz da aula

6 perguntas · aprovação com 5 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva código em Python

Escreva código Python no editor e execute os testes com exemplos. O Python roda localmente no navegador usando WebAssembly.

Exercício 1

Coloque as melhores evidências nas pontas

+25 XP

Cada linha da entrada lista IDs de chunks em ordem de relevância (o melhor primeiro). Reordene-os para que os melhores chunks fiquem no começo e no fim: o 1º vai primeiro, o 2º vai por último, o 3º em segundo, o 4º em penúltimo, e assim por diante. Imprima cada lista reordenada.

  • Cinco e quatro chunks
main.py
Carregando editor…

O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.

Exercício 2

Confira as citações de uma resposta

+25 XP

As linhas antes de --- são fontes: id|text. As linhas depois são frases da resposta, cada uma podendo terminar com citações como [s1]. Para cada frase (sem as citações), imprima:

  • UNCITED: sentence se ela não tiver citação;
  • BAD SOURCE id: sentence se ela citar uma fonte desconhecida;
  • UNSUPPORTED n: sentence se um número dela não aparecer em nenhuma das fontes citadas (o primeiro desses números);
  • caso contrário, ok: sentence.
  • Cinco frases
main.py
Carregando editor…

O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…