Campos de identificador en Bot Framework

SE APLICA A: SDK v4

Esta guía describe las características de los campos de identificador en Bot Framework.

Identificador de canal

Todos y cada uno de los canales de Bot Framework se identifican mediante un identificador único.

Ejemplo: "channelId": "slack"

Los identificadores de canal sirven como espacios de nombres para otros identificadores. Las llamadas en tiempo de ejecución en el protocolo de Bot Framework tienen que producirse dentro del contexto de un canal; el canal proporciona significado a la conversación y a los identificadores de cuenta que se usan al comunicarse.

Por convención, todos los identificadores de canal están en minúsculas. Los canales garantizan que los identificadores de canal que emiten mantienen coherencia en el uso de mayúsculas y minúsculas y, por lo tanto, los bots pueden usar comparaciones ordinales para establecer la equivalencia.

Reglas para los identificadores de canal

  • Los identificadores distinguen entre mayúsculas y minúsculas.

Identificador de bot

Cada bot que se ha registrado con el Servicio de Bot de Azure AI tiene un identificador de bot.

Ejemplo: FooBot

Un identificador de bot representa el registro de un bot con el Servicio de Bot de Azure AI en línea. Este registro se asocia con un punto de conexión de webhook HTTP y los registros de canales.

El Servicio de Bot de Azure AI garantiza la exclusividad de los identificadores de bot. Azure Portal realiza una comprobación de la exclusividad de mayúsculas y minúsculas (lo que significa que las variaciones de mayúsculas y minúsculas del identificador de bot se tratan como un único identificador), aunque esto sea una característica de Azure Portal, y no necesariamente del propio identificador de bot.

Reglas para los identificadores de bot

  • Los identificadores de bot son únicos (mayúsculas y minúsculas) dentro de Bot Framework.

Id. de la aplicación

Cada bot que se ha registrado con el Servicio de Bot de Azure AI tiene un identificador de aplicación.

Nota:

Previamente, las aplicaciones se conocían comúnmente como "Aplicaciones de MSA" o “Aplicaciones MSA/AAD”. Ahora las aplicaciones se conocen normalmente solo como "aplicaciones", pero algunos elementos de protocolo pueden seguir haciendo referencia a las aplicaciones como "Aplicaciones de MSA".

Ejemplo: "msaAppId": "353826a6-4557-45f8-8d88-6aa0526b8f77"

Una aplicación representa un registro con el portal de aplicaciones del equipo de identidad y sirve como mecanismo de identidad de servicio a servicio dentro del protocolo de tiempo de ejecución de Bot Framework. Las aplicaciones pueden tener otras asociaciones que no sean de bot, como sitios web y aplicaciones de escritorio o móviles.

Cada bot registrado tiene exactamente una aplicación. Aunque no es posible para el propietario de un bot cambiar de manera independiente la aplicación que está asociada con su bot, el equipo de Bot Framework sí que puede hacerlo en unos pocos casos excepcionales.

Los bots y los canales pueden usar los identificadores de aplicación para identificar de forma única a un bot registrado.

Los identificadores de aplicación son siempre GUID. Los identificadores de aplicación se deben comparar sin diferenciar entre mayúsculas y minúsculas.

Reglas para los identificadores de aplicación

  • Los identificadores de aplicación son únicos (comparación GUID) dentro de la plataforma de Microsoft App.
  • Cada bot tiene exactamente una aplicación correspondiente.
  • El cambio de la aplicación que está asociada a un bot requiere la ayuda del equipo de Bot Framework.

Cuenta de canal

Cada bot y usuario tienen una cuenta dentro de cada canal. La cuenta contiene un identificador (id) y otros datos informativos no estructurales del bot, como un nombre opcional.

Ejemplo: "from": { "id": "john.doe@contoso.com", "name": "John Doe" }

Esta cuenta describe la dirección dentro del canal donde se pueden enviar y recibir mensajes. En algunos casos, estos registros existen dentro de un único servicio, p. ej. Facebook. En otros casos, se registran en varios sistemas (direcciones de correo electrónico, números de teléfono). En los canales más anónimos, como Chat en web, el registro puede ser efímero.

Las cuentas de canal están anidadas dentro de los canales. Una cuenta de Facebook, por ejemplo, es simplemente un número. Este número puede tener un significado diferente en otros canales, y no tiene significado fuera de todos los canales.

La relación entre las cuentas de canal y los usuarios (personas reales) depende de las convenciones asociadas a cada canal. Por ejemplo, un número SMS suele hacer referencia a una persona, pero el número se puede transferir a otra persona. Por el contrario, una cuenta de Facebook suele hacer referencia a una persona de forma perpetua, aunque no es raro que dos personas compartan una cuenta de Facebook.

En la mayoría de los canales, se puede pensar en una cuenta de canal como una especie de buzón donde se pueden entregar mensajes. Es habitual que la mayoría de los canales permitan que varias direcciones se asignen a un solo buzón. Por ejemplo, "jdoe@contoso.com" y "john.doe@service.contoso.com" pueden resolverse en la misma bandeja de entrada. Algunos canales van más allá y modifican la dirección de la cuenta en función del bot al que accede. Por ejemplo, Facebook modifica los identificadores de usuario para que cada bot tenga una dirección diferente para enviar y recibir mensajes.

Aunque en algunos casos se puede establecer la equivalencia entre las direcciones, el establecimiento de equivalencias entre los buzones y equivalencias entre personas requiere el conocimiento de las convenciones dentro del canal, y en muchos casos no es posible.

El bot recibe información de su dirección de cuenta de canal en el campo recipient en las actividades que se envían al bot.

Reglas para las cuentas de canal

  • Las cuentas de canal tienen significado solo dentro de su canal asociado.
  • Se puede resolver más de un identificador a la misma cuenta.
  • La comparación ordinal puede utilizarse para establecer que dos identificadores son el mismo.
  • Normalmente, no hay ninguna comparación que puede usarse para identificar si dos identificadores diferentes se resuelven en la misma cuenta, bot o persona.
  • La estabilidad de las asociaciones entre identificadores, cuentas, buzones y personas depende del canal.

Id. de la conversación

Los mensajes se envían y reciben en el contexto de una conversación, que se puede reconocer por su identificador.

Ejemplo: "conversation": { "id": "1234" }

Una conversación contiene un intercambio de mensajes y otras actividades. Cada conversación tiene cero o más actividades, y cada actividad aparece exactamente en una conversación. Las conversaciones pueden ser perpetuas, o pueden tener principios y finales claros. El proceso de creación, modificación o finalización de una conversación se produce dentro del canal (una conversación existe cuando el canal es consciente de ello), y es el canal el que establece las características de estos procesos.

Las actividades dentro de una conversación las envían los usuarios y los bots. La definición para la que los usuarios "participan" en una conversación varía según el canal, y puede incluir, en teoría, a los usuarios actuales, los usuarios que nunca han recibido un mensaje y los usuarios que hayan enviado un mensaje.

Varios canales (por ejemplo, SMS y posiblemente otros) tienen la peculiaridad de que el identificador de conversación asignado a una conversación de 1 a 1 es el ID de cuenta del canal remoto. Esta peculiaridad tiene dos efectos secundarios:

  1. El identificador de conversación es subjetivo en base a quién lo esté viendo. Si los participantes A y B están hablando, el participante A ve el identificador de conversación como "B", mientras el participante B ve el identificador de conversación como "A".
  2. Si el bot tiene varias cuentas de canal dentro de este canal (por ejemplo, si el bot tiene dos números SMS), el identificador de conversación no es suficiente para identificar de forma exclusiva la conversación dentro campo de visión del bot.

Por lo tanto, un identificador de conversación no identifica necesariamente de manera única una sola conversación dentro de un canal, incluso para un solo bot.

Reglas para los identificadores de conversación

  • Las conversaciones tienen significado solo dentro de su canal asociado.
  • Se puede resolver más de un identificador a la misma conversación.
  • La igualdad ordinal no establece necesariamente que dos identificadores de conversación son la misma conversación, aunque en la mayoría de los casos, sí lo hace.

Identificador de actividad

Las actividades se envían y reciben dentro del protocolo de Bot Framework y a veces son identificables.

Ejemplo: "id": "5678"

Los identificadores de actividad son opcionales y los emplean los canales para dar al bot una manera de hacer referencia al identificador en llamadas API posteriores, si están disponibles:

  • Respuesta a una actividad específica
  • Consulta de la lista de participantes en el nivel de actividad

Dado que no se han establecido más casos de uso, no hay reglas adicionales para el tratamiento de los identificadores de actividad.