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}")