Как исправить «ErrorSource» при использовании конечной точки CreateImagesFromUrls в Microsoft Custom Vision Training API - PullRequest
0 голосов
/ 22 мая 2019

При использовании конечной точки «CreateImagesFromUrls» API обучения Microsoft Cognitive Services Custom Vision для каждого изображения возвращается сообщение об ошибке «ErrorSource».

Я могу создавать теги с помощью API, поэтому не думаю, что это проблема аутентификации, хотя может случиться так, что API не сможет загрузить URL-адреса изображений, которые являются изображениями, хранящимися в SharePoint.

Я пытался использовать несколько разных форматов JSON для тела HTTP в вызове REST.

Это веб-часть SPFX, созданная с использованием React и TypeScript. Цель состоит в том, чтобы загрузить изображения из библиотеки SharePoint и опубликовать их в API обучения. Вот моя функция загрузки:

private async uploadImages(tag: string, imageUrls: Array<any>): Promise<String> {
        const imageBatch: any = {images:[], tagIds: [tag]};
        imageUrls.map(iUrl => {
            imageBatch.images.push({url: iUrl, tagIds: [tag], regions: [
                {
                    tagId: tag,
                    left: 0.0,
                    top: 0.0,
                    width: 0.0,
                    height: 0.0
                  }
            ]});
        });
        console.log('ImageBatch:');
        console.log(imageBatch);
        //Add images
        const keyPostUrl: string = this.endPoint + 'projects/' + this.pRID + '/images/urls';
        const requestHeaders: Headers = new Headers();
        requestHeaders.append('Content-type', 'application/json');
        requestHeaders.append('Cache-Control', 'no-cache');
        requestHeaders.append('Training-key', this.trainingKey);

        const httpClientOptions: IHttpClientOptions = {
            body: JSON.stringify(imageBatch),
            headers: requestHeaders
        };

        return this.context.post(
        keyPostUrl,
        HttpClient.configurations.v1,
        httpClientOptions)
        .then((response: Response): Promise<HttpClientResponse> => {
            console.log("Sending Images.");
            return response.json();
        }).then(data => {
            console.log(data);
            console.log("Is batch successful: " + data.isBatchSuccessful); 
        });  
    }

Ожидается увидеть isBatchSuccessful = true и загруженные изображения. Однако я получаю isBatchSuccessful = false, ошибка «ErrorSource».

Пример ответа, возвращаемого из API:

{
   "isBatchSuccessful":false,
   "images":[
      {
         "sourceUrl":"https://myserver.sharepoint.com/sites/dev/Vision%20Training%20List/1234/image_example_752%20-%20Copy%20(2).jpg",
         "status":"ErrorSource",
         "image":null
      },
      {
         "sourceUrl":"https://myserver.sharepoint.com/sites/dev/Vision%20Training%20List/1234/basic-image-template%20-%20Copy%20(3).png",
         "status":"ErrorSource",
         "image":null
      },
   ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...