Build a Chatbot with Watson APIs Course

بواسطة: Treehouse

Overview

IBM has created an AI platform named Watson that gives businesses and developers access to powerful tools for text and speech analysis, computer vision, and more. Watson APIs consist of a suite of services used to process or analyze data to answer questions and make decisions. This course will show you how to build a chatbot with Node.js and the Conversation and Discovery services from Watson. You'll also learn how to setup your bot on the IBM Cloud platform.

What you'll learn

  • Set up personal Watson API instances on IBM Cloud
  • Send and receive data from Watson APIs
  • Process text using the Watson Conversation service
  • Process text using the Watson Discovery service
  • Configure a conversational dialog with intents and entities

Syllabus

Introducing the Watson APIs

IBM Watson is a platform of APIs that IBM has trained on immense data sets for use as a service. The Watson APIs allow you to process speech, text, and images in an easy and natural way. They also allow you to further train services with your own custom data to provide context-specific analysis. In this stage we'll get a good feel for what you can build with Watson APIs.

Chevron 9 steps
  • Course Overview

    4:07

  • What is Watson Used For?

    3:13

  • Trying it Out

    5:10

  • IBM Cloud and a Sample Chatbot

    5:00

  • How Conversation and Discovery Services Work Together

    4:19

  • How Conversation and Tone Analyzer Services Work Together

    3:33

  • Starting Our Project on IBM Cloud

    7:12

  • Starting Our Local Client

    6:28

  • Review: What is Watson?

    6 questions

Using the Conversation Service

The heart of our chatbot is built using Watson's Conversation APIs. In this stage we'll build and test a custom Conversation Service and see how it is used from our client app.

Chevron 10 steps
  • Intents, Entities, and Dialogs

    3:30

  • Creating an Intent

    4:25

  • Review: Intents

    5 questions

  • What's Happening in My Node.js Code?

    4:44

  • Clarifying with an Entity

    6:33

  • Review: Entities

    4 questions

  • Responding with a Dialog

    2:39

  • Responding to an Intent

    4:51

  • Exporting and Importing Components

    7:21

  • Review: Dialogs

    5 questions

Using the Discovery Service

The real fun and power of the Watson platform happens when we start combining multiple services together to create more context-aware and capable systems. In this stage we will setup and integrate the Discovery API, which allows us to gather insights from unstructured or loosely defined data sets.

Chevron 8 steps
  • Getting Started with the Discovery Service

    4:19

  • Creating a Discovery Collection

    7:31

  • Uploading AirBnb Reviews

    2:54

  • Querying Using the Discovery Tools

    2:56

  • Querying Using the Discovery API

    7:31

  • Transferring from Conversation to Discovery

    12:11

  • Wrapping Up and Next Steps

    1:51

  • Review: Discovery Service

    6 questions

Taught by

Armen Pischdotchian

Build a Chatbot with Watson APIs Course
الذهاب الي الدورة

Build a Chatbot with Watson APIs Course

بواسطة: Treehouse

  • Treehouse
  • مدفوعة
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • intermediate
  • N/A
8.1.2PHP Version329msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (201ms)
    • Application (127ms)
    • 1 x Booting (61.17%)
      201.30ms
      1 x Application (38.6%)
      127.02ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed10.64ms
      • select * from `courses` where `slug_ar` = 'build-a-chatbot-with-watson-apis-course' limit 1
        9.49ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. build-a-chatbot-with-watson-apis-course
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-02-10 21:11:49' where `id` = 6004
        280μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-02-10 21:11:49
        • 1. 6004
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (50)
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (60) and `providers`.`deleted_at` is null
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 5995 limit 1
        240μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 5995
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        QwR51PlePkVf1lY8gq6c37TmW5GytjbvIidqrF9S
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/build-...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/build-a-chatbot-with-watson-apis-course
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "priority" => array:1 [ 0 => "u=0, i" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-connecting-ip" => array:1 [ 0 => "3.135.63.133" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.135.63.133" ] "cf-ray" => array:1 [ 0 => "90ff1805d9c9fa15-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_PRIORITY" => "u=0, i" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_CONNECTING_IP" => "3.135.63.133" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.135.63.133" "HTTP_CF_RAY" => "90ff1805d9c9fa15-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "37546" "REMOTE_ADDR" => "172.70.130.187" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/build-a-chatbot-with-watson-apis-course" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1739221909.6615 "REQUEST_TIME" => 1739221909 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Mon, 10 Feb 2025 21:11:49 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImhBUmdzVjUxNStsRzFCV1VEYStEUlE9PSIsInZhbHVlIjoiZmQ4eG9tZEE0UlR6YndDUGRrYlhodmlEUDIyN3BjQmRjM0NZcEpyK0dzcFh6NlhqVy9HS3FWYzBJZlF4dnhtV0pRcStSRjhUaWZSRzhrRXV5RXpTRkFjWkVNc3ZZM2tidkhOdVcrNUdJaG9taVlWK3ArWk55aGlua0kvZ0YrMjIiLCJtYWMiOiJlMWQ1NWE2MTlkOTMzMTllMjA3NGM0MmM2NTRhMWZlZjNmYTcwNzMyY2JlMTk0OTEyNzZkMzZlZjY0NjBlMmMzIiwidGFnIjoiIn0%3D; expires=Mon, 10 Feb 2025 23:11:49 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImhBUmdzVjUxNStsRzFCV1VEYStEUlE9PSIsInZhbHVlIjoiZmQ4eG9tZEE0UlR6YndDUGRrYlhodmlEUDIyN3BjQmRjM0NZcEpyK0dzcFh6NlhqVy9HS3FWYzBJZlF4dnhtV0pRcStSR" 1 => "laravel_session=eyJpdiI6Ii8zRE4wV01Dd05leEJSdy9pc3dmdkE9PSIsInZhbHVlIjoiSzJDNjRlV0d6THdQQWVLVkZ1UnNwc3RGdklHTWhHempOOVBUcEtXY0pESXBtQUlkRHNPck5rU2tRdUpxVko3NVQ4NnBiUUZqMXVSUER0YXVRRXhINVo0WFNUemIvQWQybk94RlcvdGZ4eUVGd2RuUjZtZDdnVnUvVzNNdEU4aUYiLCJtYWMiOiJjMjc2YjQzNjE5ZDc4MThjNzU3YzZjMmIxMDA1NTNhNTgzZDI2ZWQzYWRiMDZhN2Y3ZTBkZDhhMTU5OGE0NmIxIiwidGFnIjoiIn0%3D; expires=Mon, 10 Feb 2025 23:11:49 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Ii8zRE4wV01Dd05leEJSdy9pc3dmdkE9PSIsInZhbHVlIjoiSzJDNjRlV0d6THdQQWVLVkZ1UnNwc3RGdklHTWhHempOOVBUcEtXY0pESXBtQUlkRHNPck5rU2tRdUpxVko3NVQ4" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImhBUmdzVjUxNStsRzFCV1VEYStEUlE9PSIsInZhbHVlIjoiZmQ4eG9tZEE0UlR6YndDUGRrYlhodmlEUDIyN3BjQmRjM0NZcEpyK0dzcFh6NlhqVy9HS3FWYzBJZlF4dnhtV0pRcStSRjhUaWZSRzhrRXV5RXpTRkFjWkVNc3ZZM2tidkhOdVcrNUdJaG9taVlWK3ArWk55aGlua0kvZ0YrMjIiLCJtYWMiOiJlMWQ1NWE2MTlkOTMzMTllMjA3NGM0MmM2NTRhMWZlZjNmYTcwNzMyY2JlMTk0OTEyNzZkMzZlZjY0NjBlMmMzIiwidGFnIjoiIn0%3D; expires=Mon, 10-Feb-2025 23:11:49 GMT; path=/XSRF-TOKEN=eyJpdiI6ImhBUmdzVjUxNStsRzFCV1VEYStEUlE9PSIsInZhbHVlIjoiZmQ4eG9tZEE0UlR6YndDUGRrYlhodmlEUDIyN3BjQmRjM0NZcEpyK0dzcFh6NlhqVy9HS3FWYzBJZlF4dnhtV0pRcStSR" 1 => "laravel_session=eyJpdiI6Ii8zRE4wV01Dd05leEJSdy9pc3dmdkE9PSIsInZhbHVlIjoiSzJDNjRlV0d6THdQQWVLVkZ1UnNwc3RGdklHTWhHempOOVBUcEtXY0pESXBtQUlkRHNPck5rU2tRdUpxVko3NVQ4NnBiUUZqMXVSUER0YXVRRXhINVo0WFNUemIvQWQybk94RlcvdGZ4eUVGd2RuUjZtZDdnVnUvVzNNdEU4aUYiLCJtYWMiOiJjMjc2YjQzNjE5ZDc4MThjNzU3YzZjMmIxMDA1NTNhNTgzZDI2ZWQzYWRiMDZhN2Y3ZTBkZDhhMTU5OGE0NmIxIiwidGFnIjoiIn0%3D; expires=Mon, 10-Feb-2025 23:11:49 GMT; path=/; httponlylaravel_session=eyJpdiI6Ii8zRE4wV01Dd05leEJSdy9pc3dmdkE9PSIsInZhbHVlIjoiSzJDNjRlV0d6THdQQWVLVkZ1UnNwc3RGdklHTWhHempOOVBUcEtXY0pESXBtQUlkRHNPck5rU2tRdUpxVko3NVQ4" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "QwR51PlePkVf1lY8gq6c37TmW5GytjbvIidqrF9S" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/build-a-chatbot-with-watson-apis-course" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]