Beszélgetési nyelvfelismerési modell létrehozásához szükséges erőforrások ismertetése

Befejeződött

Ha a Language Understanding szolgáltatással NLP-megoldást szeretne fejleszteni, létre kell hoznia egy nyelvi erőforrást az Azure-ban. Ez az erőforrás a modell létrehozásához és az ügyfélalkalmazásoktól érkező előrejelzési kérelmek feldolgozásához is használható.

Tipp.

A modul tesztkörnyezete a beszélgetési nyelv megértésére szolgáló modell készítését ismerteti. Az egyéni szövegbesorolásra és az egyéni elnevezett entitásfelismerésre összpontosító modulokért tekintse meg a természetes nyelvi megoldások fejlesztésének képzési tervében található egyéni megoldásmodulokat.

A modell létrehozása

Az előrejelzéshez modellt igénylő funkciók esetében az előrejelzéshez szükséges használat előtt létre kell hoznia, be kell tanítania és üzembe kell helyeznie a modellt. Ez az összeállítás és képzés megtanítja az Azure AI Language szolgáltatásnak, hogy mit kell keresnie.

Először létre kell hoznia az Azure AI Language-erőforrást az Azure Portalon. Ekkor:

  1. Azure AI-szolgáltatások keresése.
  2. Keresse meg és válassza ki a Language Service-t.
  3. Válassza a Létrehozás lehetőséget a Nyelvi szolgáltatás alatt.
  4. Töltse ki a szükséges adatokat, válassza ki az Önhöz földrajzilag legközelebbi régiót (a legjobb teljesítmény érdekében), és adjon neki egyedi nevet.

Az erőforrás létrehozása után szüksége lesz egy kulcsra és a végpontra. Ezt a bal oldalon , az erőforrás áttekintési oldal kulcsai és végpontja alatt találja.

A Language Studio használata

A modell felépítésének, betanításának és üzembe helyezésének vizuálisabb módszerét a Language Studióval érheti el az egyes lépések végrehajtásához. A főoldalon kiválaszthatja, hogy létrehoz-e egy beszélgetési nyelvértelmező projektet. A projekt létrehozása után a fenti folyamattal megegyező módon hozhatja létre, taníthatja be és helyezheti üzembe a modellt.

Screenshot of the Language Studio home page.

A modul laborja végigvezeti a Language Studiót a modell elkészítéséhez. Ha szeretne többet megtudni, tekintse meg a Language Studio rövid útmutatóját

A REST API használata

A modell elkészítésének egyik módja a REST API. A minta a projekt létrehozása, adatok importálása, betanítása, üzembe helyezése, majd a modell használata.

Ezeket a feladatokat aszinkron módon hajtják végre; minden lépéshez be kell küldenie egy kérelmet a megfelelő URI-nak, majd egy másik kérést kell küldenie a feladat állapotának lekéréséhez.

Ha például egy beszélgetést megértő projekthez szeretne modellt üzembe helyezni, küldje el az üzembe helyezési feladatot, majd ellenőrizze az üzembehelyezési feladat állapotát.

Authentication

Az Azure AI Language-erőforrás minden hívásához hitelesítenie kell a kérést az alábbi fejléc megadásával.

Key Érték
Ocp-Apim-Subscription-Key Az erőforrás kulcsa

Üzembe helyezés kérése

POST-kérés elküldése a következő végpontra.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Helyőrző Value Példa
{ENDPOINT} Az Azure AI Language-erőforrás végpontja https://<your-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} A projekt neve. Ez az érték megkülönbözteti a kis- és nagybetűk értékét myProject
{DEPLOYMENT-NAME} Az üzembe helyezés neve. Ez az érték megkülönbözteti a kis- és nagybetűk értékét staging
{API-VERSION} A meghívni kívánt API verziója 2022-05-01

Adja meg a következőket body a kéréshez.

{
  "trainedModelLabel": "{MODEL-NAME}",
}
Helyőrző Value
{MODEL-NAME} Az üzembe helyezéshez hozzárendelendő modellnév. Ez az érték megkülönbözteti a kis- és nagybetűk értékét.

A kérés sikeres elküldése egy választ kap 202 , amelynek válaszfejléce a operation-locationkövetkező: . Ennek a fejlécnek lesz egy URL-címe, amellyel az állapotot kérheti, a következőképpen formázva:

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

Az üzembe helyezés állapotának lekérése

Küldjön get kérést az URL-címre a fenti válaszfejlécből. Az értékek már ki lesznek töltve a kezdeti üzembe helyezési kérelem alapján.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Helyőrző Value
{ENDPOINT} Az API-kérés hitelesítésének végpontja
{PROJECT-NAME} A projekt neve (kis- és nagybetűk megkülönböztetése)
{DEPLOYMENT-NAME} Az üzembe helyezés neve (kis- és nagybetűk megkülönböztetése)
{JOB-ID} A modell betanítási állapotának megkeresésére szolgáló azonosító, amely a fenti, az üzembe helyezési kérelemben részletezett fejlécértékben található
{API-VERSION} A meghívni kívánt API verziója

A válasz törzse megadja az üzembehelyezési állapot részleteit. A status mező akkor lesz sikeres , ha az üzembe helyezés befejeződött.

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

A példakérésekkel rendelkező lépések teljes ismertetését a beszélgetési útmutatóban találja.

A modell lekérdezése

A modell előrejelzési lekérdezéséhez használhatja az SDK-kat c# vagy Python nyelven, vagy használhatja a REST API-t.

Lekérdezés SDK-k használatával

A modell SDK-val történő lekérdezéséhez először létre kell hoznia az ügyfelet. Miután megkapta az ügyfelet, ezzel hívja meg a megfelelő végpontot.

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]

Más nyelvi funkciókhoz, például a beszélgetési nyelv megértéséhez a kérést másképpen kell összeállítani és elküldeni.

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
        }
    }
)

Lekérdezés a REST API használatával

Ha REST használatával szeretné lekérdezni a modellt, hozzon létre egy POST-kérést a megfelelő URL-címre a megfelelő törzs megadásával. Az olyan beépített funkciók esetében, mint a nyelvészlelés vagy a hangulatelemzés, lekérdezi a végpontot analyze-text .

Tipp.

Ne feledje, hogy minden kérést hitelesíteni kell az Azure AI Language erőforráskulcsával a Ocp-Apim-Subscription-Key fejlécben

{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
Helyőrző Value
{ENDPOINT} Az API-kérés hitelesítésének végpontja
{API-VERSION} A meghívni kívánt API verziója

A kérés törzsében meg kell adnia a kind paramétert, amely közli a szolgáltatással, hogy milyen típusú nyelvértelmezést kér.

Ha például a nyelvet szeretné észlelni, a JSON-törzs az alábbihoz hasonlóan fog kinézni.

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

Más nyelvi funkciókhoz, például a beszélgetési nyelv megértéséhez a kérést egy másik végpontra kell irányítani. A beszélgetés nyelvfelismerési kérését például a következőknek küldi el a rendszer.

{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
Helyőrző Value
{ENDPOINT} Az API-kérés hitelesítésének végpontja
{API-VERSION} A meghívni kívánt API verziója

Ez a kérés az alábbiakhoz hasonló JSON-törzset tartalmazna.

{
  "kind": "Conversation",
  "analysisInput": {
    "conversationItem": {
      "id": "1",
      "participantId": "1",
      "text": "Sample text"
    }
  },
  "parameters": {
    "projectName": "{PROJECT-NAME}",
    "deploymentName": "{DEPLOYMENT-NAME}",
    "stringIndexType": "TextElement_V8"
  }
}
Helyőrző Value
{PROJECT-NAME} Annak a projektnek a neve, amelyben a modellt elkészítette
{DEPLOYMENT-NAME} Az üzembe helyezés neve

Mintaválasz

Az SDK-ból érkező lekérdezési válasz a visszaadott objektumban jelenik meg, amely a funkciótól függően változik (például a programban vagy response.Valuea szolgáltatásbanresponse.key_phrases). A REST API az alábbihoz hasonló JSON-t ad vissza.

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

Más modellek, például a beszélgetési nyelv megértése esetén a lekérdezésre adott mintaválasz az alábbihoz hasonló.

{
  "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
        }
      ]
    }
  }
}

A Python és a C# SDK-jai olyan JSON-t adnak vissza, amely nagyon hasonlít a REST-válaszhoz.

A funkciókkal kapcsolatos teljes dokumentációt, például példákat és útmutatókat az Azure AI Language dokumentációs oldalán találja.