Почему только Python 3.8 — ядро ​​Azure ML может найти модуль openai в блокноте

В Azure ML Studio я создал notebook, установил несколько пакетов и попытался запустить код

!pip install -r requirements.txt

выше работал

! pip show openai

Результат pip show openai

Name: openai
Version: 0.25.0
Summary: Python client library for the OpenAI API
Home-page: https://github.com/openai/openai-python
Author: OpenAI
Author-email: [email protected]
License: None
Location: /anaconda/envs/azureml_py38/lib/python3.8/site-packages
Requires: typing-extensions, pandas, requests, openpyxl, pandas-stubs, tqdm, numpy
Required-by: 

Код

import openai
import re
import requests
import sys
from num2words import num2words
import os
import pandas as pd
import numpy as np
from openai.embeddings_utils import get_embedding, cosine_similarity
from transformers import GPT2TokenizerFast

#API_KEY = os.getenv("AZURE_OPENAI_API_KEY") 
API_KEY = "somekey"
#RESOURCE_ENDPOINT = os.getenv("AZURE_OPENAI_ENDPOINT") 
RESOURCE_ENDPOINT = "https://someendpoint/"
openai.api_type = "azure"
openai.api_key = API_KEY
openai.api_base = RESOURCE_ENDPOINT
openai.api_version = "2022-12-01"

url = openai.api_base + "/openai/deployments?api-version=2022-12-01"

r = requests.get(url, headers = {"api-key": API_KEY})

print(r.text)

Я обнаружил, что только Python 3.8 Azure ML может найти openai модуль. Когда я выбрал другое ядро, я получил ошибку moduel openai not found. Почему?

Ошибка при выборе другого ядра

ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 1
----> 1 import openai
      2 import re
      3 import requests

ModuleNotFoundError: No module named 'openai'

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
169
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я попробовал в своей среде и получил следующие результаты:

Первоначально я получил ту же ошибку в своей среде.

Ошибка:

   ModuleNotFound Error
    Input In [9], in <cell line: 1>()
    ----> 1 import openai
    2 import re
    3 import requests
    Traceback (most recent call last)
    ModuleNotFound Error:No module named openai '

Причина, по которой openai module не обнаруживается при переключении на другое ядро ​​в Azure ML Studio, заключается в том, что модуль установлен в среде Python, связанной с ядром записной книжки. Каждое ядро ​​в Azure ML Studio имеет собственную изолированную среду Python, а это означает, что пакеты, которые вы устанавливаете в одном ядре, будут недоступны в другом ядре.

Вам нужно напрямую установить команды. Когда я пробовал с тем же кодом и пакетами, он успешно выполнялся:

!pip install openai==0.27.4
!pip install pandas==2.0.0
!pip install num2words==0.5.12

Код:

import openai
import re
import requests
import sys
from num2words import num2words
import os
import pandas as pd
import numpy as np
from openai.embeddings_utils import get_embedding, cosine_similarity
from transformers import GPT2TokenizerFast

#API_KEY = os.getenv("AZURE_OPENAI_API_KEY") 
API_KEY = "somekey"
#RESOURCE_ENDPOINT = os.getenv("AZURE_OPENAI_ENDPOINT") 
RESOURCE_ENDPOINT = "https://someendpoint/"
openai.api_type = "azure"
openai.api_key = API_KEY
openai.api_base = RESOURCE_ENDPOINT
openai.api_version = "2022-12-01"

url = openai.api_base + "/openai/deployments?api-version=2022-12-01"

r = requests.get(url, headers = {"api-key": API_KEY})

print(r.text)

Выход:

{
  "data": [
    {
      "scale_settings": {
        "scale_type": "standard"
      },
      "model": "gpt-35-turbo",
      "owner": "organization-owner",
      "id": "deploymentname1",
      "status": "succeeded",
      "created_at": 16807xxx,
      "updated_at": 16807xxx,
      "object": "deployment"
    }
  ],
  "object": "list"
}

Ссылка: Запускайте блокноты Jupyter в своей рабочей области — Машинное обучение Azure | Обучение Майкрософт

Просто убедитесь, что используете правильный префикс для команды pip. В моем случае я запускал «% pip», а не «! pip» при установке openai.

С «% pip» пакеты устанавливаются в той же среде, что и ваш ноутбук, а не в оболочке.

Другие вопросы по теме