Informacje o zasobach związanych z tworzeniem modelu interpretacji języka konwersacyjnego
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:
- Wyszukaj usługi Azure AI.
- Znajdź i wybierz pozycję Usługa językowa.
- Wybierz pozycję Utwórz w obszarze Usługa językowa.
- 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.
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.