Ошибка аутентификации 401 — участник не имеет доступа к API/операции при использовании Azure Open AI с Python SDK

Краткое описание проблемы:

Обнаружение ошибки AuthenticationError с кодом ошибки 401 при попытке доступа к API OpenAI. Сообщение об ошибке указывает, что участник не имеет доступа к API/операции.

Ожидаемый результат:

Субъект-служба должен иметь доступ к указанному API/операции на основе назначенных ролей и разрешений.

Фактический результат:

Получение следующего сообщения об ошибке: У субъекта нет доступа к API/операции. Это не позволяет субъекту-службе получить ожидаемый доступ к API.

Детали окружающей среды:

  • Идентификатор подписки: Отредактировано

  • Назначенные роли: участник, пользователь

  • Идентификатор приложения: Отредактировано

  • API/операция: Microsoft.CognitiveServices/accounts/listKeys/action.

  • Ресурс Azure: отредактировано

Ценю любую поддержку по вышеизложенному

Как установить 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
101
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вам необходимо иметь роль Cognitive Services OpenAI User или Cognitive Services OpenAI Contributor или роль пользователя Cognitive Services, чтобы получить доступ к ресурсу open AI для формирования выводов.

Затем используйте приведенный ниже код.

from azure.identity import get_bearer_token_provider, ClientSecretCredential
from openai import AzureOpenAI
cred = ClientSecretCredential(client_id = "<yourClientId>",tenant_id = "YourTenantId",client_secret = "<ClientSeceret>")
token_provider = get_bearer_token_provider(
    cred, "https://cognitiveservices.azure.com/.default"
)

client = AzureOpenAI(
    api_version = "2024-02-15-preview",
    azure_endpoint = "https://v-jgsopenai.openai.azure.com/",
    azure_ad_token_provider=token_provider
)

response = client.chat.completions.create(
    model = "gpt35", # model = "deployment_name".
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure AI services support this too?"}
    ]
)

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

Выход:

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