2
respostas

[Bug] erro no import OpenAI

Ao tentar rodar o meu programa ocorre um erro no import da OpenAI:

(venv) (base) clayton@pop-os:~/Clayton/testeAPI$ pip freeze
annotated-types==0.6.0
anyio==4.2.0
certifi==2023.11.17
distro==1.9.0
h11==0.14.0
httpcore==1.0.2
httpx==0.26.0
idna==3.6
openai==1.9.0
pydantic==2.5.3
pydantic_core==2.14.6
sniffio==1.3.0
tqdm==4.66.1
typing_extensions==4.9.0
(venv) (base) clayton@pop-os:~/Clayton/testeAPI$ /bin/python3 /home/Clayton/testeAPI/main.py
Traceback (most recent call last):
  File "/home/Clayton/testeAPI/main.py", line 1, in <module>
    from openai import OpenAI
ModuleNotFoundError: No module named 'openai'
(venv) (base) clayton@pop-os:~/Clayton/testeAPI$

vale observar que eu instalei o OpenIA e o dotenv. também desinstalei e voltei a instalar mas o problema persiste.

from openai import OpenAI
from dotenv import load_dotenv
from pathlib import Path, os

load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

resposta = client.chat.completions.create(
    messages =[
        {
            "role": "system",
            "content": "Listar apenas nomes dos produtos, sem considerar descrição."
        },
        {
            "role": "user",
            "content": "Liste 3 produtos autossustentáveis"
        }
    ],
    model='GPT-3.5'
)

print(resposta.choices[0].message.content)

alguém teve esse mesmo problema e/ou consegue me ajudar?

2 respostas

Olá Clayton, tudo bem?

Fiz alguns testes aqui e o seu código rodou corretamente (após realizar um alteração no modelo)..

No entanto, a versão que estmaos utilizando no curso é a 1.10.0 da Open AI. Desta forma, recomendamos que você atualize sua biblioteca da OpenAI.

Apenas tome cuidado, pois é recomendado que você tenha um ambiente virtual como sugerido no começo do curso, para evitar que outros projetos que utilizem uma versão anterior da biblioteca não sejam afetados pela sua atualização.

Para atualizar utilize o código abaixo:

pip install openai --upgrade

Aqui está o seu código com o nome do modelo revisado:

from openai import OpenAI
from dotenv import load_dotenv
from pathlib import Path, os

load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

resposta = client.chat.completions.create(
    messages =[
        {
            "role": "system",
            "content": "Listar apenas nomes dos produtos, sem considerar descrição."
        },
        {
            "role": "user",
            "content": "Liste 3 produtos autossustentáveis"
        }
    ],
    model='gpt-3.5-turbo'
)

print(resposta.choices[0].message.content)

Olá Clayton, para o error que você possui acima, creio que seja interessante trabalhar em um ambiente mais controlado como Docker por exemplo, vou te passar os seguintes passos abaixo, mas antes de tudo precisa ter o docker instalado no sua maquina

1-Crie o arquivo Dockerfile, com os comanados abaixo:

FROM python:3.10

WORKDIR /app

RUN pip install openai python-dotenv pydub instabot Pillow

2-Crie o arquivo docker-compose.yaml, com as configs abaixo:

version: "3.3"

services:
  app:
    build:
      context: ./
      dockerfile: Dockerfile
    image: user/gpt-app:v1.0.0
    container_name: gpt-app
    networks:
      - gpt-network
    restart: always

networks:
  gpt-network:
    driver: bridge

3-Agora vamos executar o docker-compose.yaml com seguinte comando:

    docker-compose up -d

4-Agora vamos executar o container em real-time, para isso você precisa estar na pasta do seu projeto do curso, execute o comando abaixo:

    docker run --rm -it -v $(pwd)/:/usr/src/app user/gpt-app:v1.0.0 bash

5- Quando estiver dentro do container em execução, execute o comando abaixo, pois levara para o diretorio com os arquivos do seu projeto:

    cd /usr/src/app/