Beszélgetési nyelvfelismerési modell létrehozásához szükséges erőforrások ismertetése
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:
- Azure AI-szolgáltatások keresése.
- Keresse meg és válassza ki a Language Service-t.
- Válassza a Létrehozás lehetőséget a Nyelvi szolgáltatás alatt.
- 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.
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-location
kö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.Value
a 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.