import os
import csv
import pandas as pd
from google import genai
# 1) Definir lista de perguntas sobre astronomia
lista_de_perguntas = [
"Qual é a estrela mais próxima da Terra?",
"O que é um buraco negro?",
"Quantos planetas existem no sistema solar?",
"O que é a Via Láctea?",
"O que causa um eclipse solar?"
]
print("Etapa 1: Lista de perguntas definida.")
# 2) Criar arquivo TXT com uma pergunta por linha
with open("perguntas.txt", "w", encoding="utf-8") as f:
for pergunta in lista_de_perguntas:
f.write(pergunta + "\n")
print("Etapa 2: Arquivo perguntas.txt criado.")
# 3) Ler o arquivo TXT e salvar as perguntas em uma nova lista
with open("perguntas.txt", "r", encoding="utf-8") as f:
perguntas_lidas = [linha.strip() for linha in f.readlines()]
print("Etapa 3: Perguntas lidas do arquivo TXT.")
# 4) Usar API Gemini para gerar respostas curtas
api_key = os.environ.get("GEMINI_API_KEY")
if not api_key:
print("Erro: Variável de ambiente GEMINI_API_KEY não encontrada.")
exit(1)
genai_client = genai.Client(api_key=api_key)
respostas = []
for pergunta in perguntas_lidas:
try:
resposta = genai_client.models.generate_content(
model="gemini-2.0-flash",
contents=pergunta
)
respostas.append(resposta.text.strip())
print(f"Resposta gerada para: {pergunta[:30]}...")
except Exception as e:
print(f"Erro ao gerar resposta para '{pergunta}': {e}")
respostas.append("Erro ao obter resposta")
print("Etapa 4: Respostas geradas pela API Gemini.")
# 5) Salvar perguntas e respostas em CSV
with open("perguntas_e_respostas.csv", "w", newline="", encoding="utf-8") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["Pergunta", "Resposta"])
for pergunta, resposta in zip(perguntas_lidas, respostas):
writer.writerow([pergunta, resposta])
print("Etapa 5: Arquivo perguntas_e_respostas.csv criado.")
# 6) Ler CSV com pandas e exibir tabela
df = pd.read_csv("perguntas_e_respostas.csv")
print("\nEtapa 6: Conteúdo do arquivo CSV:")
print(df.to_string(index=False))
Eu resolvi esse desafio pensando no caminho completo que a informação faz dentro do programa, porque primeiro eu monto a lista de perguntas, depois transformo essa lista em um arquivo TXT, leio esse arquivo de volta para o Python, peço as respostas e, no fim, junto tudo em um CSV para visualizar melhor. O mais interessante aqui, na minha leitura, é perceber que o exercício não é só sobre salvar arquivos, mas sobre mostrar como o mesmo conteúdo pode passar por etapas diferentes sem se perder, ficando cada vez mais organizado.
No código, eu deixei cada fase bem separada para facilitar o entendimento e evitar confusão, principalmente para quem ainda está pegando o jeito com leitura, escrita e organização dos dados. Também coloquei uma proteção simples para o caso de a chave da API não estar configurada ou alguma resposta dar erro, porque isso ajuda o programa a ficar mais claro quando algo não funciona.