SDK когнитивных служб Custom Vision NotFound Ошибка - PullRequest
0 голосов
/ 02 мая 2019

Я испытываю странное поведение. Получил службу Custom Vision, развернутую в Azure. Он содержит один проект без опубликованных моделей.

Используя HTTP REST Api и запрашивая проекты, он корректно возвращает список (одного) проекта, как показано ниже:

GET https://westeurope.api.cognitive.microsoft.com/customvision/v3.0/training/projects HTTP/1.1
Host: westeurope.api.cognitive.microsoft.com
Training-Key: {MY_TRAINING_APIKEY}

apim-request-id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
Date: Thu, 02 May 2019 18:57:25 GMT
Content-Length: 605
Content-Type: application/json; charset=utf-8

[{
  PROJECT_DATA
}]

Но, если я попытаюсь использовать сервис через C # SDK, используя:

Microsoft.Azure.CognitiveServices.Vision.CustomVision.Prediction
Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training

обе версии 1.0, каждый раз, когда я получаю:

Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training.Models.CustomVisionErrorException: 'Операция вернула недопустимый код состояния' NotFound ''

Это фрагмент кода с использованием SDK.

using (CustomVisionTrainingClient client = new CustomVisionTrainingClient())
            {
                client.ApiKey = "{MY_TRAINING_APIKEY}";
                client.Endpoint = "https://westeurope.api.cognitive.microsoft.com/customvision/v3.0/Training/";

                var projects = client.GetProjects();
            }

Интересный факт: пытаясь использовать клиенты Training и Prediction в текущем работающем проекте Custom Vision (также с развернутыми моделями), я получаю ошибку NotFound при каждом методе SDK.

Я что-то упустил? Заранее спасибо. Фабио.

1 Ответ

1 голос
/ 03 мая 2019

Для клиентов CognitiveServices Vision необходимо предоставить базовый URI в качестве свойства Endpoint, а не всю конечную точку API. Клиентский SDK сам добавит остаток пути (включая версию) в зависимости от метода, который вы вызываете.

Так что в вашем случае вам нужно сделать следующее:

using (CustomVisionTrainingClient client = new CustomVisionTrainingClient())
{
    client.ApiKey = "{MY_TRAINING_APIKEY}";
    client.Endpoint = "https://westeurope.api.cognitive.microsoft.com";

    var projects = client.GetProjects();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...