Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Resposta] Faça como eu fiz: comandos com exemplos

1. Usei a Maritaca para testar a geração de códigos. Primeiro, pedi para ela responder um exercício sem nenhum outro exemplo:

"Faça um código que colete em uma lista 5 números inteiros quaisquer e imprima a lista. Exemplo: [1,4,7,2,4]."

Resposta:

"Claro! Aqui está um exemplo simples em Python que coleta 5 números inteiros do usuário e imprime a lista:

# Lista para armazenar os números
numeros = []

# Coletando 5 números inteiros do usuário
for i in range(5):
    while True:
        try:
            num = int(input(f"Digite o {i+1}º número inteiro: "))
            numeros.append(num)
            break
        except ValueError:
            print("Entrada inválida! Por favor, digite um número inteiro.")

# Imprimindo a lista
print("Lista de números:", numeros)

Repare que, mesmo sem eu ter especificado, a Maritaca já escolheu utilizar Python. Inclusive, a solução desse exercício mesmo sem exemplos já está muito bem feita.

2. Decidi então colocar a minha solução de outro exercício parecido como exemplo, para analisar como a técnica de few-shot influenciaria no resultado.

"Escreva um programa que gere a tabuada de um número inteiro de 1 a 10, de acordo com a escolha da pessoa usuária.

print('Digite um número de 1 a 10:')

while True:
try:
numero = int(input(''))


    if numero >= 1 and numero <= 10:
        print(f'Tabuada do {numero}:')
        i = 1

        while i < 11:
          mult = numero * i
          print(f'{numero} x {i} = {mult}')
          i += 1

        break

    else:
        print('ERRO: Valor inválido. Digite um número de 1 a 10.')

except ValueError:
    print('ERRO: Utilize apenas números inteiros. Tente novamente')

De acordo com o exemplo acima, siga a mesma estrutura e resolva o exercício:

Faça um código que colete em uma lista 5 números inteiros quaisquer e imprima a lista. Exemplo: [1,4,7,2,4]."

Resposta:

"Claro! Seguindo a mesma estrutura do exemplo fornecido, aqui está um código que coleta 5 números inteiros quaisquer e imprime a lista:

print('Digite 5 números inteiros:')

lista_numeros = []

while len(lista_numeros) < 5:
    try:
        numero = int(input(f'Digite o {len(lista_numeros)+1}º número: '))

        lista_numeros.append(numero)

    except ValueError:
        print('ERRO: Utilize apenas números inteiros. Tente novamente.')

print('Lista de números digitados:', lista_numeros)

Podemos perceber que alguns elementos da lógica mudaram. Na solução zero-shot, a Maritaca decidiu utilizar um for loop com range(5) para o input dos 5 números. Quando dei o meu exemplo, ela mudou e utilizou um while loop condicional, ao invés de um while True como na primeira solução. Podemos perceber também pequenas diferenças estruturais e de sintaxe que mudaram, como nas mensagens de erro, nos nomes das variáveis e até nos espaços entre as frases. Como no meu exemplo eu não coloquei comentários, a Maritaca também não colocou.

3. A conclusão que podemos chegar é que, apesar da primeira solução funcionar, a solução com few-shot sai de maneira mais personalizada, com pequenos detalhes que se assemelham ao exemplo dado, ao invés de ter uma escrita de maneira mais geral. A técnica de few shot é ideal para quando queremos que o output tenha um toque de personalidade, e pequenos detalhes que cada pessoa faz de maneira diferente.

1 resposta
solução!

Olá, Julianna. Como vai?

Excelente análise sobre a aplicação de Few-Shot Prompting! Seu experimento demonstra na prática como a IA é capaz de mimetizar não apenas a lógica, mas o estilo de escrita e a estrutura de código do usuário quando recebe as referências corretas.

O ponto que você levantou sobre a personalização é o grande diferencial dessa técnica. Enquanto o Zero-Shot (seu primeiro exemplo) entrega uma solução genérica baseada no padrão mais comum dos dados de treinamento da IA, o Few-Shot permite que você estabeleça um "padrão de projeto" específico.

Para agregar ainda mais valor ao seu estudo, destaco dois conceitos importantes que você observou:

  • Mimetismo Estrutural: Note que a IA removeu os comentários no segundo exemplo. Isso acontece porque ela entende que, no seu padrão de escrita, a documentação é feita de forma diferente ou é ausente, e ela tenta manter a consistência visual do código.
  • Consistência de Mensagens: A mudança na mensagem de erro para algo mais próximo do seu estilo ("ERRO: Utilize apenas números...") mostra como a técnica é poderosa para criar interfaces de texto que mantenham a identidade de uma marca ou de um desenvolvedor específico.

Como uma sugestão de boa prática, você pode utilizar o Few-Shot não apenas para o estilo do código, mas para garantir saídas de dados específicas. Se você precisar que a IA gere sempre um JSON ou uma lista em um formato muito rígido para ser lido por outro sistema, fornecer 2 ou 3 exemplos (o que chamamos de 2-shot ou 3-shot) reduz drasticamente a chance de erro do modelo.

Sua conclusão está corretíssima: a técnica é a chave para transformar uma ferramenta generalista em um assistente que trabalha exatamente do seu jeito.

Espero que possa ter lhe ajudado!