1
resposta

[Desafio] - Solução utilizando o GROQ

Olá, optei pela solução com o groq para não ter problemas com limite de uso, fiz uma função para chamar a LLM bem simples com a passagem de parâmetros que pode ser melhorado adicionando novos (temperatura, max_tokens, etc).

Chamar GROQ

!pip install -q groq

import os
from google.colab import userdata
from groq import Groq

os.environ['GROQ_API_KEY'] = userdata.get('GROQ_API_KEY')

client = Groq()

Etapa 1:

# Criar a lista de perguntas
lista_de_perguntas = [
    "De que é feito o Sol?",
    "De que é feito o planeta Saturno?",
    "Qual é a galáxia mais antiga já encontrada?",
    "Qual é a maior estrela já encontrada?",
    "Qual é a estrela mais próxima do Sol?"
]

Etapa 2:

# Criar  um arquivo TXT a partir de uma lista
with open('lista_de_perguntas.txt', 'w', encoding='utf-8') as arquivo:
  for pergunta in lista_de_perguntas:
    arquivo.write(pergunta + '\n')

Etapa 3:

# Ler o arquivo TXT e gravar as perguntas em uma lista do Python
lista_do_arquvo = []

with open('lista_de_perguntas.txt', 'r', encoding='utf-8') as arquivo:
  for linha in arquivo:
    lista_do_arquvo.append(linha.strip())

Etapa 4:

Criacao de função LLM:

# função chama LLM
def resposta_llm(pergunta, model_llm = 'openai/gpt-oss-20b'):
  response = client.chat.completions.create(
      model=model_llm,
      messages=[{'role':'user', 'content':pergunta}],
      temperature=0.7,
      max_completion_tokens=8192,
      top_p=1,
      stream=False
  )

  return response.choices[0].message.content

Utilização da função:

# Obter respostas 'sucintas' de uma LLM para cada pergunta
arquivo_csv = []

for _, pergunta in enumerate(lista_do_arquvo):
  # chamada da funcao
  resposta = resposta_llm(f'Responda, de forma sucinta, {pergunta}')

  arquivo_csv.append({'Pergunta': pergunta, 'Resposta': resposta.strip()})

Etapa 5:

# Gravar as perguntas e respostas em um arquivo CSV
df = pd.DataFrame(arquivo_csv)

df.to_csv(
    "perguntas_respostas.csv",
    index=False,
    sep=",",
    encoding="utf-8-sig"   # evita problema com acentos
)

print("CSV gerado com sucesso.")

Abraços

1 resposta

Oi, Alexandre! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Ótima a sua iniciativa de utilizar o GROQ para contornar o limite de uso. Parabéns por buscar essa alternativa e estruturar a solução com uma função dedicada para chamar a LLM. Essa organização, junto com as etapas de criação do .txt, leitura das perguntas e geração do .csv com pandas, deixa o fluxo do código claro e facilita futuras melhorias, como você mencionou ao pensar em parâmetros adicionais como temperature e max_tokens.

Uma dica interessante para o futuro é usar o método enumerate() quando quiser percorrer uma lista e também acessar o índice de cada item. Isso ajuda a acompanhar o processamento das perguntas ou criar logs simples. Veja este exemplo:


perguntas = ["O que e o Sol?", "O que e Saturno?"]

for indice, pergunta in enumerate(perguntas):
    print(indice, pergunta)

Esse código percorre a lista perguntas retornando o índice e o conteúdo de cada elemento, o que pode ajudar a identificar qual pergunta esta sendo processada durante a execução do programa.

Alura

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