luktom.net
  • blog
  • kontakt
  • english





Anatomia chatbota – część 1: Bot Connector

02 kw., 2017
Chatboty, Daj się poznać 2017
Brak komentarzy
Odsłony : 3570

Najwyższa pora przejść do „dania głównego” czyli zagłębić się w sam proces tworzenia chatbotów w oparciu o MS Bot Framework. W pierwszej części – Bot Connector – zapraszam!

Architektura rozwiązań opartych o MS Bot Framework składa się z kilku części:

  • po pierwsze mamy nasz kod w postaci webserwisu obsługującego HTTP POST – to tutaj siedzi cała logika biznesowa i opis zachowania bota, jego funkcje etc.
  • nasz kod jest wywoływany przez komponent o nazwie Bot Connector – jest to element oferowany jako usługa przez Microsoft, a jego głównym zadaniem jest umożliwienie jednolitej komunikacji z naszym botem przez różne kanały (patrz niżej), więcej o Bot Connectorze poniżej.
  • wreszcie mamy implementację poszczególnych kanałów – gdzie przez kanał rozumiemy dane medium komunikacyjne, np. Skype, Facebook Messenger, Slack, a także SMS, mail oraz chaty osadzane na stronach internetowych (oczywiście to nie wszystkie kanały, wymieniłem tylko główne).

Całość prezentuje się następująco (za dokumentacją Microsoftu):

Co potrafi Bot Connector?

Tak jak wspomniałem wyżej, głównym zadaniem jest pośredniczenie w komunikacji i abstrakcja poszczególnych kanałów, tak aby nasz kod działał niezależnie od kanału. Do podstawowych zastosowań abstrakcja ta działa całkiem sprawnie, gdy się zechcemy wgłębić to pojawiają się lekkie zgrzyty (np. nulle w niektórych polach, z racji, że dany kanał nie obsługuje danego pola), można sobie z tym łatwo poradzić, niemniej jednak trzeba uwzględniać różnice w implementacji poszczególnych kanałów w swoim kodzie.

Pośredniczenie w komunikacji odbywa się oczywiście w obie strony, a więc nasz kod nigdy nie ma bezpośredniego dostępu do danego kanału, w ramach naszego kodu nie ustawiamy także np. API Keys dla kanałów – jedyne co ustawiamy po stronie naszego kodu to dane do uwierzytelnienia w Bot Connectorze. Sama integracja z poszczególnymi kanałami to natomiast odpowiedzialność Bot Connectora i to w jego ustawieniach definiujemy callbacki i API Keys do poszczególnych kanałów.

Bot Connector oferuje także usługi persystencji stanu w formie usługi key-value storage – dzięki nim możemy zapisać potrzebne nam informacje w kontekście danego użytkownika lub danej konwersacji. Jest to wygodne rozwiązanie jeśli potrzebujemy przechować małe ilości informacji lub nie chcemy angażować dodatkowej bazy danych. Dodatkowo zaleca się tworzenie botów jako usług stateless, aby możliwe było ich łatwe skalowanie. Usługa persystencji stanu z pewnością w tym pomaga.

Na bazie usługi persystencji stanu opiera się także system dialogów w Bot Builderze – jest to drugi komponent MS Bot Framework, o którym opowiem w jednym z najbliższych wpisów.

Trzeba takżę wsponieć, iż na potrzeby tworzenia botów oferowany jest lokalny emulator, który oferuje kanał testowy a także usługi persystencji – analogicznie jak to ma miejsce w wersji produkcyjnej.

W ramach usługi Bot Connectora Microsoft oferuje także katalog botów – możemy tak zarejestrować naszego bota, aby był wyszukiwalny w katalogu.

W następnych częściach…

…przyjrzymy się przykładowej templatce bota opartej o ASP.NET MVC, po czym przejdziemy do BotBuildera i przyjrzenia się ficzerom jakie oferuje.

Aby nie przegapić kolejnych wpisów zapraszam do śledzenia tego bloga, czy to przez kanał RSS, czy też poprzez stronę na Facebooku.



Tagi :   bot connectorbot frameworkchatbotdsp2017

Powiązane wpisy

  • Chatboty i sztuczna inteligencja – część 2: podstawy Wit.ai

  • Anatomia chatbota – cześć 3: wstęp do systemu dialogów Bot Buildera

  • SmogBot – zapraszam do korzystania :)

  • SmogBot – wprowadzenie do projektu

  • Dodaj komentarz

    Click here to cancel reply

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>





    Łukasz Tomaszkiewicz

    Łukasz Tomaszkiewicz

    Pasjonat chmury, szczególnie AWSa, który nieustannie automatyzuje powtarzające się czynności i optymalizuje procesy, przy okazji wdrażając dobre praktyki dotyczące bezpieczeństwa. Jego szerokie doświadczenie w zakresie tworzenia oprogramowania, projektowania baz danych, a także wirtualizacji serwerów i zarządzania infrastrukturą w chmurze pozwala mu spojrzeć przekrojowo na współczesny stack technologiczny.

    W wolnym czasie fotograf, sporadycznie piszący blogger :) a także regularny prelegent na krakowskich grupach związanych z IT.

    Wyznawca Vim'a :)

    Kategorie

    • Ansible
    • AWS
    • C#
    • Chatboty
    • Cloud
    • Daj się poznać 2017
    • Docker
    • Inne
    • Linux
    • Open source
    • Organizacyjne
    • Prelekcje
    • Sieci komputerowe
    • SQL Server
    • Windows
    • Windows Server
    • Wirtualizacja

    Najczęściej czytane

    • Creating single node VSAN cluster
    • SQL Server – walidacja numerów PESEL i NIP
    • Konfiguracja serwera DHCP na routerach Cisco
    • Aktywacja routingu IP w Windows 7 / Windows Server 2008
    • Konwersja maszyn wirtualnych z ESXi do Hyper-V przy użyciu SCVMM 2012
    • Jak podłączyć program R do SQL Servera?

    Tagi

    .net ai ansible asp.net mvc aws aws cli bot builder bot framework c# centos certyfikaty chatbot chatboty cisco cmd docker dsp2017 esxi hyperv kontenery konteneryzacja linux mvc nlp openvpn plssug pobieranie powershell prelekcje rancher redhat router sieci smogbot sql server ssd ssl vmware vsphere windows windows mobile windows server wirtualizacja wit.ai wrzuta

    Copyright © 2006-2018 by Łukasz Tomaszkiewicz. Wszelkie prawa zastrzeżone