1
resposta

[Sugestão] Desafio criando e manipulando arquivos

Não estava conseguindo de jeito nenhum devido a limitação do free, usei o Grog

import pandas as pd
import json
from groq import Groq
from google.colab import userdata

# 1. Configuração
api_key = userdata.get('GROQ_API_KEY')
client = Groq(api_key=api_key)

perguntas = [
    "O que é flexografia?",
    "Quais são as principais vantagens da flexografia?",
    "Quais tipos de substratos podem ser usados na flexografia?",
    "O que é clichê flexográfico?",
    "Qual a função do anilox no processo flexográfico?",
    "Qual a diferença entre flexografia e offset?",
    "Quais tipos de tintas são usadas na flexografia?",
    "O que é ganho de ponto na flexografia?",
    "Quais problemas comuns podem ocorrer na impressão flexográfica?",
    "Onde a flexografia é mais utilizada na indústria?"
]

# 2. Prompt Estruturado (Forçando JSON)
prompt_json = f"""
Responda às 10 perguntas abaixo sobre flexografia.
Você DEVE retornar a resposta EXATAMENTE no formato JSON abaixo, com 10 entradas:

{{
  "1": "resposta 1",
  "2": "resposta 2",
  ...
  "10": "resposta 10"
}}

Perguntas:
{chr(10).join([f"{i+1}. {p}" for i, p in enumerate(perguntas)])}
"""

print("Solicitando 10 respostas estruturadas...")

try:
    # Usando 'response_format' para garantir que venha um JSON
    completion = client.chat.completions.create(
        model="llama-3.3-70b-versatile",
        messages=[
            {"role": "system", "content": "Você é um especialista em impressão flexográfica que só responde em JSON puro."},
            {"role": "user", "content": prompt_json}
        ],
        response_format={"type": "json_object"}
    )

    # 3. Parse do JSON
    respostas_dict = json.loads(completion.choices[0].message.content)
    
    # Transformando o dicionário em uma lista ordenada de 1 a 10
    lista_respostas = [respostas_dict[str(i)] for i in range(1, 11)]

    # 4. Criando o DataFrame
    df = pd.DataFrame({
        'ID': range(1, 11),
        'Pergunta': perguntas,
        'Resposta': lista_respostas
    })

    # Salva o arquivo
    df.to_csv('respostas_flexo_final.csv', index=False, encoding='utf-8-sig')
    
    print(f"Sucesso! {len(df)} perguntas processadas corretamente.")
    display(df)

except Exception as e:
    print(f"Erro: {e}")
1 resposta

Olá, Danilo! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de laço de repetição para estruturar as perguntas, utilizou muito bem o parse em JSON para organizar as respostas e ainda compreendeu a importância da conversão em DataFrame para análise estruturada.

Uma dica interessante para o futuro é aplicar um tratamento de exceções mais específico para validar o JSON antes de carregar:

try:
    respostas_dict = json.loads(completion.choices[0].message.content)
except json.JSONDecodeError as e:
    print("Erro ao decodificar JSON:", e)

Isso faz o código lidar melhor com retornos inesperados e evita falhas na execução.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!