Пример Azure Cognitive services {body} - PullRequest
1 голос
/ 12 мая 2019

Я играл с сервисами Azure Cognitive и использовал предоставленный пример кода для анализа формы. Я не уверен, какой код использовать для заполнения {body} части кода. Кто-нибудь может поделиться примером кода, который я должен использовать в C #? Я использую новый API Form Recogniser, однако код будет таким же, как и у Computer Vision API.

Я смог успешно сделать это, используя Curl, но не могу заставить его работать в C #

curl -X POST "https://westus2.api.cognitive.microsoft.com/formrecognizer/v1.0-preview/custom/models/ff956100-613b-40d3-ae74-58e4fcc76384/analyze" -H "Content-Type: multipart/form-data" -F "form=@\"https://recognizermodelxero.blob.core.windows.net/testinvoices/00046266.pdf\";type=application/pdf" -H "Ocp-Apim-Subscription-Key: 1234567890"

Вот что я пробовал ...

  byte[] byteData = Encoding.UTF8.GetBytes(System.IO.File.ReadAllText("test.pdf"));

...

namespace CSHttpClientSample
{
    static class Program
    {
        static void Main()
        {
            MakeRequest();
            Console.WriteLine("Hit ENTER to exit...");
            Console.ReadLine();
        }

        static async void MakeRequest()
        {
            var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            // Request headers
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}");

            // Request parameters
            queryString["keys"] = "{array}";
            var uri = "https://westus2.api.cognitive.microsoft.com/formrecognizer/v1.0-preview/custom/models/{id}/analyze?" + queryString;

            HttpResponseMessage response;

            // Request body
            byte[] byteData = Encoding.UTF8.GetBytes("{body}");

            using (var content = new ByteArrayContent(byteData))
            {
               content.Headers.ContentType = new MediaTypeHeaderValue("< your content type, i.e. application/json >");
               response = await client.PostAsync(uri, content);
            }

        }
    }
}   

Я приведу пример кода, который будет использоваться вместо {body}

1 Ответ

0 голосов
/ 13 мая 2019

Ниже приведен пример кода Python для запуска когнитивной службы распознавателя форм, в которой для тега body я передал URL SAS:

########### Python Form Recognizer Train #############
from requests import post as http_post

# Endpoint URL
base_url = r"<Endpoint>" + "/formrecognizer/v1.0-preview/custom"
source = r"<SAS URL>"
headers = {
    # Request headers
    'Content-Type': 'application/json',
    'Ocp-Apim-Subscription-Key': '<Subscription Key>',
}
url = base_url + "/train" 
body = {"source": source}
try:
    resp = http_post(url = url, json = body, headers = headers)
    print("Response status code: %d" % resp.status_code)
    print("Response body: %s" % resp.json())
except Exception as e:
    print(str(e))

, поэтому, чтобы ответить на ваш вопрос, вы можете передать SAS в параметре {body},Надеюсь, это поможет.

Ссылка

https://review.docs.microsoft.com/en-us/azure/cognitive-services/form-recognizer/quickstarts/python-train-extract?branch=release-build-cogserv-forms-recognizer

C #:

Пожалуйста, используйте метод ниже, чтобы получить массив байтов для {body} Param

static byte[] GetImageAsByteArray(string imageFilePath)

        {

            // Open a read-only file stream for the specified file.

            using (FileStream fileStream =

                new FileStream(imageFilePath, FileMode.Open, FileAccess.Read))

            {

                // Read the file's contents into a byte array.

                BinaryReader binaryReader = new BinaryReader(fileStream);

                return binaryReader.ReadBytes((int)fileStream.Length);

            }

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...