Краткое описание проблемы:
Обнаружение ошибки AuthenticationError с кодом ошибки 401 при попытке доступа к API OpenAI. Сообщение об ошибке указывает, что участник не имеет доступа к API/операции.
Ожидаемый результат:
Субъект-служба должен иметь доступ к указанному API/операции на основе назначенных ролей и разрешений.
Фактический результат:
Получение следующего сообщения об ошибке: У субъекта нет доступа к API/операции. Это не позволяет субъекту-службе получить ожидаемый доступ к API.
Детали окружающей среды:
Идентификатор подписки: Отредактировано
Назначенные роли: участник, пользователь
Идентификатор приложения: Отредактировано
API/операция: Microsoft.CognitiveServices/accounts/listKeys/action.
Ресурс Azure: отредактировано
Ценю любую поддержку по вышеизложенному


Вам необходимо иметь роль 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)
Выход:
