Minha solução simples como nos aprendizados, sem refatoramento pra funções
#criando lista de perguntas e gravando em um txt
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?"
]
try:
with open('perguntas.txt', 'w', encoding='utf-8') as arquivo:
for pergunta in lista_de_perguntas:
arquivo.write(pergunta + '\n')
except FileExistsError:
print("Arquivo já existe")
#lendo o arquivo criado e criando uma lista de perguntas lidas do arquivo
lista_de_perguntas_lidas = []
try:
with open('perguntas.txt', 'r', encoding='utf-8') as arquivo:
for linha in arquivo:
lista_de_perguntas_lidas.append(linha)
except FileNotFoundError:
print("Arquivo não existe")
lista_de_perguntas_lidas
!pip install -q groq
import os
import openai
from google.colab import userdata
os.environ["GROQ_API_KEY"] = userdata.get('GROQ_API_KEY')
#respostas do LLM com groq e llama
#Terceira Etapa
#reaproveitando o que aprendemos com alguma modificações
#troquei o modelo
#removi o stream
#temperatura 0.5
#separei por ; porque um texto poderia estar vindo como resposta ou pergunta com ","
from groq import Groq
client = Groq()
def obter_resposta_sucinta_do_llm(pergunta: str) -> str:
"""
Envia uma pergunta para a GenAI API e retorna 'resposta'.
"""
try:
completion = client.chat.completions.create(
model="llama-3.3-70b-versatile",
messages=[
{
"role": "user",
"content": f"{pergunta} Responda de forma extremamente concisa."
}
],
temperature=0.5,
max_completion_tokens=150,
stream=False, # stream desativado para receber a resposta pronta
)
# Captura o texto completo da resposta
resposta = completion.choices[0].message.content.strip()
# Retorna formatado
return f"{resposta}"
except Exception as e:
return f"Erro ao processar: {e}"
#Escrever arquivo com perguntas e respostas
try:
with open('perguntas_e_respostas.csv', 'w', encoding='utf-8') as arquivo:
for pergunta in lista_de_perguntas_lidas:
pergunta_limpa = pergunta.strip()
resultado = obter_resposta_sucinta_do_llm(pergunta_limpa)
# Adicionamos o \n para que o pandas entenda que é uma nova linha
linha = f"{pergunta_limpa};{resultado.strip()}\n"
arquivo.write(linha)
print(f"Processado: {pergunta_limpa}")
except Exception as e:
print(f"Um erro ocorreu: {e}")
df = pd.read_csv("perguntas_e_respostas.csv", sep=';', encoding='UTF-8')
df.head(2)
df