Despite encountering this error, upon checking the website, the quota has not been used. This is my first project using OpenAI, and the error message is as follows: Error code: 429 - {‘error’: {‘message’: ‘You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.’, ‘type’: ‘insufficient_quota’, ‘param’: None, ‘code’: ‘insufficient_quota’}}
import os
from docx import Document
from openai import OpenAI
from dotenv import load_dotenv
import PyPDF2
load_dotenv()
# Configurações da OpenAI
client = OpenAI(
api_key=os.environ.get('OPENAI_API_KEY'),
)
# 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 arquivo_escolhido.endswith('.pdf'):
with open(caminho_arquivo, 'rb') as file:
pdf = PyPDF2.PdfReader(file)
return ' '.join(page.extract_text() for page in pdf.pages)
else:
with open(caminho_arquivo, "r", encoding="utf-8") as file:
return file.read()
def gerar_resumo(texto, max_tokens=300):
resumo = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": f"Escreva um resumo com o seguinte texto: {texto}"},
],
temperature=0.4,
max_tokens=max_tokens,
n=1,
)
return resumo['choices'][0]['message']['content']
def main():
arquivos_texto = sorted(os.listdir(pasta_texto))
print("Arquivos disponíveis para resumo:")
for i, arquivo in enumerate(arquivos_texto, start=1):
print(f"{i}. {arquivo}")
while True:
escolha = input("Digite o número do arquivo que deseja resumir (ou 0 para sair): ")
if escolha.isdigit():
escolha = int(escolha)
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":
conteudo = ler_arquivo(arquivo_escolhido)
resumo = gerar_resumo(conteudo)
if not os.path.exists(pasta_resumo):
os.makedirs(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.")
else:
print("Entrada inválida. Digite um número válido.")
if __name__ == "__main__":
try:
main()
except Exception as e:
print("Ocorreu um erro:", e)