Compreender os recursos para criar um modelo de compreensão de linguagem conversacional
Para usar o serviço de Compreensão de Idiomas para desenvolver uma solução de PNL, você precisará criar um recurso de Idioma no Azure. Esse recurso será usado para criar seu modelo e processar solicitações de previsão de aplicativos cliente.
Gorjeta
O laboratório deste módulo aborda a construção de um modelo para a compreensão da linguagem conversacional. Para obter módulos mais focados na classificação de texto personalizada e no reconhecimento personalizado de entidades nomeadas, consulte os módulos de solução personalizados no caminho de aprendizagem Desenvolver soluções de linguagem natural.
Construa o seu modelo
Para recursos que exigem um modelo para previsão, você precisará criar, treinar e implantar esse modelo antes de usá-lo para fazer uma previsão. Este edifício e formação ensinarão ao serviço Azure AI Language o que procurar.
Primeiro, você precisará criar seu recurso de linguagem de IA do Azure no portal do Azure. Em seguida:
- Pesquise serviços de IA do Azure.
- Localize e selecione Serviço de Idiomas.
- Selecione Criar no Serviço de Idiomas.
- Preencha os dados necessários, escolhendo a região mais próxima de si geograficamente (para melhor desempenho) e atribuindo-lhe um nome único.
Depois que esse recurso for criado, você precisará de uma chave e do ponto de extremidade. Você pode encontrá-lo no lado esquerdo em Chaves e Ponto Final da página de visão geral do recurso.
Usar o Language Studio
Para obter um método mais visual de criação, treinamento e implantação de seu modelo, você pode usar o Language Studio para executar cada uma dessas etapas. Na página principal, você pode optar por criar um projeto de compreensão de linguagem conversacional. Depois que o projeto for criado, passe pelo mesmo processo acima para criar, treinar e implantar seu modelo.
O laboratório neste módulo explicará o uso do Language Studio para criar seu modelo. Se quiser saber mais, consulte o Guia de início rápido do Language Studio
Utilizar a API REST
Uma maneira de criar seu modelo é por meio da API REST. O padrão seria criar seu projeto, importar dados, treinar, implantar e, em seguida, usar seu modelo.
Estas tarefas são feitas de forma assíncrona; você precisará enviar uma solicitação para o URI apropriado para cada etapa e, em seguida, enviar outra solicitação para obter o status desse trabalho.
Por exemplo, se você quiser implantar um modelo para um projeto de compreensão de linguagem conversacional, envie o trabalho de implantação e verifique o status do trabalho de implantação.
Autenticação
Para cada chamada para seu recurso de linguagem do Azure AI, você autentica a solicitação fornecendo o seguinte cabeçalho.
Key | valor |
---|---|
Ocp-Apim-Subscription-Key |
A chave para o seu recurso |
Solicitar implantação
Envie uma solicitação POST para o ponto de extremidade a seguir.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Marcador de Posição | Valor | Exemplo |
---|---|---|
{ENDPOINT} |
O ponto de extremidade do seu recurso de linguagem de IA do Azure | https://<your-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas | myProject |
{DEPLOYMENT-NAME} |
O nome da sua implantação. Esse valor diferencia maiúsculas de minúsculas | staging |
{API-VERSION} |
A versão da API que você está chamando | 2022-05-01 |
Inclua o seguinte body
no seu pedido.
{
"trainedModelLabel": "{MODEL-NAME}",
}
Marcador de Posição | Valor |
---|---|
{MODEL-NAME} |
O nome do modelo que será atribuído à sua implantação. Esse valor diferencia maiúsculas de minúsculas. |
O envio bem-sucedido do seu pedido receberá uma 202
resposta, com um cabeçalho de resposta de operation-location
. Este cabeçalho terá um URL com o qual solicitar o status, formatado assim:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Obter status de implantação
Envie uma solicitação GET para o URL a partir do cabeçalho de resposta acima. Os valores já serão preenchidos com base na solicitação inicial de implantação.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de Posição | Valor |
---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API |
{PROJECT-NAME} |
O nome do seu projeto (diferencia maiúsculas de minúsculas) |
{DEPLOYMENT-NAME} |
O nome da sua implantação (diferencia maiúsculas de minúsculas) |
{JOB-ID} |
A ID para localizar o status de treinamento do modelo, encontrada no valor do cabeçalho detalhado acima na solicitação de implantação |
{API-VERSION} |
A versão da API que você está chamando |
O corpo de resposta fornecerá detalhes do status da implantação. O status
campo terá o valor de bem-sucedido quando a implantação for concluída.
{
"jobId":"{JOB-ID}",
"createdDateTime":"String",
"lastUpdatedDateTime":"String",
"expirationDateTime":"String",
"status":"running"
}
Para obter um passo a passo completo de cada etapa com solicitações de exemplo, consulte o Guia de início rápido de compreensão conversacional.
Consultar o seu modelo
Para consultar seu modelo para obter uma previsão, você pode usar SDKs em C# ou Python ou usar a API REST.
Consulta usando SDKs
Para consultar seu modelo usando um SDK, primeiro você precisa criar seu cliente. Depois de ter seu cliente, você o usa para chamar o ponto de extremidade apropriado.
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]
Outros recursos de linguagem, como o entendimento de linguagem conversacional, exigem que a solicitação seja construída e enviada 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
}
}
)
Consulta usando a API REST
Para consultar seu modelo usando REST, crie uma solicitação POST para a URL apropriada com o corpo apropriado especificado. Para recursos integrados, como deteção de idioma ou análise de sentimento, você consultará o analyze-text
ponto de extremidade.
Gorjeta
Lembre-se de que cada solicitação precisa ser autenticada com sua chave de recurso do Azure AI Language no Ocp-Apim-Subscription-Key
cabeçalho
{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
Marcador de Posição | Valor |
---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API |
{API-VERSION} |
A versão da API que você está chamando |
No corpo dessa solicitação, você deve especificar o kind
parâmetro, que informa ao serviço que tipo de compreensão de idioma você está solicitando.
Se você quiser detetar o idioma, por exemplo, o corpo JSON seria parecido com o seguinte.
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id":"1",
"text": "This is a document written in English."
}
]
}
}
Outros recursos de idioma, como o entendimento de linguagem conversacional, exigem que a solicitação seja roteada para um ponto de extremidade diferente. Por exemplo, a solicitação de compreensão de linguagem conversacional seria enviada para o seguinte.
{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
Marcador de Posição | Valor |
---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API |
{API-VERSION} |
A versão da API que você está chamando |
Esse pedido incluiria um organismo JSON semelhante ao seguinte.
{
"kind": "Conversation",
"analysisInput": {
"conversationItem": {
"id": "1",
"participantId": "1",
"text": "Sample text"
}
},
"parameters": {
"projectName": "{PROJECT-NAME}",
"deploymentName": "{DEPLOYMENT-NAME}",
"stringIndexType": "TextElement_V8"
}
}
Marcador de Posição | Valor |
---|---|
{PROJECT-NAME} |
O nome do projeto onde você construiu seu modelo |
{DEPLOYMENT-NAME} |
O nome da sua implantação |
Resposta da amostra
A resposta de consulta de um SDK estará no objeto retornado, o que varia dependendo do recurso (como em response.key_phrases
ou response.Value
). A API REST retornará JSON que seria semelhante ao seguinte.
{
"kind": "KeyPhraseExtractionResults",
"results": {
"documents": [{
"id": "1",
"keyPhrases": ["modern medical office", "Dr. Smith", "great staff"],
"warnings": []
}],
"errors": [],
"modelVersion": "{VERSION}"
}
}
Para outros modelos, como compreensão de linguagem conversacional, um exemplo de resposta à sua consulta seria semelhante ao seguinte.
{
"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
}
]
}
}
}
Os SDKs para Python e C# retornam JSON que é muito semelhante à resposta REST.
Para obter documentação completa sobre recursos, incluindo exemplos e guias de instruções, consulte as páginas de documentação da Linguagem de IA do Azure.