2
respostas

[Dúvida] Erro na linha 62, nao consegui identificar.

Erro no terminal: Iniciou a analise de sentimentos do produto Maquiagem mineral Traceback (most recent call last): File "/Users/cauecarvalhal/curso_1_openai/analisador_sentimento.py", line 62, in analisador_sentimentos("Maquiagem mineral")

Meu codigo:
from openai import OpenAI
from dotenv import load_dotenv
import os

load_dotenv()

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
modelo = "gpt-4"

def carrega(nome_do_arquivo):
    try:
        with open(nome_do_arquivo, "r") as arquivo:
            dados = arquivo.read()
            return dados
    except IOError as e:
        print(f"Erro: {e}")

def salva(nome_do_arquivo, conteudo):
    try:
        with open(nome_do_arquivo, "w", encoding="utf-8") as arquivo:
            arquivo.write(conteudo)
    except IOError as e:
        print(f"Erro ao salvador arquivo: {e}")

def analisador_sentimentos(produto):
    prompt_sistema = f"""
        Você é um analisador de sentimentos de avaliações de produtos.
        Escreva um parágrafo com até 50 palavras resumindo as avaliações e 
        depois atribua qual o sentimento geral para o produto.
        Identifique também 3 pontos fortes e 3 pontos fracos identificados a partir das avaliações.

        # Formato de Saída

        Nome do Produto:
        Resumo das Avaliações:
        Sentimento Geral: [utilize aqui apenas Positivo, Negativo ou Neutro]
        Ponto fortes: lista com três bullets
        Pontos fracos: lista com três bullets
    """
    prompt_usuario = carrega(f"./dados/avaliacoes-{produto}.txt")
    print(f"Iniciou a analise de sentimentos do produto {produto}")

    lista_mensagens = [
        {
            "role": "sytem",
            "content": prompt_sistema
        },
        {
            "role": "user",
            "content": prompt_usuario
        }
    ]

    resposta = client.chat.completions.create(
        messages = lista_mensagens,
        model = modelo
    )

    texto_resposta = resposta.choices[0].message.content
    salva(f"./dados/avaliacoes-{produto}.txt")

analisador_sentimentos("Maquiagem mineral")
2 respostas

Olá!

Erro de digitação em "sytem"

"role": "sytem",  # errado

O correto é "system" (com s):

"role": "system",  # correto

Esse erro faz com que a API da OpenAI rejeite a estrutura da requisição, pois a chave "role" só aceita valores válidos como "system", "user" ou "assistant".

Outro erro: salva está sendo chamado sem o segundo argumento

salva(f"./dados/avaliacoes-{produto}.txt")

A função salva precisa de dois parâmetros:

def salva(nome_do_arquivo, conteudo):

Você precisa passar texto_resposta como segundo argumento:

salva(f"./dados/avaliacoes-{produto}.txt", texto_resposta)

Obrigado, funcionou!