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