Descripción de los recursos para crear un modelo de reconocimiento del lenguaje conversacional
Para usar el servicio Language Understanding para desarrollar una solución NLP, deberá crear un recurso de lenguaje en Azure. Ese recurso se usará para crear el modelo y procesar solicitudes de predicción de aplicaciones cliente.
Sugerencia
El laboratorio de este módulo trata la creación de un modelo para reconocimiento del lenguaje conversacional. Para obtener módulos más centrados en la clasificación de texto personalizado y el reconocimiento de entidades con nombre personalizadas, consulte los módulos de solución personalizados en la ruta de aprendizaje Desarrollar soluciones de lenguaje natural.
Compilar el modelo
Para las características que requieren un modelo para la predicción, deberá compilar, entrenar e implementar ese modelo antes de usarlo para realizar una predicción. Esta compilación y entrenamiento enseñarán al servicio de Lenguaje de Azure AI lo que se debe buscar.
En primer lugar, deberá crear el recurso de Lenguaje de Azure AI en el Azure Portal. Después:
- Busque Servicios de Azure AI.
- Busque y seleccione Servicio de lenguaje.
- Seleccione Crear en Servicio de lenguaje.
- Rellene los detalles necesarios y elija la región más cercana geográficamente (para obtener el mejor rendimiento) y asígnele un nombre único.
Una vez creado ese recurso, necesitará una clave y el punto de conexión. Puede encontrarlo en el lado izquierdo en Claves y punto de conexión de la página de información general del recurso.
Uso de Language Studio
Para obtener un método más visual de creación, entrenamiento e implementación del modelo, puede usar Language Studio para lograr cada uno de estos pasos. En la página principal, puede elegir crear un proyecto de Reconocimiento del lenguaje conversacional. Una vez creado el proyecto, siga el mismo proceso que antes para compilar, entrenar e implementar el modelo.
El laboratorio de este módulo le guiará por el uso de Language Studio para compilar el modelo. Si quiere obtener más información, consulte el inicio rápido de Language Studio.
Uso de la API de REST
Una manera de compilar el modelo es a través de la API REST. El patrón sería crear el proyecto, importar datos, entrenar, implementar y, a continuación, usar el modelo.
Estas tareas se realizan de forma asincrónica; Deberá enviar una solicitud al URI adecuado para cada paso y, a continuación, enviar otra solicitud para obtener el estado de ese trabajo.
Por ejemplo, si desea implementar un modelo para un proyecto de reconocimiento del lenguaje conversacional, enviaría el trabajo de implementación y, a continuación, comprobaría el estado del trabajo de implementación.
Autenticación
Para cada llamada al recurso de Lenguaje de Azure AI, debe autenticar la solicitud proporcionando el siguiente encabezado.
Llave | Valor |
---|---|
Ocp-Apim-Subscription-Key |
Clave para el recurso |
Implementación de solicitudes
Envíe una solicitud POST al siguiente punto de conexión.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Marcador | Valor | Ejemplo |
---|---|---|
{ENDPOINT} |
El punto de conexión del recurso de Lenguaje de Azure AI | https://<your-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nombre del proyecto. Este valor distingue mayúsculas de minúsculas | myProject |
{DEPLOYMENT-NAME} |
El nombre de la implementación. Este valor distingue mayúsculas de minúsculas | staging |
{API-VERSION} |
Versión de la API a la que se llama | 2022-05-01 |
Incluya el siguiente body
con su solicitud.
{
"trainedModelLabel": "{MODEL-NAME}",
}
Marcador | Valor |
---|---|
{MODEL-NAME} |
Nombre del modelo que se asignará a la implementación. Este valor distingue mayúsculas de minúsculas. |
El envío correcto de la solicitud recibirá una respuesta 202
, con un encabezado de respuesta de operation-location
. Este encabezado tendrá una dirección URL con la que solicitar el estado, con el formato siguiente:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Obtener el estado de implementación
Envíe una solicitud GET a la dirección URL desde el encabezado de respuesta anterior. Los valores ya se rellenarán en función de la solicitud de implementación inicial.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador | Valor |
---|---|
{ENDPOINT} |
Punto de conexión para autenticar la solicitud de API |
{PROJECT-NAME} |
El nombre del proyecto (distingue mayúsculas de minúsculas) |
{DEPLOYMENT-NAME} |
Nombre de la implementación (distingue mayúsculas de minúsculas) |
{JOB-ID} |
Identificador para buscar el estado de entrenamiento del modelo, que se encuentra en el valor de encabezado detallado anteriormente en la solicitud de implementación. |
{API-VERSION} |
Versión de la API a la que se llama |
El cuerpo de la respuesta proporcionará los detalles del estado de implementación. El campo status
tendrá el valor de correcto una vez completada la implementación.
{
"jobId":"{JOB-ID}",
"createdDateTime":"String",
"lastUpdatedDateTime":"String",
"expirationDateTime":"String",
"status":"running"
}
Para ver un tutorial completo de cada paso con solicitudes de ejemplo, consulte el inicio rápido de comprensión conversacional.
Consulta del modelo
Para consultar el modelo para obtener una predicción, puede usar SDK en C# o Python, o bien usar la API de REST.
Consultar mediante SDK
Para consultar el modelo mediante un SDK, primero debe crear el cliente. Una vez que tenga el cliente, úselo para llamar al punto de conexión adecuado.
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]
Otras características del lenguaje, como el reconocimiento del lenguaje conversacional, requieren que la solicitud se cree y envíe de forma diferente.
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
}
}
)
Consultar mediante la API de REST
Para consultar el modelo mediante REST, cree una solicitud POST en la dirección URL adecuada con el cuerpo adecuado especificado. Para las características integradas, como la detección de idioma o el análisis de sentimiento, consultará el punto de conexión de analyze-text
.
Sugerencia
Recuerde que cada solicitud debe autenticarse con la clave de recurso de Lenguaje de Azure AI en el encabezado Ocp-Apim-Subscription-Key
{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
Marcador | Valor |
---|---|
{ENDPOINT} |
Punto de conexión para autenticar la solicitud de API |
{API-VERSION} |
Versión de la API a la que se llama |
Dentro del cuerpo de esa solicitud, debe especificar el parámetro kind
, que indica al servicio qué tipo de comprensión del lenguaje solicita.
Si quiere detectar el lenguaje, por ejemplo, el cuerpo JSON tendría un aspecto similar al siguiente.
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id":"1",
"text": "This is a document written in English."
}
]
}
}
Otras características del lenguaje, como el reconocimiento del lenguaje conversacional, requieren que la solicitud se enrute a un punto de conexión diferente. Por ejemplo, la solicitud de reconocimiento del lenguaje conversacional se enviaría a lo siguiente.
{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
Marcador | Valor |
---|---|
{ENDPOINT} |
Punto de conexión para autenticar la solicitud de API |
{API-VERSION} |
Versión de la API a la que se llama |
Esa solicitud incluiría un cuerpo JSON similar al siguiente.
{
"kind": "Conversation",
"analysisInput": {
"conversationItem": {
"id": "1",
"participantId": "1",
"text": "Sample text"
}
},
"parameters": {
"projectName": "{PROJECT-NAME}",
"deploymentName": "{DEPLOYMENT-NAME}",
"stringIndexType": "TextElement_V8"
}
}
Marcador | Valor |
---|---|
{PROJECT-NAME} |
Nombre del proyecto en el que creó el modelo |
{DEPLOYMENT-NAME} |
Nombre de la implementación |
Respuesta de muestra
La respuesta a la consulta de un SDK es el objeto devuelto, que varía en función de la característica (por ejemplo, en response.key_phrases
o response.Value
). La API de REST devolverá JSON que sería similar a lo siguiente.
{
"kind": "KeyPhraseExtractionResults",
"results": {
"documents": [{
"id": "1",
"keyPhrases": ["modern medical office", "Dr. Smith", "great staff"],
"warnings": []
}],
"errors": [],
"modelVersion": "{VERSION}"
}
}
Para otros modelos como el reconocimiento del lenguaje conversacional, un ejemplo de respuesta a la consulta sería similar al siguiente.
{
"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
}
]
}
}
}
Los SDK para Python y C# devuelven JSON, que es muy similar a la respuesta REST.
Para obtener documentación completa sobre las características, incluidos ejemplos y guías paso a paso, consulte las páginas de documentación de Lenguaje de Azure AI.