Vysvětlení prostředků pro vytvoření modelu pro porozumění konverzačnímu jazyku
Pokud chcete použít službu Language Understanding k vývoji řešení NLP, budete muset v Azure vytvořit prostředek jazyka. Tento prostředek se použije pro vytváření modelu i zpracování žádostí o predikce z klientských aplikací.
Tip
Cvičení tohoto modulu popisuje vytvoření modelu pro porozumění konverzačnímu jazyku. Další moduly zaměřené na vlastní klasifikaci textu a rozpoznávání vlastních pojmenovaných entit najdete v modulu vlastních řešení v studijním programu Vývoj řešení přirozeného jazyka.
Sestavení modelu
U funkcí, které vyžadují model pro predikci, budete muset tento model sestavit, vytrénovat a nasadit předtím, než ho použijete k vytvoření předpovědi. Toto sestavení a školení naučí službu Azure AI Language, co hledat.
Nejprve budete muset vytvořit prostředek Azure AI Language na webu Azure Portal. Potom:
- Vyhledejte služby Azure AI.
- Vyhledejte a vyberte Službu jazyka.
- V části Služba jazyka vyberte Vytvořit.
- Vyplňte potřebné podrobnosti a vyberte oblast, která je vám geograficky nejblíže (pro zajištění nejlepšího výkonu) a pojmenujte ji jedinečným názvem.
Po vytvoření prostředku budete potřebovat klíč a koncový bod. To najdete na levé straně v části Klíče a koncový bod na stránce přehledu prostředků.
Použití sady Language Studio
Pro vizuální metodu vytváření, trénování a nasazování modelu můžete k dosažení každého z těchto kroků použít Language Studio . Na hlavní stránce můžete vytvořit projekt pro porozumění konverzačnímu jazyku. Jakmile se projekt vytvoří, projděte si stejný proces jako výše a sestavte, vytrénujte a nasaďte model.
Testovací prostředí v tomto modulu vás provede pomocí sady Language Studio k sestavení modelu. Pokud se chcete dozvědět víc, podívejte se na rychlý start k sadě Language Studio.
Použití rozhraní REST API
Jedním ze způsobů, jak vytvořit model, je prostřednictvím rozhraní REST API. Vzorem by bylo vytvoření projektu, import dat, trénování, nasazení a následné použití modelu.
Tyto úlohy se provádějí asynchronně; Budete muset odeslat požadavek na příslušný identifikátor URI pro každý krok a pak odeslat další požadavek, abyste získali stav této úlohy.
Pokud například chcete nasadit model pro projekt pro porozumění konverzačnímu jazyku, odeslali byste úlohu nasazení a pak zkontrolujte stav úlohy nasazení.
Authentication
Pro každé volání prostředku Azure AI Language ověříte požadavek zadáním následující hlavičky.
Key | Hodnota |
---|---|
Ocp-Apim-Subscription-Key |
Klíč k vašemu prostředku |
Žádost o nasazení
Odešlete požadavek POST do následujícího koncového bodu.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Zástupný symbol | Hodnota | Příklad |
---|---|---|
{ENDPOINT} |
Koncový bod prostředku Azure AI Language | https://<your-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Název projektu. U této hodnoty se rozlišují malá a velká písmena. | myProject |
{DEPLOYMENT-NAME} |
Název nasazení. U této hodnoty se rozlišují malá a velká písmena. | staging |
{API-VERSION} |
Verze rozhraní API, které voláte | 2022-05-01 |
Do své žádosti zahrňte následující body
údaje.
{
"trainedModelLabel": "{MODEL-NAME}",
}
Zástupný symbol | Hodnota |
---|---|
{MODEL-NAME} |
Název modelu, který se přiřadí k vašemu nasazení. U této hodnoty se rozlišují malá a velká písmena. |
Úspěšné odeslání požadavku obdrží odpověď s hlavičkou 202
operation-location
odpovědi . Tato hlavička bude obsahovat adresu URL, se kterou se má vyžádat stav, který bude formátován takto:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Získání stavu nasazení
Odešlete požadavek GET na adresu URL z výše uvedené hlavičky odpovědi. Hodnoty se už vyplní na základě počáteční žádosti o nasazení.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Zástupný symbol | Hodnota |
---|---|
{ENDPOINT} |
Koncový bod pro ověření požadavku rozhraní API |
{PROJECT-NAME} |
Název projektu (rozlišují se malá a velká písmena) |
{DEPLOYMENT-NAME} |
Název nasazení (rozlišují se malá a velká písmena) |
{JOB-ID} |
ID pro vyhledání stavu trénování modelu, které najdete v hodnotě hlavičky uvedené výše v žádosti o nasazení |
{API-VERSION} |
Verze rozhraní API, které voláte |
Tělo odpovědi poskytne podrobnosti o stavu nasazení. Po status
dokončení nasazení bude mít pole hodnotu úspěšného nasazení.
{
"jobId":"{JOB-ID}",
"createdDateTime":"String",
"lastUpdatedDateTime":"String",
"expirationDateTime":"String",
"status":"running"
}
Úplný názorný postup jednotlivých kroků s ukázkovými žádostmi najdete v rychlém startu s konverzačním porozuměním.
Dotazování modelu
K dotazování modelu na predikci můžete použít sady SDK v jazyce C# nebo Python nebo použít rozhraní REST API.
Dotazování pomocí sad SDK
Pokud chcete dotazovat model pomocí sady SDK, musíte nejprve vytvořit klienta. Jakmile budete mít klienta, použijete ho k volání příslušného koncového bodu.
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]
Jiné jazykové funkce, jako je porozumění konverzačnímu jazyku, vyžadují, aby se požadavek sestavil a odesílal jinak.
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
}
}
)
Dotazování pomocí rozhraní REST API
Pokud chcete dotazovat model pomocí REST, vytvořte požadavek POST na příslušnou adresu URL se zadaným příslušným textem. U integrovaných funkcí, jako je rozpoznávání jazyka nebo analýza mínění, se budete dotazovat na analyze-text
koncový bod.
Tip
Nezapomeňte, že každý požadavek musí být ověřený pomocí klíče prostředku Azure AI Language v Ocp-Apim-Subscription-Key
hlavičce.
{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
Zástupný symbol | Hodnota |
---|---|
{ENDPOINT} |
Koncový bod pro ověření požadavku rozhraní API |
{API-VERSION} |
Verze rozhraní API, které voláte |
V textu tohoto požadavku musíte zadat kind
parametr, který službě řekne, jaký typ jazyka rozumíte.
Pokud chcete například rozpoznat jazyk, text JSON by vypadal přibližně takto.
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id":"1",
"text": "This is a document written in English."
}
]
}
}
Jiné funkce jazyka, jako je porozumění konverzačnímu jazyku, vyžadují směrování požadavku do jiného koncového bodu. Například požadavek na porozumění konverzačnímu jazyku by se odeslal do následujícího příkladu.
{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
Zástupný symbol | Hodnota |
---|---|
{ENDPOINT} |
Koncový bod pro ověření požadavku rozhraní API |
{API-VERSION} |
Verze rozhraní API, které voláte |
Tento požadavek by obsahoval text JSON podobný následujícímu.
{
"kind": "Conversation",
"analysisInput": {
"conversationItem": {
"id": "1",
"participantId": "1",
"text": "Sample text"
}
},
"parameters": {
"projectName": "{PROJECT-NAME}",
"deploymentName": "{DEPLOYMENT-NAME}",
"stringIndexType": "TextElement_V8"
}
}
Zástupný symbol | Hodnota |
---|---|
{PROJECT-NAME} |
Název projektu, ve kterém jste vytvořili model |
{DEPLOYMENT-NAME} |
Název nasazení |
Ukázková odpověď
Odpověď dotazu ze sady SDK se vrátí do vráceného objektu, který se liší v závislosti na funkci (například v response.key_phrases
nebo response.Value
). Rozhraní REST API vrátí json, který by byl podobný následujícímu.
{
"kind": "KeyPhraseExtractionResults",
"results": {
"documents": [{
"id": "1",
"keyPhrases": ["modern medical office", "Dr. Smith", "great staff"],
"warnings": []
}],
"errors": [],
"modelVersion": "{VERSION}"
}
}
U jiných modelů, jako je porozumění konverzačnímu jazyku, by ukázková odpověď na váš dotaz byla podobná následující.
{
"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
}
]
}
}
}
Sady SDK pro Python i C# vrací json, který je velmi podobný odpovědi REST.
Úplnou dokumentaci k funkcím, včetně příkladů a návodů, najdete na stránkách dokumentace k jazyku Azure AI.