Chatbots en Drupal 8!

Agosto 2017

MANATí

¿Quiénes somos?

Dharizza Espinach Barahona

Backend Developer
@dharizza

dharizza@estudiomanati.com

MANATí

Kevin Porras Zumbado

Director of Technology

@kporras07

kevin@estudiomanati.com

Agenda

MANATí

  1. Conceptos de Chatbots
  2. Servicios de Chatbots
  3. Plataformas de Chatbots
  4. Módulos de Drupal
  5. Casos de Uso
  6. ¡Manos a la obra!

Conceptos de Chatbots

MANATí

  • Natural Language Processing
  • Intents
  • Parámetros
  • Entidades
  • Contextos

Servicios de Chatbots

MANATí

Plataformas de Chatbots

MANATí

  • Facebook Messenger
  • Telegram
  • Slack
  • Alexa
  • Twitter
  • Skype
  • Otros

Módulos de Drupal

MANATí

Casos de Uso

MANATí

  • Usuario pide información y el bot responde
  • Administrador del bot envía información a todos los usuarios

¡Manos a la obra!

MANATí

  • Página y app de Facebook
  • Bot en Api.ai y activar integración con Messenger
  • Integrar Api.ai con Drupal (Fulfillment)

¡Manos a la obra!

MANATí

  • Api.ai: Intents y Entidades

¡Manos a la obra!

MANATí

  • Chatbot_api: Arquitectura
    • ChatbotIntent Plugin
    • RequestSubscriber Service

¡Manos a la obra!

MANATí

  • Chatbot_api: Views Intent
  • Relación entre:
    • Nombre del intent: drupal vs api.ai
    • Nombres de parámetros vs Nombres de filtros

¡Manos a la obra!

MANATí

  • Chatbot Workflow

¡Manos a la obra!

MANATí

  • Drupal: Alterar plugin Views Intent
/**
 * Implements hook_TYPE_alter().
 */
function chatbot_experiments_chatbot_chatbot_intent_info_alter(&$definitions) {
  foreach ($definitions as &$definition) {
    if ($definition['id'] === 'views_intent') {
      $definition['class'] = 'Drupal\chatbot_experiments_chatbot\Plugin\Chatbot\Intent\ChatbotExperimentsViewsIntent';
    }   
  }
}

¡Manos a la obra!

MANATí

  • Drupal: Custom plugin View Intent

¡Manos a la obra!

MANATí

  • Drupal: Custom response

¡Manos a la obra!

MANATí

  • Drupal: Override Service
class ChatbotExperimentsChatbotServiceProvider extends ServiceProviderBase {

  public function alter(ContainerBuilder $container) {
    // Overrides chatbot_api_apiai.request_subscriber class.
    $definition = $container->getDefinition('chatbot_api_apiai.request_subscriber');
    $definition->setClass('Drupal\chatbot_experiments_chatbot\EventSubscriber\RequestSubscriber');
  }

}

¡Manos a la obra!

MANATí

  • Drupal: Custom Event Subscriber

Demo

MANATí

¡Gracias!

@dharizza

@kporras07

@estudiomanati

www.estudiomanati.com


https://goo.gl/WyWBbh

MANATí

Chatbots + Drupal 8

By kevin porras

Chatbots + Drupal 8

Presentación base para eventos.

  • 907