Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Desafio e Problemas ao usar genai

Olá, estou tendo muitos problemas ao usar o genai, logo na primeira execução tenho como retorno, o erro de que minha cota foi excedida, estou muito triste com essa IA. Tentei alterar as versões e usar anteriores, mas sempre tendo o mesmo erro. Até mesmo usando o sleep ainda dava esse mesmo erro.

Devido a esses problemas, resolvi utilizar o groq para minha solução.

Desafio:

  • Criar um arquivo.txt a partir de uma lista de perguntas vindas de uma lista em Python [].
  • Ler as perguntas desse arquivo .txt e salvá-las em uma lista.
  • Obter respostas de um LLM para cada uma.
  • Salvar os resultados em um novo arquivo .csv.
  • Ler o arquivo .csv usando Pandas.
# Etapa 1
lista_de_perguntas = [
    "Qual seleção é a maior vencedora de Copas do Mundo?",
    "Qual jogador é o maior artilheiro da história das Copas?",
    "Quem marcou o famoso gol conhecido como 'Mão de Deus'?",
    "Qual é a única seleção que participou de todas as edições?",
]

with open("perguntas.txt", "w", encoding="utf-8") as arquivo:

  for pergunta in lista_de_perguntas:
    arquivo.write(pergunta + "\n")


# Etapa 2
lista_desafio = []

with open("perguntas.txt", "r", encoding="utf-8") as arquivo:
  for linha in arquivo:
    lista_desafio.append(linha.strip())

print(lista_desafio)


!pip install groq


# Etapa 3
import time
from groq import Groq
from google.colab import userdata

# Busca a chave GROQ_API_KEY nos Secrets do Colab
groq_api_key = userdata.get('GROQ_API_KEY')
client = Groq(api_key=groq_api_key)

lista_de_dicionarios_de_respostas = []

for pergunta in lista_desafio:
    time.sleep(1)
    
    response = client.chat.completions.create(
        model="llama-3.3-70b-versatile",
        messages=[
            {
                "role": "user",
                "content": f"Gere uma resposta muito sucinta para a pergunta: {pergunta}"
            }
        ],
        temperature=0.5,
        max_tokens=100
    )
    
    resposta_texto = response.choices[0].message.content.strip()
    
    lista_de_dicionarios_de_respostas.append({
        "pergunta": pergunta, 
        "resposta": resposta_texto
    })

print(lista_de_dicionarios_de_respostas)


# Etapa 4
with open("respostas1.csv", "w", encoding="utf-8") as arquivo:
  arquivo.write("pergunta,resposta\n")
  for pergunta_dict in lista_de_dicionarios_de_respostas:
      arquivo.write(f"{pergunta_dict['pergunta']},{pergunta_dict['pergunta']}\n")


# Etapa 5
novo_df = pd.read_csv("respostas1.csv")
1 resposta

Boa noite, Thayane! Tranquilo?

De fato os modelos de LLM podem sofrer atualizações diariamente, que bom que achou outra alternativa.

Mandou muito bem explorando o uso da lista de perguntas em Python, apresentou com clareza a integração com o Groq para obter respostas de LLM e ainda destacou a etapa de persistência dos resultados em arquivos .txt e .csv. Esse passo a passo mostra organização, domínio prático e preocupação em validar cada fase da solução.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Tratamento de erros: incluir try/except para lidar com falhas de API ou leitura de arquivos.
  • Automatização: usar algumas funções para encapsular cada etapa e facilitar a reutilização do código.
  • Validação de dados: garantir que as respostas sejam salvas corretamente no .csv (no seu código, vale ajustar para salvar resposta em vez de repetir pergunta).

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: você prefere elaborar esse tipo de solução em etapas bem detalhadas como fez ou transformar tudo em uma função única para simplificar a execução?

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

Abraço e bons estudos!

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