Szybki start: spersonalizowany interfejs API REST do klasyfikacji tekstu

Skorzystaj z tego artykułu, aby rozpocząć tworzenie niestandardowego projektu klasyfikacji tekstu, w którym można trenować modele niestandardowe na potrzeby klasyfikacji tekstu. Model to oprogramowanie sztucznej inteligencji przeszkolone w celu wykonania określonego zadania. W przypadku tego systemu modele klasyfikują tekst i są szkolone przez uczenie się na podstawie oznakowanych danych.

Niestandardowa klasyfikacja tekstu obsługuje dwa typy projektów:

  • Klasyfikacja pojedynczej etykiety — można przypisać pojedynczą klasę dla każdego dokumentu w zestawie danych. Na przykład skrypt filmowy można sklasyfikować tylko jako "Romans" lub "Komedia".
  • Klasyfikacja wielu etykiet — można przypisać wiele klas dla każdego dokumentu w zestawie danych. Na przykład skrypt filmowy można sklasyfikować jako "Komedia" lub "Romans" i "Komedia".

W tym krótkim przewodniku możesz użyć udostępnionych przykładowych zestawów danych do utworzenia wielokrotnej klasyfikacji w celu klasyfikowania skryptów filmowych w jednej lub więcej kategorii. Alternatywnie można użyć zestawu danych klasyfikacji jednoetykietowej do klasyfikowania streszczeń naukowych artykułów w jednej ze zdefiniowanych domen.

Wymagania wstępne

Tworzenie nowego języka platformy Azure w zasobie narzędzi Foundry Tools i koncie usługi Azure Storage

Zanim będzie można użyć niestandardowej klasyfikacji tekstu, musisz utworzyć zasób językowy, który zapewni poświadczenia potrzebne do utworzenia projektu i rozpoczęcia trenowania modelu. Potrzebujesz również konta usługi Azure Storage, na którym można przekazać zestaw danych używany podczas tworzenia modelu.

Ważne

Aby szybko rozpocząć pracę, zalecamy utworzenie nowego zasobu językowego Azure, korzystając z kroków podanych w tym artykule. Pozwoli to jednocześnie utworzyć zasób językowy Azure oraz stworzyć i/lub połączyć konto magazynu, co jest łatwiejsze niż wykonanie tych czynności później.

Jeśli masz wcześniej istniejący zasób, którego chcesz użyć, musisz połączyć go z kontem magazynowym.

Tworzenie nowego zasobu w witrynie Azure Portal

  1. Przejdź do Azure portal, aby utworzyć nowy zasób Azure Language w narzędziach Foundry.

  2. W wyświetlonym oknie wybierz Niestandardową klasyfikację tekstu i niestandardowe rozpoznawanie jednostek nazwanych z funkcji niestandardowych. Wybierz pozycję Kontynuuj, aby utworzyć zasób w dolnej części ekranu.

    Zrzut ekranu przedstawiający opcję wyboru niestandardowej klasyfikacji tekstu i niestandardowego rozpoznawania nazwanych jednostek w witrynie Azure Portal.

  3. Utwórz zasób językowy z następującymi szczegółami.

    Nazwisko Wartość wymagana
    Subskrypcja Swoją subskrypcję platformy Azure.
    Grupa zasobów Grupa zasobów, która będzie zawierać twoje zasoby. Możesz użyć istniejącej lub utworzyć nową.
    Region Jeden z obsługiwanych regionów. Na przykład "Zachodnie stany USA 2".
    Nazwisko Nazwa zasobu.
    Poziom cenowy Jedna z obsługiwanych warstw cenowych. Aby wypróbować usługę, możesz użyć warstwy Bezpłatna (F0).

    Jeśli zostanie wyświetlony komunikat "Twoje konto logowania nie jest właścicielem wybranej grupy zasobów konta magazynu", twoje konto musi mieć przypisaną rolę właściciela w grupie zasobów, zanim będzie można utworzyć zasób językowy. Skontaktuj się z właścicielem subskrypcji platformy Azure, aby uzyskać pomoc.

    Możesz określić właściciela subskrypcji platformy Azure, wyszukując grupę zasobów i korzystając z linku do skojarzonej subskrypcji. Następnie:

    1. Wybierz kartę Kontrola dostępu (IAM)
    2. Wybierz przypisania ról
    3. Filtruj według Rola:Właściciel.
  4. W sekcji Niestandardowa klasyfikacja tekstu i niestandardowe rozpoznawanie nazwanych encji wybierz istniejące konto przechowywania lub wybierz pozycję Nowe konto przechowywania. Należy pamiętać, że te wartości ułatwiają rozpoczęcie pracy, a niekoniecznie wartości konta magazynu , których chcesz użyć w środowiskach produkcyjnych. Aby uniknąć opóźnień podczas tworzenia projektu, połącz się z kontami magazynu w tym samym regionie co usługa językowa.

    Wartość konta magazynu Zalecana wartość
    Nazwa konta magazynu Dowolna nazwa
    Typ konta magazynowania Standardowa LRS
  5. Upewnij się, że zaznaczono powiadomienie o odpowiedzialnej sztucznej inteligencji . Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

Przekazywanie przykładowych danych do kontenera Blob

Po utworzeniu konta usługi Azure Storage i połączeniu go z zasobem Language należy przekazać dokumenty z przykładowego zestawu danych do katalogu głównego kontenera. Te dokumenty są używane do trenowania modelu.

  1. Pobierz przykładowy zestaw danych dla projektów klasyfikacji z wieloma etykietami.

  2. Otwórz plik .zip i wyodrębnij folder zawierający dokumenty.

Podany przykładowy zestaw danych zawiera około 200 dokumentów, z których każdy jest podsumowaniem filmu. Każdy dokument należy do co najmniej jednej z następujących klas:

  • "Tajemnica"
  • "Dramat"
  • Thriller
  • "Komedia"
  • "Akcja"

Azure Portal

  1. W witrynie Azure Portal przejdź do utworzonego konta magazynu i wybierz je, wybierając pozycję Konta magazynu i wpisując nazwę konta magazynu w polu Filtruj dla dowolnego pola.

    Jeśli grupa zasobów nie jest wyświetlana, upewnij się, że filtr Subskrypcja równa się jest ustawiony na Wszystkie.

  2. Na koncie magazynu wybierz pozycję Kontenery z menu po lewej stronie, znajdującym się poniżej magazynu danych. Na wyświetlonym ekranie wybierz pozycję + Kontener. Nadaj kontenerowi nazwę example-data i pozostaw domyślny poziom dostępu publicznego.

    Zrzut ekranu przedstawiający stronę główną konta przechowywania.

  3. Po utworzeniu kontenera wybierz go. Następnie wybierz przycisk Przekaż, aby wybrać pliki .txt i .json, które pobrałeś wcześniej.

    Zrzut ekranu przedstawiający przycisk przesyłania plików na konto magazynowe.

Pobierz klucze zasobu i punkt końcowy

  • Przejdź do strony przeglądu zasobu w witrynie Azure Portal

  • Z menu po lewej stronie wybierz pozycję Klucze i punkt końcowy. Punkt końcowy i klucz są używane dla żądań interfejsu API.

Zrzut ekranu przedstawiający stronę klucza i punktu końcowego w witrynie Azure Portal.

Tworzenie niestandardowego projektu klasyfikacji tekstu

Po skonfigurowaniu zasobu i zasobnika danych utwórz nowy niestandardowy projekt klasyfikacji tekstu. Projekt to obszar roboczy umożliwiający tworzenie niestandardowych modeli uczenia maszynowego na podstawie danych. Projekt może być dostępny tylko dla Ciebie oraz innych osób, które mają dostęp do zasobu językowego platformy Azure.

Wyzwalanie zadania importowania projektu

Prześlij żądanie POST przy użyciu następującego adresu URL, nagłówków i treści JSON, aby zaimportować plik etykiet. Upewnij się, że plik etykiet jest zgodne z akceptowanym formatem.

Jeśli projekt o tej samej nazwie już istnieje, dane tego projektu zostaną zastąpione.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość uwzględnia wielkość liter. myProject
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wersji wydanej. Dowiedz się więcej o innych dostępnych wersjach interfejsu API 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klawisz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść

Użyj następującego kodu JSON w żądaniu. Zastąp zastępcze wartości własnymi wartościami.

{
  "projectFileVersion": "{API-VERSION}",
  "stringIndexType": "Utf16CodeUnit",
  "metadata": {
    "projectName": "{PROJECT-NAME}",
    "storageInputContainerName": "{CONTAINER-NAME}",
    "projectKind": "customMultiLabelClassification",
    "description": "Trying out custom multi label text classification",
    "language": "{LANGUAGE-CODE}",
    "multilingual": true,
    "settings": {}
  },
  "assets": {
    "projectKind": "customMultiLabelClassification",
    "classes": [
      {
        "category": "Class1"
      },
      {
        "category": "Class2"
      }
    ],
    "documents": [
      {
        "location": "{DOCUMENT-NAME}",
        "language": "{LANGUAGE-CODE}",
        "dataset": "{DATASET}",
        "classes": [
          {
            "category": "Class1"
          },
          {
            "category": "Class2"
          }
        ]
      },
      {
        "location": "{DOCUMENT-NAME}",
        "language": "{LANGUAGE-CODE}",
        "dataset": "{DATASET}",
        "classes": [
          {
            "category": "Class2"
          }
        ]
      }
    ]
  }
}

Klawisz Symbol zastępczy Wartość Przykład
wersja API {API-VERSION} Wersja wywoływanego interfejsu API. Używana tutaj wersja musi być tą samą wersją interfejsu API w adresie URL. Dowiedz się więcej o innych dostępnych wersjach interfejsu API 2022-05-01
nazwa projektu {PROJECT-NAME} Nazwa projektu. Ta wartość uwzględnia wielkość liter. myProject
rodzajProjektu customMultiLabelClassification Rodzaj projektu. customMultiLabelClassification
język {LANGUAGE-CODE} Ciąg określający kod języka dokumentów używanych w projekcie. Jeśli projekt jest wielojęzycznym projektem, wybierz kod języka dla większości dokumentów. Zobacz Obsługa języków, aby dowiedzieć się więcej o obsłudze wielojęzycznej. en-us
wielojęzyczny true Wartość logiczna, która umożliwia posiadanie dokumentów w wielu językach w zestawie danych, a po wdrożeniu modelu można wykonywać zapytania względem modelu w dowolnym obsługiwanym języku (niekoniecznie zawarte w dokumentach szkoleniowych. Zobacz Obsługa języków, aby dowiedzieć się więcej o obsłudze wielojęzycznej. true
nazwaKonteneraDanychWejściowych {CONTAINER-NAME} Nazwa kontenera usługi Azure Storage dla przekazanych dokumentów. myContainer
klasy [] Tablica zawierająca wszystkie klasy, które znajdują się w projekcie. []
dokumenty [] Tablica zawierająca wszystkie dokumenty w projekcie i klasy oznaczone dla tego dokumentu. []
lokalizacja {DOCUMENT-NAME} Lokalizacja dokumentów w kontenerze magazynu. Ponieważ wszystkie dokumenty znajdują się w katalogu głównym kontenera, powinna to być nazwa dokumentu. doc1.txt
zestaw danych {DATASET} Zestaw testowy, do którego trafia ten dokument, gdy jest dzielony przed szkoleniem. Zobacz jak wytrenować model. Możliwe wartości dla tego pola to Train i Test. Train

Po wysłaniu żądania interfejsu API otrzymasz odpowiedź wskazującą 202 , że zadanie zostało przesłane poprawnie. W nagłówkach odpowiedzi wyodrębnij wartość operation-location sformatowaną w następujący sposób:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} służy do identyfikowania żądania, ponieważ ta operacja jest asynchroniczna. Ten adres URL służy do pobierania stanu zadania importu.

Możliwe scenariusze błędów dla tego żądania:

  • Wybrany zasób nie ma odpowiednich uprawnień dla konta przechowywania.
  • Określona storageInputContainerName wartość nie istnieje.
  • Jest używany nieprawidłowy kod języka lub jeśli typ kodu języka nie jest ciągiem.
  • multilingual wartość jest ciągiem, a nie wartością logiczną.

Pobierz stan zadania importu

Użyj następującego żądania GET , aby uzyskać stan importowania projektu. Zastąp zastępcze wartości własnymi wartościami.

Adres URL żądania

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość uwzględnia wielkość liter. myProject
{JOB-ID} Identyfikator (ID) do identyfikacji postępów trenowania modeli. Ta wartość znajduje się w wartości nagłówka location otrzymanej w poprzednim kroku. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wersji wydanej. Dowiedz się więcej o innych dostępnych wersjach interfejsu API 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klawisz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Szkolenie modelu

Zazwyczaj po utworzeniu projektu możesz zacząć oznaczać dokumenty , które masz w kontenerze połączonym z projektem. Na potrzeby tego poradnika szybkiego startu, zaimportowano przykładowy otagowany zestaw danych i zainicjowano projekt przy użyciu przykładowego pliku tagów JSON.

Rozpoczynanie trenowania modelu

Po zaimportowaniu projektu możesz rozpocząć trenowanie modelu.

Prześlij żądanie POST przy użyciu następującego adresu URL, nagłówków i treści JSON, aby przesłać zadanie szkoleniowe. Zastąp zastępcze wartości własnymi wartościami.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość uwzględnia wielkość liter. myProject
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wersji wydanej. Dowiedz się więcej o innych dostępnych wersjach interfejsu API 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klawisz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść żądania

Użyj następującego kodu JSON w treści żądania. Model zostanie przekazany po zakończeniu trenowania {MODEL-NAME}. Tylko pomyślne zadania szkoleniowe będą tworzyć modele.

{
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "evaluationOptions": {
        "kind": "percentage",
        "trainingSplitPercentage": 80,
        "testingSplitPercentage": 20
    }
}
Klawisz Symbol zastępczy Wartość Przykład
Etykieta modelu {MODEL-NAME} Nazwa modelu przypisana po pomyślnym wytrenowaniu. myModel
wersjaKonfiguracjiTreningowej {CONFIG-VERSION} Jest to wersja modelu używana do trenowania modelu. 2022-05-01
opcje oceny Opcja dzielenia danych między zestawy trenowania i testowania. {}
rodzaj percentage Metody dzielenia. Możliwe wartości to percentage lub manual. Aby uzyskać więcej informacji, zobacz Jak wytrenować model . percentage
procent podziału szkolenia 80 Odsetek oznakowanych danych, które mają zostać uwzględnione w zestawie treningowym. Zalecana wartość to 80. 80
Procent podziału testowego 20 Procent oznakowanych danych, które mają zostać uwzględnione w zestawie testów. Zalecana wartość to 20. 20

Uwaga

Wartości trainingSplitPercentage i testingSplitPercentage są wymagane tylko wtedy, gdy Kind jest ustawiona wartość percentage , a suma obu wartości procentowych powinna być równa 100.

Po wysłaniu żądania interfejsu API otrzymasz odpowiedź wskazującą 202 , że zadanie zostało przesłane poprawnie. W nagłówkach odpowiedzi wyodrębnij wartość location sformatowaną w następujący sposób:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}

Element {JOB-ID} służy do identyfikowania żądania, ponieważ ta operacja jest asynchroniczna. Możesz użyć tego adresu URL, aby uzyskać stan trenowania.

Pobierz status zadania szkoleniowego

Trenowanie może potrwać od 10 do 30 minut. Następujące żądanie umożliwia kontynuowanie sondowania stanu zadania szkoleniowego do momentu jego pomyślnego ukończenia.

Użyj następującego żądania GET , aby uzyskać stan postępu trenowania modelu. Zastąp zastępcze wartości własnymi wartościami.

Adres URL żądania

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość uwzględnia wielkość liter. myProject
{JOB-ID} Identyfikator (ID) do identyfikacji postępów trenowania modeli. Ta wartość znajduje się w wartości nagłówka location otrzymanej w poprzednim kroku. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wersji wydanej. Aby uzyskać więcej informacji, zobaczCykl życia modelu. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klawisz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść odpowiedzi

Po wysłaniu żądania otrzymasz następującą odpowiedź.

{
  "result": {
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
    "trainingStatus": {
      "percentComplete": 3,
      "startDateTime": "2022-04-18T15:45:06.8190649Z",
      "status": "running"
    },
    "evaluationStatus": {
      "percentComplete": 0,
      "status": "notStarted"
    }
  },
  "jobId": "{JOB-ID}",
  "createdDateTime": "2022-04-18T15:44:44Z",
  "lastUpdatedDateTime": "2022-04-18T15:45:48Z",
  "expirationDateTime": "2022-04-25T15:44:44Z",
  "status": "running"
}

Wdrażanie modelu

Zazwyczaj po trenowaniu modelu należy przejrzeć jego szczegóły oceny i w razie potrzeby wprowadzić ulepszenia. W tym przewodniku Szybki start po prostu wdrożysz swój model i udostępnisz go do testowania w usłudze Microsoft Foundry albo wywołasz interfejs API predykcji.

Prześlij zadanie wdrożenia

Prześlij żądanie PUT przy użyciu następującego adresu URL, nagłówków i treści JSON, aby przesłać zadanie wdrożenia. Zastąp zastępcze wartości własnymi wartościami.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość uwzględnia wielkość liter. myProject
{DEPLOYMENT-NAME} Nazwa twojego wdrożenia. Ta wartość uwzględnia wielkość liter. staging
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wersji wydanej. Dowiedz się więcej o innych dostępnych wersjach interfejsu API 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klawisz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść żądania

Użyj następującego kodu JSON w treści żądania. Użyj nazwy modelu, który chcesz przypisać do wdrożenia.

{
  "trainedModelLabel": "{MODEL-NAME}"
}
Klawisz Symbol zastępczy Wartość Przykład
etykietaModeluWytrenowanego {MODEL-NAME} Nazwa modelu przypisana do wdrożenia. Można przypisywać tylko pomyślnie wytrenowane modele. Ta wartość uwzględnia wielkość liter. myModel

Po wysłaniu żądania interfejsu API otrzymasz odpowiedź wskazującą 202 , że zadanie zostało przesłane poprawnie. W nagłówkach odpowiedzi wyodrębnij wartość operation-location sformatowaną w następujący sposób:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

Element {JOB-ID} służy do identyfikowania żądania, ponieważ ta operacja jest asynchroniczna. Możesz użyć tego adresu URL, aby uzyskać stan wdrożenia.

Uzyskaj stan zadania wdrożenia

Użyj następującego żądania GET , aby wykonać zapytanie dotyczące stanu zadania wdrożenia. Możesz użyć adresu URL otrzymanego z poprzedniego kroku lub zastąpić wartości symboli zastępczych własnymi wartościami.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość uwzględnia wielkość liter. myProject
{DEPLOYMENT-NAME} Nazwa twojego wdrożenia. Ta wartość uwzględnia wielkość liter. staging
{JOB-ID} Identyfikator (ID) do identyfikacji postępów trenowania modeli. Znajduje się ona w wartości nagłówka location otrzymanej w poprzednim kroku. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wersji wydanej. Dowiedz się więcej o innych dostępnych wersjach interfejsu API 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klawisz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść odpowiedzi

Po wysłaniu żądania otrzymasz następującą odpowiedź. Kontynuuj sonduj ten punkt końcowy, dopóki parametr status nie zmieni się na "ukończony". Powinien zostać wyświetlony 200 kod wskazujący powodzenie żądania.

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"{CREATED-TIME}",
    "lastUpdatedDateTime":"{UPDATED-TIME}",
    "expirationDateTime":"{EXPIRATION-TIME}",
    "status":"running"
}

Klasyfikowanie tekstu

Po pomyślnym wdrożeniu modelu możesz zacząć używać go do klasyfikowania tekstu za pomocą interfejsu API przewidywania. W pobranym wcześniej przykładowym zestawie danych można znaleźć niektóre dokumenty testowe, których można użyć w tym kroku.

Przesyłanie niestandardowego zadania klasyfikacji tekstu

Użyj tego żądania POST , aby uruchomić zadanie klasyfikacji tekstu.

{ENDPOINT}/language/analyze-text/jobs?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wersji wydanej. Aby uzyskać więcej informacji, zobaczCykl życia modelu. 2022-05-01

Nagłówki

Klawisz Wartość
Ocp-Apim -Subscription-Key Klucz, który zapewnia dostęp do tego interfejsu API.

Treść

{
  "displayName": "Classifying documents",
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "{LANGUAGE-CODE}",
        "text": "Text1"
      },
      {
        "id": "2",
        "language": "{LANGUAGE-CODE}",
        "text": "Text2"
      }
    ]
  },
  "tasks": [
     {
      "kind": "CustomMultiLabelClassification",
      "taskName": "Multi Label Classification",
      "parameters": {
        "projectName": "{PROJECT-NAME}",
        "deploymentName": "{DEPLOYMENT-NAME}"
      }
    }
  ]
}
Klawisz Symbol zastępczy Wartość Przykład
displayName {JOB-NAME} Nazwa zadania. MyJobName
documents [{},{}] Lista dokumentów do uruchamiania zadań. [{},{}]
id {DOC-ID} Nazwa lub identyfikator dokumentu. doc1
language {LANGUAGE-CODE} Ciąg określający kod języka dokumentu. Jeśli ten klucz nie zostanie określony, usługa przyjmie domyślny język projektu wybranego podczas tworzenia projektu. Aby uzyskać listę obsługiwanych kodów języków, zobacz Obsługa języków. en-us
text {DOC-TEXT} Dokumentowanie zadania do uruchamiania innych zadań. Lorem ipsum dolor sit amet
tasks Lista zadań, które chcemy wykonać. []
taskName Indywidualna Klasyfikacja Wieloetykietowa Nazwa zadania Indywidualna Klasyfikacja Wieloetykietowa
parameters Lista parametrów do przekazania do zadania.
project-name {PROJECT-NAME} Nazwa projektu. Ta wartość uwzględnia wielkość liter. myProject
deployment-name {DEPLOYMENT-NAME} Nazwa twojego wdrożenia. Ta wartość uwzględnia wielkość liter. prod

Odpowiedź

Otrzymasz odpowiedź 202 wskazującą powodzenie. W nagłówkach odpowiedzi wyodrębnij element operation-location. operation-location jest sformatowany w następujący sposób:

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}

Możesz użyć tego adresu URL, aby wykonać zapytanie dotyczące stanu ukończenia zadania i uzyskać wyniki po zakończeniu zadania.

Pobieranie wyników zadania

Użyj następującego żądania GET , aby wykonać zapytanie dotyczące stanu/wyników zadania klasyfikacji tekstu.

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, o której mowa, dotyczy najnowszej wydanej wersji modelu. 2022-05-01

Nagłówki

Klawisz Wartość
Ocp-Apim -Subscription-Key Klucz, który zapewnia dostęp do tego interfejsu API.

Treść odpowiedzi

Odpowiedź będzie dokumentem JSON z następującymi parametrami.

{
  "createdDateTime": "2021-05-19T14:32:25.578Z",
  "displayName": "MyJobName",
  "expirationDateTime": "2021-05-19T14:32:25.578Z",
  "jobId": "xxxx-xxxxxx-xxxxx-xxxx",
  "lastUpdateDateTime": "2021-05-19T14:32:25.578Z",
  "status": "succeeded",
  "tasks": {
    "completed": 1,
    "failed": 0,
    "inProgress": 0,
    "total": 1,
    "items": [
      {
        "kind": "customMultiClassificationTasks",
        "taskName": "Classify documents",
        "lastUpdateDateTime": "2020-10-01T15:01:03Z",
        "status": "succeeded",
        "results": {
          "documents": [
            {
              "id": "{DOC-ID}",
              "classes": [
                  {
                      "category": "Class_1",
                      "confidenceScore": 0.0551877357
                  }
              ],
              "warnings": []
            }
          ],
          "errors": [],
          "modelVersion": "2020-04-01"
        }
      }
    ]
  }
}

Czyszczenie zasobów

Jeśli projekt nie jest już potrzebny, możesz go usunąć za pomocą następującego żądania DELETE . Zastąp zastępcze wartości własnymi wartościami.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość uwzględnia wielkość liter. myProject
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wersji wydanej. Dowiedz się więcej o innych dostępnych wersjach interfejsu API 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klawisz Wartość
Ocp-Apim -Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Po wysłaniu żądania API otrzymasz odpowiedź wskazującą 202 powodzenie, co oznacza, że projekt został usunięty. Rezultatem pomyślnego wywołania jest nagłówek Operation-Location w celu sprawdzania stanu zadania.

Następne kroki

Po utworzeniu niestandardowego modelu klasyfikacji tekstu można wykonywać następujące czynności:

Gdy zaczniesz tworzyć własne niestandardowe projekty klasyfikacji tekstu, skorzystaj z artykułów z instrukcjami, aby dowiedzieć się więcej na temat tworzenia modelu w bardziej szczegółowy sposób: