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.