1
resposta

from helpers import *

Opa tudo bem? Aqui é o Natan. Estou enfrentando um problema ao tentar usar a função "carrega" dentro do arquivo "app.py". Me parece que não estou importando corretamente helpers.py (from helpers import *). Vou colocar meu código abaixo.

app.py

from flask import Flask, render_template, request, Response
from openai import OpenAI
from dotenv import load_dotenv
import os
from time import sleep
from helpers import *



load_dotenv()

cliente = OpenAI(api_key=os.getenv("minha chave"))
modelo = "gpt-4"

app = Flask(__name__)
app.secret_key = 'minha chave'

contexto = carrega("dados/ecomart.txt")


def bot(prompt):
    maximo_tentativas = 1
    repeticao = 0

    while True:
        try:
            prompt_do_sistema = f"""
            Você é um chatbot de atendimento a clientes de um e-commerce. 
            Você não deve responder perguntas que não sejam dados do e-commerce informado!
            Você deve gerar respostas utilizando o contexto abaixo.

            # Contexto
            {contexto}
            """

            response = cliente.chat.completions.create(
                messages=[
                        {
                                "role": "system",
                                "content": prompt_do_sistema
                        },
                        {
                                "role": "user",
                                "content": prompt
                        }
                ],
                temperature=1,
                max_tokens=300,
                top_p=1,
                frequency_penalty=0,
                presence_penalty=0,
                model = modelo)
            return response
        except Exception as erro:
                repeticao += 1
                if repeticao >= maximo_tentativas:
                        return "Erro no GPT: %s" % erro
                print('Erro de comunicação com OpenAI:', erro)
                sleep(1)

@app.route("/chat", methods=["POST"])
def chat():
    prompt = request.json["msg"]
    resposta = bot(prompt)
    if isinstance(resposta, str):
        return resposta
    else:
        texto_resposta = resposta.choices[0].message.content
        return texto_resposta

@app.route("/")
def home():
    return render_template("index.html")

if __name__ == "__main__":
    app.run(debug = True)
    
-------------------------------------------------------------------------------------------------------------

helpers.py

import base64
import cv2
import numpy as np


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 no carregamento de arquivo: {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 salvar arquivo: {e}")

Código de erro abaixo: File "c:\Users\Acer\Desktop\chatbot\Projeto---3573\app.py", line 19, in <module> contexto = carrega("dados/ecomart.txt") NameError: name 'carrega' is not defined

Vou colocar aqui um print do terminal, pois parece que não estou mais no ambiente virtual como estava antes.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Natan! Tudo bem?

Esse tipo de situação pode estar acontecendo por alguns motivos diferentes. Vou sugerir algumas verificações e ações que você pode realizar para tentar resolver o problema:

  1. Verifique o diretório: certifique-se de que o arquivo helpers.py está no mesmo diretório que o app.py. Se eles estiverem em diretórios diferentes, o Python não conseguirá importar a função corretamente.

  2. Confira o Ambiente Virtual: pela imagem do terminal que você compartilhou, parece que você não está mais no ambiente virtual que estava utilizando anteriormente. É importante que você ative o ambiente virtual onde você instalou as dependências do seu projeto. Você pode fazer isso navegando até o diretório do seu projeto no terminal e executando o comando de ativação do ambiente virtual, que geralmente é algo como source venv/bin/activate em sistemas Unix ou venv\Scripts\activate em Windows.

  3. Verifique se há erros de digitação: às vezes, um simples erro de digitação pode causar esse tipo de problema. Confira se o nome do arquivo helpers.py está correto e se a função carrega está definida exatamente com esse nome no arquivo.

Se após essas verificações o problema persistir, pode ser útil verificar se há alguma mensagem de erro mais específica no terminal quando você tenta rodar o app.py e um print da estrutura de pastas e arquivos do seu projeto, a estrutura que fica ao lado esquerdo da página do VS Code.

Espero que essas sugestões lhe ajudem, caso tenha mais problemas estarei à disposição.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.