Estou criando um 'Resumidor de Textos', mas quando tento executar o programa, ele informa que 'Excedi a cota', porém, ao verificar no site, percebo que ela nem foi usada. libs utilizadas: pip install python-docx, pip install openai==0.28 e pip install python-dotenv (Obs: sim a key está conectada corretamente)
Código:
import os
from docx import Document
import openai
from dotenv import load_dotenv
load_dotenv()
# Configurações da OpenAI
try:
openai.api_key = os.getenv("OPENAI_API_KEY")
except Exception as e:
print("Erro ao inicializar OpenAI:", e)
# Pasta de origem e destino
pasta_texto = "0_Texto"
pasta_resumo = "1_Resumo"
def ler_arquivo(arquivo_escolhido):
caminho_arquivo = os.path.join(pasta_texto, arquivo_escolhido)
if os.path.exists(caminho_arquivo):
with open(caminho_arquivo, "r", encoding="utf-8") as file:
return file.read()
else:
print("Arquivo não encontrado:", arquivo_escolhido)
return None
# Função para gerar um resumo usando a OpenAI
def gerar_resumo(texto, max_tokens=150):
try:
# Chame a API da OpenAI para gerar o resumo
resumo = openai.Completion.create(
engine="gpt-3.5-turbo-instruct",
prompt=f"Escreva um resumo com o seguinte texto: {texto}",
temperature=0.7,
max_tokens=max_tokens, # Define o tamanho do resumo desejado
n=1, # Número de respostas a serem geradas
)
# Retorne o resumo gerado
return resumo['choices'][0]['text'].strip()
except Exception as e:
print("Erro ao gerar resumo:", e)
return None
# Lista os arquivos na pasta Texto
arquivos_texto = os.listdir(pasta_texto)
arquivos_texto.sort() # Ordena os arquivos alfabeticamente
# Exibe a lista de arquivos e permite que o usuário escolha
print("Arquivos disponíveis para resumo:")
for i, arquivo in enumerate(arquivos_texto, start=1):
print(f"{i}. {arquivo}")
# Solicita a escolha do usuário
while True:
try:
escolha = int(input("Digite o número do arquivo que deseja resumir (ou 0 para sair): "))
if escolha == 0:
print("Programa encerrado.")
break
elif 1 <= escolha <= len(arquivos_texto):
arquivo_escolhido = arquivos_texto[escolha - 1]
print(f"Você escolheu o arquivo: {arquivo_escolhido}")
confirmacao = input("Tem certeza que deseja gerar um resumo para este arquivo? (s/n): ")
if confirmacao.lower() == "s":
# Lê o conteúdo do arquivo
conteudo = ler_arquivo(arquivo_escolhido)
if conteudo is not None:
# Gera o resumo
resumo = gerar_resumo(conteudo)
if resumo is not None:
# Cria o diretório de destino se não existir
if not os.path.exists(pasta_resumo):
os.makedirs(pasta_resumo)
# Cria o arquivo de resumo na pasta Resumo
nome_resumo = f"Resumo_{os.path.splitext(arquivo_escolhido)[0]}.docx"
caminho_resumo = os.path.join(pasta_resumo, nome_resumo)
doc = Document()
doc.add_paragraph(resumo)
doc.save(caminho_resumo)
print(f"Resumo gerado com sucesso: {nome_resumo}")
else:
print("Operação cancelada. Escolha outro arquivo.")
else:
print("Número inválido. Tente novamente.")
except ValueError:
print("Entrada inválida. Digite um número válido.")