5
respostas

[Bug] erro no codigo py para resumir os emails

def resumidor_de_emails(lista_de_emails):
   
    for numero, email in enumerate(lista_de_emails):
        resposta = client.models.generate_content(
            model="gemini-2.5-flash",
            contents=f"""Vou te mandar o corpo de um e-mail. Quero que você o resuma em apenas 1 linha,
                        passando o intuito daquele e-mail. Segue o e-mail: {email}"""
            )
        print(f"E-mail {numero + 1}: {resposta.text}")
        print("-" * 50)

essa parte de cima esta correta, não apresenta erro;
mas a partir do codigo abaixo começa apresentar o erro informado, ja foi alterado mas o erro persiste

lista_resumos = resumidor_de_emails(email_bodies)

essa parte do codigo da AULA 3, esta apresentanfo erro para resumir os e-mails :

NameError                                 Traceback (most recent call last)
/tmp/ipython-input-849164838.py in <cell line: 0>()
----> 1 lista_resumos = resumidor_de_emails(email_bodies)

/tmp/ipython-input-2112754353.py in resumidor_de_emails(lista_de_emails)
      3 
      4     for numero, email in enumerate(lista_de_emails):
----> 5         resposta = client.models.generate_content(
      6             model="gemini-2.5-flash",
      7             contents=f"""Vou te mandar o corpo de um e-mail. Quero que você o resuma em apenas 1 linha,

NameError: name 'client' is not defined

alguem sabe como pode corrigir?

resumidor_de_emails(email_bodies)

erro:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipython-input-2417958942.py in <cell line: 0>()----> 1 resumidor_de_emails(email_bodies)
/tmp/ipython-input-2740137204.py in resumidor_de_emails(lista_de_emails)     
2      
3     for numero, email in enumerate(lista_de_emails):----> 
4         resposta = client.models.generate_content(     
5             model="gemini-2.5-flash",      
6             contents=f"""Vou te mandar o corpo de um e-mail. Quero que você o resuma em apenas 1 linha,

NameError: name 'client' is not defined

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
5 respostas

Ola Rosana.
Falta uma parte do código ou ela está omitida.
Avisa ai.
O erro que você está recebendo:

NameError: name 'client' is not defined

significa que o Python não reconhece o nome client porque ele não foi definido no seu código antes de ser usado.
Antes de usar client.models.generate_content(...), você precisa criar ou importar o objeto client que representa a conexão com o modelo de IA, como o Gemini (da Google) ou outro.
Você deve adicionar o seguinte código antes de usar a função resumidor_de_emails:

import google.generativeai as genai

genai.configure(api_key="SUA_API_KEY")  # Coloque sua chave de API aqui

client = genai  # Agora client está definido e pode ser usado

Ou você pode usar diretamente sem o client, assim:

import google.generativeai as genai

genai.configure(api_key="SUA_API_KEY")

def resumidor_de_emails(lista_de_emails):
    for numero, email in enumerate(lista_de_emails):
        resposta = genai.generate_content(
            model="gemini-1.5-flash",  # ou outro modelo válido
            contents=f"""Vou te mandar o corpo de um e-mail. Quero que você o resuma em apenas 1 linha,
                        passando o intuito daquele e-mail. Segue o e-mail: {email}"""
        )
        print(f"E-mail {numero + 1}: {resposta.text}")
        print("-" * 50)

Analisa ai e me dê um feedback.
Bons estudos.

Obrigada querido!
mas continua apresentando o mesmo erro.
já alterei de varias formas e nada, o erro persiste ....

codigo inicial

email_bodies = [
    """
    Olá, equipe!

    Gostaria de informar que a reunião de planejamento para o próximo trimestre foi remarcada para a próxima sexta-feira, às 10h.
    Por favor, confirmem sua presença.

    Atenciosamente,
    João Silva
    """,
    """
    Prezados clientes,

    Nossa plataforma passará por uma atualização de sistema na madrugada de sábado para domingo.
    O serviço poderá ficar indisponível por algumas horas. Pedimos desculpas por qualquer transtorno.

    Atenciosamente,
    Equipe de Suporte
    """,
    """
    Oi, Maria!

    Tudo bem? Estou te escrevendo para saber se você recebeu o relatório que te enviei ontem.
    Precisamos fechar a análise até o final da semana. Me avise se precisar de algo.

    Abraços,
    Carlos
    """
  
    """,
]

coloquei dessa forma sem o cliente, executou normal

import google.generativeai as genai

genai.configure(api_key="GEMINI_API_KEY")

def resumidor_de_emails(lista_de_emails):
    for numero, email in enumerate(lista_de_emails):
        resposta = genai.generate_content(
            model="gemini-1.5-flash",  # ou outro modelo válido
            contents=f"""Vou te mandar o corpo de um e-mail. Quero que você o resuma em apenas 1 linha,
                        passando o intuito daquele e-mail. Segue o e-mail: {email}"""
        )
        print(f"E-mail {numero + 1}: {resposta.text}")
        print("-" * 50)

depois quando executo lista_resumos

lista_resumos = resumidor_de_emails(email_bodies)

Apresenta o erro :

NameError                                 Traceback (most recent call last)
/tmp/ipython-input-2707630112.py in <cell line: 0>()
----> 1 lista_resumos = resumidor_de_emails(email_bodies)
      2 

NameError: name 'email_bodies' is not defined

sabe como pode ser corrigido o erro?

Olá Rosana.
Vamos tentar mais uma vez.
Esse erro que você está recebendo agora:
NameError: name 'email_bodies' is not defined significa que o Python não sabe o que é email_bodies, porque essa variável nunca foi criada ou atribuída no seu código antes de você tentar usá-la.
Você precisa definir email_bodies antes de chamar a função resumidor_de_emails(email_bodies). Por exemplo:

email_bodies = [
    "Olá, gostaria de marcar uma reunião para discutirmos os resultados do projeto X.",
    "Prezados, segue em anexo o relatório mensal para análise.",
    "Bom dia, estou entrando em contato para confirmar o agendamento da consultoria."
]

Aí sim, depois disso, pode chamar:

lista_resumos = resumidor_de_emails(email_bodies)

Aqui está um exemplo que você pode testar:

import google.generativeai as genai

# Configure sua chave de API (substitua pela sua)
genai.configure(api_key="SUA_API_KEY")

def resumidor_de_emails(lista_de_emails):
    resumos = []
    for numero, email in enumerate(lista_de_emails):
        resposta = genai.generate_content(
            model="gemini-1.5-flash",  # ou outro modelo disponível para você
            contents=f"""Vou te mandar o corpo de um e-mail. Quero que você o resuma em apenas 1 linha,
                        passando o intuito daquele e-mail. Segue o e-mail: {email}"""
        )
        resumo = resposta.text
        print(f"E-mail {numero + 1}: {resumo}")
        print("-" * 50)
        resumos.append(resumo)
    return resumos

# Aqui você define sua lista de e-mails
email_bodies = [
    "Olá, gostaria de marcar uma reunião para discutirmos os resultados do projeto X.",
    "Prezados, segue em anexo o relatório mensal para análise.",
    "Bom dia, estou entrando em contato para confirmar o agendamento da consultoria."
]

# Aqui você executa a função
lista_resumos = resumidor_de_emails(email_bodies)

E verifique alguns pontos:

  • Sua chave de API correta?
  • O modelo "gemini-1.5-flash" está disponível para você?
  • A variável email_bodies existe antes de chamar a função?

Se tudo isso estiver certo, o código deve rodar normalmente.
Mas para que eu possa fazer uma analise melhor me envie o código completo.
Bom Domingo.
Até...

Obrigada querido!
Bom domingo p/ vc também!

então coloquei dessa forma

email_bodies = [
    "Olá, gostaria de marcar uma reunião para discutirmos os resultados do projeto X.",
    "Prezados, segue em anexo o relatório mensal para análise.",
    "Bom dia, estou entrando em contato para confirmar o agendamento da consultoria."
]

mas quando executo lista_resumos

lista_resumos = resumidor_de_emails(email_bodies)

apresenta o erro:

AttributeError                            Traceback (most recent call last)
/tmp/ipython-input-849164838.py in <cell line: 0>()
----> 1 lista_resumos = resumidor_de_emails(email_bodies)

/tmp/ipython-input-2774477526.py in resumidor_de_emails(lista_de_emails)
      5 def resumidor_de_emails(lista_de_emails):
      6     for numero, email in enumerate(lista_de_emails):
----> 7         resposta = genai.generate_content(
      8             model="gemini-1.5-flash",  # ou outro modelo válido
      9             contents=f"""Vou te mandar o corpo de um e-mail. Quero que você o resuma em apenas 1 linha,

AttributeError: module 'google.generativeai' has no attribute 'generate_content'

coloquei da forma que que informou, ja foi alterado pelo gemini tbm

import google.generativeai as genai

# Configure sua chave de API (substitua pela sua)
genai.configure(api_key="GEMINI_API_KEY")

def resumidor_de_emails(lista_de_emails):
    resumos = []
    for numero, email in enumerate(lista_de_emails):
        resposta = genai.generate_content(  # Use genai.generate_content directly
            model="gemini-2.5-flash", # Specify the model name
            contents=f"""Vou te mandar o corpo de um e-mail. Quero que você o resuma em apenas 1 linha,
                        passando o intuito daquele e-mail. Segue o e-mail: {email}"""
        )
        resumo = resposta.text
        print(f"E-mail {numero + 1}: {resumo}")
        print("-" * 50)
        resumos.append(resumo)
    return resumos

# Aqui você define sua lista de e-mails
email_bodies = [
    "Olá, gostaria de marcar uma reunião para discutirmos os resultados do projeto X.",
    "Prezados, segue em anexo o relatório mensal para análise.",
    "Bom dia, estou entrando em contato para confirmar o agendamento da consultoria."
]

# Aqui você executa a função
lista_resumos = resumidor_de_emails(email_bodies)

mas apresenta o erro:

AttributeError                            Traceback (most recent call last)
/tmp/ipython-input-1316473617.py in <cell line: 0>()
     26 
     27 # Aqui você executa a função
---> 28 lista_resumos = resumidor_de_emails(email_bodies)

/tmp/ipython-input-1316473617.py in resumidor_de_emails(lista_de_emails)
      7     resumos = []
      8     for numero, email in enumerate(lista_de_emails):
----> 9         resposta = genai.generate_content(  # Use genai.generate_content directly
     10             model="gemini-2.5-flash", # Specify the model name
     11             contents=f"""Vou te mandar o corpo de um e-mail. Quero que você o resuma em apenas 1 linha,

AttributeError: module 'google.generativeai' has no attribute 'generate_content'

não sei mais o que fazer kk

Oi.
Não vamos desistir ainda.
Tenta esse código aqui:

import google.generativeai as genai

# Configure sua chave de API (substitua pela sua chave real)
genai.configure(api_key="GEMINI_API_KEY")

# Instancia o modelo uma única vez fora da função (boa prática)
modelo = genai.GenerativeModel(model_name="gemini-1.5-flash")  # ou "gemini-1.5-pro", se disponível

def resumidor_de_emails(lista_de_emails):
    resumos = []
    for numero, email in enumerate(lista_de_emails):
        resposta = modelo.generate_content(
            f"""Vou te mandar o corpo de um e-mail. Quero que você o resuma em apenas 1 linha,
            passando o intuito daquele e-mail. Segue o e-mail: {email}"""
        )
        resumo = resposta.text.strip()  # .strip() para remover espaços extras
        print(f"E-mail {numero + 1}: {resumo}")
        print("-" * 50)
        resumos.append(resumo)
    return resumos

# Lista de e-mails a serem resumidos
email_bodies = [
    "Olá, gostaria de marcar uma reunião para discutirmos os resultados do projeto X.",
    "Prezados, segue em anexo o relatório mensal para análise.",
    "Bom dia, estou entrando em contato para confirmar o agendamento da consultoria."
]

# Executa a função
lista_resumos = resumidor_de_emails(email_bodies)

Observações:

  • Modelo: Usei "gemini-1.5-flash" porque "gemini-2.5-flash" ainda pode não estar disponível via API pública. Substitua conforme a versão que você tem acesso.
  • API Key: Não esqueça de substituir "GEMINI_API_KEY" pela sua chave real.
  • Instanciar fora da função: Evita criar uma nova instância do modelo a cada iteração: isso é mais eficiente.
  • .strip(): Remove espaços em branco desnecessários no resumo retornado.
    Teste ai e veja o que acontece.
    Me envie um feedback depois.
    Até...