Share via


Uso de la respuesta a preguntas para responder preguntas

SE APLICA A: SDK v4

La característica respuesta a preguntas en Azure Cognitive Service para lenguaje proporciona un procesamiento del lenguaje natural (NLP) basado en la nube que te permite crear una capa de conversación natural sobre tus datos. Se utiliza para encontrar la respuesta más apropiada a cualquier entrada de la base de conocimiento personalizada de información.

En este artículo se describe cómo usar la característica de respuesta a preguntas en el bot.

Requisitos previos

  • Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
  • Un recurso de lenguaje en Language Studio con la característica de respuesta a preguntas personalizada habilitada.
  • Copia del ejemplo de respuesta a preguntas personalizadas en C# o JavaScript.

Acerca de este ejemplo

Para usar la respuesta a preguntas en el bot, necesitas una base de conocimiento existente. Después, el bot puede utilizar la base de conocimiento para responder a las preguntas del usuario.

Si necesitas crear una nueva base de conocimiento para un bot de Bot Framework SDK, consulta el archivo LÉAME del ejemplo de respuesta a preguntas personalizada.

C# question answering bot logic flow.

Se llama a OnMessageActivityAsync para cada entrada del usuario recibida. Cuando se llama, accede a los valores de configuración desde el archivo appsetting.json del código de ejemplo y se conecta a la base de conocimiento.

La entrada del usuario se envía a la base de conocimiento y la mejor respuesta devuelta se muestra al usuario.

Obtención de la configuración de conexión de la base de conocimiento

  1. En Language Studio, abre el recurso de idioma.

  2. Copia la siguiente información al archivo de configuración:

    • El nombre de host para tu punto de conexión del lenguaje.
    • Ocp-Apim-Subscription-Key, que es la clave de punto de conexión.
    • Nombre del proyecto, que actúa como identificador de la base de conocimiento.

El nombre de host es la parte de la dirección URL del punto de conexión entre https:// y /language, por ejemplo, https://<hostname>/language. El bot necesita el nombre del proyecto, la dirección URL del host y la clave de punto de conexión para conectarse a la base de conocimiento.

Sugerencia

Si no lo estás implementando para la producción, puedes dejar en blanco los campos de ID y contraseña de la aplicación del bot.

Configuración y llamada al cliente de la base de conocimiento

Crea el cliente de la base de conocimiento y, a continuación, usa el cliente para recuperar respuestas de la base de conocimiento.

Asegúrese de que el paquete NuGet Microsoft.Bot.Builder.AI.QnA está instalado para el proyecto.

En QnABot.cs, en el método OnMessageActivityAsync, cree un cliente de base de conocimiento. Usa el contexto de turno para consultar la base de conocimiento.

Bots/CustomQABot.cs

using var httpClient = _httpClientFactory.CreateClient();

var customQuestionAnswering = CreateCustomQuestionAnsweringClient(httpClient);

// Call Custom Question Answering service to get a response.
_logger.LogInformation("Calling Custom Question Answering");
var options = new QnAMakerOptions { Top = 1, EnablePreciseAnswer = _enablePreciseAnswer };
var response = await customQuestionAnswering.GetAnswersAsync(turnContext, options);

Probar el bot

Ejecute el ejemplo localmente en la máquina. Si aún no lo has hecho, instala Bot Framework Emulator. Para obtener más instrucciones, consulta el README del ejemplo (C# o JavaScript).

Inicia Emulator, conéctate al bot y envíale mensajes. Las respuestas a tus preguntas variarán en función de la información de la base de conocimiento.

Información adicional

La respuesta personalizada a preguntas, todas las características de ejemplo (C# or JavaScript) muestran cómo usar un cuadro de diálogo de QnA Maker para admitir las características de seguimiento y aprendizaje activo de una base de conocimiento.

  • La respuesta a preguntas admite avisos de seguimiento, también conocidos como avisos de múltiples turnos. Si la base de conocimiento requiere una respuesta adicional por parte del usuario, el servicio envía información de contexto que se puede usar para preguntar al usuario. Esta información también se utiliza para realizar llamadas de seguimiento al servicio.
  • La respuesta a preguntas también admite sugerencias de aprendizaje activo para que la base de conocimiento pueda mejorar con el tiempo. El diálogo QnA Maker admite comentarios explícitos para la característica de aprendizaje activo.