Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
La API de la plataforma Einstein Bots le permite agregar Einstein Bots a cualquier canal de conversación. Hemos creado un SDK de Java de código abierto y un conector de canal para brindarle las herramientas que necesita para integrar fácilmente Bots de Einstein en sus canales de conversación además de los canales de participación digital existentes compatibles con Service Cloud.
En nuestra publicación anterior , mostramos cómo usar el cliente administrado por sesión del SDK para simplificar su implementación mediante la administración automática de sesiones para su canal de conversación.
En esta publicación, exploraremos el marco de Channel Connector y sus características. Aprenderá lo fácil que es crear una aplicación de conector de canal para Bots de Einstein utilizando el marco Spring Boot . Además, aprenderá cómo monitorear el estado de su aplicación, verificar las métricas de su aplicación y más.
Resumen rápido del SDK de Bots de Einstein
El marco de Channel Connector se basa en el SDK de Bots de Einstein. Hagamos un resumen rápido de los beneficios de usar el SDK:
- Abstrae las complejidades de la autenticación y la comunicación HTTP, y proporciona una API de Java simple para conectarse a Einstein Bots
- Proporciona clases modelo que serializan/deserializan automáticamente cargas JSON a objetos Java.
- Proporciona un cliente administrado por sesión para administrar automáticamente las sesiones.
Presentación del marco del conector de canal para los bots de Einstein
Einstein Bots se puede integrar con canales de conversación, como Webchat, Facebook, WhatsApp o Slack. Para implementar esta integración, deberá crear una aplicación de conector de canal que se ocupe de las interacciones. Por ejemplo, si crea una aplicación de conector para Slack, la aplicación deberá escuchar los mensajes en un canal de Slack, reenviar los mensajes recibidos a su Einstein Bot y enviar la respuesta del bot a Slack.
Si bien el SDK de Bots de Einstein hace mucho trabajo pesado por usted, para crear una aplicación de conector de canal completa, debe implementar las siguientes características:
- Cree una instancia de
BasicChatbotClient
oSessionManagedChatbotClient
y administre su ciclo de vida - Lea todas las configuraciones, como
orgId
ybotId
de las propiedades de la aplicación, y utilícelas para crear instancias deChatbotClient
- Supervise el estado y las métricas de su aplicación de conector de canal
Afortunadamente, no tiene que implementar todo esto usted mismo si usa Spring Boot , ya que hemos creado un marco de Channel Connector para ayudarlo.
El marco del conector de canales de Bots de Einstein es un Spring Boot Starter que simplifica la creación de conectores de canales externos para un Bot de Einstein. El marco utiliza el SDK de Bot de Einstein y configura dependencias como el almacenamiento en caché, la autenticación y las métricas mediante una configuración automática de Spring. Aquí hay una descripción general rápida de los beneficios que se obtienen al usar el marco de Channel Connector:
Configuración automática
Los beans Spring se configuran automáticamente mediante application.properties
.
Mecanismo de autenticación
Si todas las propiedades de OAuth se especifican en las propiedades de la aplicación, el marco del conector de canal configura el SDK de Bots de Einstein para usar el flujo de OAuth de JWT Bearer para AuthMechanism
.
mecanismo de almacenamiento en caché
Si sfdc.einstein.bots.cache.redis-url
está incluido en las propiedades de la aplicación, el SDK usa una caché de Redis . De lo contrario, se implementa la caché en memoria.
Clientes bot básicos y administrados por sesión
Si configura todas las propiedades requeridas en application.properties
, tanto BasicChatbotClient
como SessionManagedChatbotClient
se conectan automáticamente a Spring beans con configuraciones predeterminadas.
Indicador de salud del bot
El indicador de salud de Spring, BotsHealthIndicator
, se configura automáticamente para permitirle verificar el estado de salud del tiempo de ejecución del bot. Más información sobre cómo hacer esto más adelante en el blog.
Soporte de implementación personalizado
Puede proporcionar su propia implementación de Spring beans en lugar de usar la predeterminada (por ejemplo, si desea usar su propio mecanismo de caché o usar su propio mecanismo de autenticación). Cuando se encuentra una implementación personalizada, se usará para conectar automáticamente los beans Spring en lugar de la implementación predeterminada proporcionada por el marco del conector de canal.
Métrica
El marco utiliza la biblioteca Spring Micrometer para recopilar las métricas. Puede publicar las métricas en la mayoría de los sistemas de monitoreo populares, como New Relic, Prometheus y Graphite, utilizando Spring Micrometer.
Para quién es el conector de canales
La forma estándar de la industria de administrar las dependencias y el ciclo de vida de los objetos es usar un marco de inyección de dependencias como Google Guice o Spring. Decidimos utilizar uno de los marcos de desarrollo de aplicaciones más populares, Spring Boot, para construir el marco de Channel Connector.
Si puede usar Spring Boot para su aplicación de conector, puede usar el conector de canal de bot de Einstein. Si necesita usar algún otro marco de desarrollo de aplicaciones o administrar las dependencias usted mismo, use el SDK de Bot de Einstein directamente como una biblioteca de Java.
Cómo usar el marco del conector de canal
Suficiente teoría: escribamos un poco de código utilizando el marco Channel Connector. En esta sección, aprenderá cómo crear una nueva aplicación de conector de canal, personalizarla según sus necesidades y monitorear su estado.
Crear una aplicación de conector de canal
Para crear su aplicación de conector de canal, simplemente ejecute el siguiente comando de Maven. Modifique el comando para incluir archetypeVersion
en la versión más reciente del arquetipo del conector de canal de bot de Einstein . Además, configure el package
, groupId
de grupo y el ID de artifactId
con los nombres de su elección.
mvn archetype
:
generate
-
DarchetypeGroupId
=
com
.
fuerza.
salesforce
einsteinbot
-
DarchetypeArtifactId
=
einstein
-
bot
-
channel
-
connector
-
archetype
-
Versión del tipo deDarchetypeVersion
=2
.0
.
1
-
Dpackage
=
com
.
mycompany
.
myapp
.
channel
-
DgroupId
=
com
.
mycompany
.
myapp
-
DartifactId
=
myapp
-
channel
-
connector
-
Dversion
=1.0.0-SNAPSHOT
Comprender la estructura del proyecto.
Se creará un nuevo directorio, myapp-channel-connector
, siguiendo el esqueleto básico del proyecto que se muestra a continuación. El nombre del directorio y la estructura del directorio después de src/main/java
serán diferentes en función de los valores que utilizó al ejecutar el comando anterior.
myapp-channel-conector ├── LÉAME.md ├── pom.xml └─> origen └─> principal ├─>java │ └─>com │ └─> miempresa │ └─> mi aplicación │ └─> canal │ └─> conector │ └── AplicaciónConector.java └─> recursos └── aplicación.ejemplo.propiedades
El pom.xml
creado incluirá todas las dependencias requeridas, incluido el marco de Channel Connector y el SDK de Bots de Einstein.
La clase ConnectorApplication
creada, anotada con @SpringBootApplication
, será el punto de entrada para iniciar la aplicación Spring Boot del conector.
Se incluirá un README.md
con instrucciones sobre cómo ejecutar la aplicación.
Configurar la aplicación
Para configurar la aplicación, deberá crear un archivo application.properties
en el directorio src/main/resources
con todas las propiedades requeridas. Puede copiar las propiedades de ejemplo de src/main/resources/application.example.properties
y actualizarlas según su entorno. También deberá colocar su clave privada de OAuth en src/main/resources
. Puede consultar nuestra guía del usuario para ver una lista completa de las propiedades de la aplicación y cómo encontrar sus valores.
Iniciar la aplicación
Una vez que complete la configuración, puede iniciar la aplicación ejecutando Spring Boot con este comando de Maven.
mvn spring-boot:ejecutar
¡Después de ejecutar el comando, tendrá una aplicación básica ejecutándose sin haber escrito una sola línea de código!
A continuación, usemos Spring beans con conexión automática para enviar mensajes al bot.
Cree una interfaz de usuario para comunicarse con su bot
Digamos que queremos crear una interfaz de usuario simple (como la captura de pantalla a continuación) para jugar con las solicitudes/respuestas de los bots.
La interfaz de usuario aceptará el mensaje del usuario, lo enviará al bot y mostrará la respuesta del bot. La interfaz se puede construir usando HTML. También necesitaremos un controlador REST para procesar la solicitud en el lado del servidor.
Podemos crear un controlador REST Spring y usar anotaciones @Autowired
para inyectar beans Spring con la implementación del cliente chatbot. El código del controlador se verá así:
@Controlador @RequestMapping("bot") clase pública EinsteinBotController { @autocableado salud privada de BotsHealthIndicator; @autocableado privado SessionManagedChatbotClient chatbotClient; @Value("${sfdc.einstein.bots.force-config-endpoint}") cadena privada forceConfigEndpoint; @Valor("${sfdc.einstein.bots.orgId:}") cadena privada orgId; @Valor("${sfdc.einstein.bots.botId:}") cadena privada botId; }
El marco Channel Connector inicializa las propiedades @Autowired
, como chatbotClient
, incluidas sus dependencias como AuthMechanism
y Cache,
según las configuraciones definidas en n application.properties
. Además, podemos referirnos a cualquier propiedad de la aplicación utilizando la anotación Spring @Value
.
SessionManagedChatbotClient
es una clase proporcionada por el SDK de bot de Einstein que puede usar para enviar mensajes al bot.
botResponse = chatbotClient.sendMessage(requestConfig, ID de sesión externa, solicitud de bot);
El código de ejemplo de trabajo completo de este conector ui está disponible en el directorio de ejemplos en el repositorio einstein-bot-channel-connector.
Comprobar el estado de la aplicación
El conector del canal incluye una clase llamada BotsHealthIndicator
que implementa el HealthIndicator de Spring . Puede ir a http://<host>:<port>/<baseurl>/actuator/health
para comprobar el estado de la aplicación. Obtendrá una respuesta JSON que indica el status
como UP
o DOWN
de esta manera:
También puede comprobar el estado mediante programación conectando automáticamente BotsHealthIndicator
y llamando al método .health()
.
Ver métricas
La biblioteca Spring Micrometer se utiliza para la instrumentación y ya se han recopilado muchas métricas fundamentales. Puede encontrar todas las métricas recopiladas en http://<host>:<port>/<baseurl>/actuator/metrics
.
Publicar métricas
Spring Micrometer puede publicar métricas en todos los sistemas de monitoreo populares, como New Relic, Prometheus, Graphite y más. Para publicar las métricas en un sistema de monitoreo externo, consulte las instrucciones para su sistema de monitoreo en la documentación de Micrometer . Consulte NewRelicMetricsExportAutoConfiguration para ver un ejemplo de cómo publicar las métricas en New Relic.
Resumen
Para recapitular, ha aprendido a crear una aplicación utilizando el marco de conector de canal de Bots de Einstein. Además, sabe cómo verificar el estado de la aplicación y monitorear las métricas. Para obtener más información, consulte la guía del usuario de Einstein Bot Channel Connector y explore nuestras aplicaciones de ejemplo de código abierto.
Sobre el Autor
Rajasekar Elango es ingeniero de software principal en Salesforce y trabaja en la plataforma Einstein Bots. Puedes seguirlo en LinkedIn o Twitter .
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2022/08/connect-external-channels-with-einstein-bots-using-the-channel-connector-framework.html