Oi, Yan! Como vai?
Sinto muito pela situação e vou tentar te ajudar da melhor forma possível.
Com o que você descreveu, o seu código está praticamente correto para a versão mais atual da biblioteca openai.
Se ele não executa, o problema costuma estar em um destes pontos:
1. A biblioteca openai está desatualizada
Esse código funciona melhor com a versão mais recente da biblioteca.
Exemplo: comando para instalar ou atualizar as bibliotecas:
pip install --upgrade openai python-dotenv
2. A chave da API não está sendo carregada
Se a variável OPENAI_API_KEY não estiver vindo do arquivo .env, a conexão com a OpenAI falha.
3. O arquivo .env pode estar incorreto
Ele deve ficar assim:
OPENAI_API_KEY=sua_chave_aqui
4. Pode haver problema no ambiente virtual ou nas dependências
Confirme se instalou os pacotes no mesmo ambiente em que está executando o script.
Ajuste seu código assim:
from openai import OpenAI
from dotenv import load_dotenv
import os
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
print("Erro: OPENAI_API_KEY nao foi encontrada.")
else:
client = OpenAI(api_key=api_key)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "user", "content": "Fale algo aleatorio"}
]
)
print(response.choices[0].message.content)
O que esse código faz:
- carrega as variáveis do arquivo
.env; - busca a chave
OPENAI_API_KEY; - verifica se a chave existe;
- cria o cliente da OpenAI;
- envia uma mensagem para o modelo;
- mostra a resposta no terminal.
Pontos importantes para conferir:
- se o arquivo se chama realmente
.env; - se a chave está sem aspas;
- se o ambiente virtual está ativo;
- se a versão do Python e da biblioteca estão corretas;
Se ao rodar ainda aparecer erro, o ideal é observar e nos trazer a mensagem exata do terminal, porque ela mostra se o problema está na chave, na instalação da biblioteca ou na sintaxe.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado