Informacje o zasobach związanych z tworzeniem modelu interpretacji języka konwersacyjnego

Ukończone

Aby utworzyć rozwiązanie NLP przy użyciu usługi Language Understanding, należy utworzyć zasób language na platformie Azure. Ten zasób będzie używany zarówno do tworzenia modelu, jak i przetwarzania żądań przewidywania z aplikacji klienckich.

Napiwek

Laboratorium w tym module obejmuje tworzenie modelu na potrzeby interpretacji języka konwersacyjnego. Aby uzyskać bardziej ukierunkowane moduły dotyczące niestandardowej klasyfikacji tekstu i niestandardowego rozpoznawania jednostek nazwanych, zobacz niestandardowe moduły rozwiązania w ścieżce szkoleniowej Opracowywanie rozwiązań języka naturalnego.

Tworzenie modelu

W przypadku funkcji wymagających modelu do przewidywania należy utworzyć, wytrenować i wdrożyć ten model przed użyciem go w celu przewidywania. Ten budynek i szkolenie nauczy usługę języka sztucznej inteligencji platformy Azure, czego należy szukać.

Najpierw należy utworzyć zasób języka AI platformy Azure w witrynie Azure Portal. Następnie:

  1. Wyszukaj usługi Azure AI.
  2. Znajdź i wybierz pozycję Usługa językowa.
  3. Wybierz pozycję Utwórz w obszarze Usługa językowa.
  4. Podaj niezbędne szczegóły, wybierając region najbliżej Ciebie geograficznie (aby uzyskać najlepszą wydajność) i podając unikatową nazwę.

Po utworzeniu tego zasobu będziesz potrzebować klucza i punktu końcowego. Możesz to znaleźć po lewej stronie w obszarze Klucze i punkt końcowy strony przeglądu zasobu.

Korzystanie z programu Language Studio

Aby uzyskać bardziej wizualną metodę tworzenia, trenowania i wdrażania modelu, możesz użyć programu Language Studio , aby wykonać każde z tych kroków. Na stronie głównej możesz utworzyć projekt Konwersacyjny opis języka. Po utworzeniu projektu wykonaj ten sam proces, co powyżej, aby skompilować, wytrenować i wdrożyć model.

Screenshot of the Language Studio home page.

Laboratorium w tym module przeprowadzi proces tworzenia modelu przy użyciu programu Language Studio. Jeśli chcesz dowiedzieć się więcej, zobacz Przewodnik Szybki start dla programu Language Studio

Korzystanie z interfejsu API REST

Jednym ze sposobów tworzenia modelu jest interfejs API REST. Wzorzec to tworzenie projektu, importowanie danych, trenowanie, wdrażanie, a następnie używanie modelu.

Te zadania są wykonywane asynchronicznie; Musisz przesłać żądanie do odpowiedniego identyfikatora URI dla każdego kroku, a następnie wysłać kolejne żądanie, aby uzyskać stan tego zadania.

Jeśli na przykład chcesz wdrożyć model dla projektu interpretacji języka konwersacyjnego, prześlij zadanie wdrożenia, a następnie sprawdź stan zadania wdrożenia.

Uwierzytelnianie

Dla każdego wywołania zasobu języka AI platformy Azure uwierzytelniasz żądanie, podając następujący nagłówek.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu

Żądanie wdrożenia

Prześlij żądanie POST do następującego punktu końcowego.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy zasobu języka sztucznej inteligencji platformy Azure https://<your-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter myProject
{DEPLOYMENT-NAME} Nazwa wdrożenia. Ta wartość jest uwzględniana w wielkości liter staging
{API-VERSION} Wersja wywoływanego interfejsu API 2022-05-01

Dołącz następujące body elementy do żądania.

{
  "trainedModelLabel": "{MODEL-NAME}",
}
Symbol zastępczy Wartość
{MODEL-NAME} Nazwa modelu, która zostanie przypisana do wdrożenia. Ta wartość jest uwzględniana w wielkości liter.

Pomyślnie przesłano 202 żądanie otrzyma odpowiedź z nagłówkiem odpowiedzi .operation-location Ten nagłówek będzie miał adres URL, za pomocą którego można zażądać stanu, sformatowany w następujący sposób:

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

Uzyskiwanie stanu wdrożenia

Prześlij żądanie GET do adresu URL z powyższego nagłówka odpowiedzi. Wartości zostaną już wypełnione na podstawie początkowego żądania wdrożenia.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API
{PROJECT-NAME} Nazwa projektu (z uwzględnieniem wielkości liter)
{DEPLOYMENT-NAME} Nazwa wdrożenia (uwzględniana wielkość liter)
{JOB-ID} Identyfikator lokalizowania stanu trenowania modelu znajdujący się w wartości nagłówka opisanej powyżej w żądaniu wdrożenia
{API-VERSION} Wersja wywoływanego interfejsu API

Treść odpowiedzi będzie zawierać szczegóły stanu wdrożenia. Pole status będzie miało wartość powodzenia po zakończeniu wdrażania.

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"String",
    "lastUpdatedDateTime":"String",
    "expirationDateTime":"String",
    "status":"running"
}

Pełny przewodnik po każdym kroku z przykładowymi żądaniami można znaleźć w przewodniku Szybki start z omówieniem konwersacji.

Wykonywanie zapytań względem modelu

Aby wykonać zapytanie dotyczące modelu pod kątem przewidywania, możesz użyć zestawów SDK w języku C# lub Python albo użyć interfejsu API REST.

Wykonywanie zapytań przy użyciu zestawów SDK

Aby wykonać zapytanie dotyczące modelu przy użyciu zestawu SDK, należy najpierw utworzyć klienta. Po utworzeniu klienta należy go użyć do wywołania odpowiedniego punktu końcowego.

var languageClient = new TextAnalyticsClient(endpoint, credentials);
var response = languageClient.ExtractKeyPhrases(document);
language_client = TextAnalyticsClient(
            endpoint=endpoint, 
            credential=credentials)
response = language_client.extract_key_phrases(documents = documents)[0]

Inne funkcje językowe, takie jak znajomość języka konwersacyjnego, wymagają skompilować i wysłać żądanie w inny sposób.

var data = new
{
    analysisInput = new
    {
        conversationItem = new
        {
            text = userText,
            id = "1",
            participantId = "1",
        }
    },
    parameters = new
    {
        projectName,
        deploymentName,
        // Use Utf16CodeUnit for strings in .NET.
        stringIndexType = "Utf16CodeUnit",
    },
    kind = "Conversation",
};
Response response = await client.AnalyzeConversationAsync(RequestContent.Create(data));
result = client.analyze_conversation(
    task={
        "kind": "Conversation",
        "analysisInput": {
            "conversationItem": {
                "participantId": "1",
                "id": "1",
                "modality": "text",
                "language": "en",
                "text": query
            },
            "isLoggingEnabled": False
        },
        "parameters": {
            "projectName": cls_project,
            "deploymentName": deployment_slot,
            "verbose": True
        }
    }
)

Wykonywanie zapytań przy użyciu interfejsu API REST

Aby wysłać zapytanie do modelu przy użyciu interfejsu REST, utwórz żądanie POST do odpowiedniego adresu URL z określoną odpowiednią treścią. W przypadku wbudowanych funkcji, takich jak wykrywanie języka lub analiza tonacji, wykonasz zapytanie dotyczące punktu końcowego analyze-text .

Napiwek

Pamiętaj, że każde żądanie musi zostać uwierzytelnione przy użyciu klucza zasobu języka AI platformy Azure w nagłówku Ocp-Apim-Subscription-Key

{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
Symbol zastępczy Wartość
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API
{API-VERSION} Wersja wywoływanego interfejsu API

W treści tego żądania należy określić parametr, który informuje usługę kind o typie języka, którego żądasz.

Jeśli chcesz wykryć język, na przykład treść JSON będzie wyglądać podobnie do poniższego.

{
    "kind": "LanguageDetection",
    "parameters": {
        "modelVersion": "latest"
    },
    "analysisInput":{
        "documents":[
            {
                "id":"1",
                "text": "This is a document written in English."
            }
        ]
    }
}

Inne funkcje językowe, takie jak interpretacja języka konwersacyjnego, wymagają, aby żądanie było kierowane do innego punktu końcowego. Na przykład żądanie interpretacji języka konwersacji zostanie wysłane do następującego.

{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
Symbol zastępczy Wartość
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API
{API-VERSION} Wersja wywoływanego interfejsu API

To żądanie będzie zawierać treść JSON podobną do poniższej.

{
  "kind": "Conversation",
  "analysisInput": {
    "conversationItem": {
      "id": "1",
      "participantId": "1",
      "text": "Sample text"
    }
  },
  "parameters": {
    "projectName": "{PROJECT-NAME}",
    "deploymentName": "{DEPLOYMENT-NAME}",
    "stringIndexType": "TextElement_V8"
  }
}
Symbol zastępczy Wartość
{PROJECT-NAME} Nazwa projektu, w którym utworzono model
{DEPLOYMENT-NAME} Nazwa wdrożenia

Przykładowa odpowiedź

Odpowiedź zapytania z zestawu SDK zostanie zwrócona w obiekcie, który różni się w zależności od funkcji (na przykład w response.key_phrases systemie lub response.Value). Interfejs API REST zwróci kod JSON podobny do poniższego.

{
    "kind": "KeyPhraseExtractionResults",
    "results": {
        "documents": [{
            "id": "1",
            "keyPhrases": ["modern medical office", "Dr. Smith", "great staff"],
            "warnings": []
        }],
        "errors": [],
        "modelVersion": "{VERSION}"
    }
}

W przypadku innych modeli, takich jak interpretacja języka konwersacyjnego, przykładowa odpowiedź na zapytanie będzie podobna do poniższej.

{
  "kind": "ConversationResult",
  "result": {
    "query": "String",
    "prediction": {
      "topIntent": "intent1",
      "projectKind": "Conversation",
      "intents": [
        {
          "category": "intent1",
          "confidenceScore": 1
        },
        {
          "category": "intent2",
          "confidenceScore": 0
        }
      ],
      "entities": [
        {
          "category": "entity1",
          "text": "text",
          "offset": 7,
          "length": 4,
          "confidenceScore": 1
        }
      ]
    }
  }
}

Zestawy SDK dla języków Python i C# zwracają kod JSON, który jest bardzo podobny do odpowiedzi REST.

Aby uzyskać pełną dokumentację dotyczącą funkcji, w tym przykładów i przewodników z instrukcjami, zobacz strony dokumentacji języka sztucznej inteligencji platformy Azure.