Informatyka Systemów Autonomicznych Bot informacyjny w sieci IM jako agent - opis i zastosowanie

Podobne dokumenty
Informatyka Systemów Autonomicznych

INFRA. System Connector. Opis systemu

Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY.

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

REFERAT O PRACY DYPLOMOWEJ

<Nazwa firmy> <Nazwa projektu> Specyfikacja wymagań projektu. Wersja <1.0>

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Modelowanie i Programowanie Obiektowe

IG1: INSTALACJA KOMUNIKATORA GADU-GADU

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Darmowy artykuł, opublikowany na:

Wykład I. Wprowadzenie do baz danych

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol

2

uplook z modułem statlook program do audytu oprogramowania i kontroli czasu pracy

REFERAT O PRACY DYPLOMOWEJ

Referat pracy dyplomowej

PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P).

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Web 3.0 Sieć Pełna Znaczeń (Semantic Web) Perspektywy dla branży motoryzacyjnej i finansowej. Przyjęcie branżowe EurotaxGlass s Polska 10 luty 2012

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Podstawy technologii WWW

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

ZAPYTANIE OFERTOWE. Wsparcie projektów celowych

Systemy Open Source w zarządzaniu projektami, na przykładzie Redmine i OpenProject. Rafał Ciszyński

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Wydział Informatyki, Elektroniki i Telekomunikacji. Katedra Informatyki

IO - Plan testów. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Państwowa Wyższa Szkoła Techniczno-Ekonomiczna w Jarosławiu

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o.

SZKOLENIA CATIA ZAINWESTUJ W PROFESJONALNE KSZTAŁCENIE SWOJEJ KADRY!

PLAN WYNIKOWY Z INFORMATYKI DLA KLASY VI

PROGRAM SZKOLENIA ZAWODOWEGO PRACOWNIK ADMINISTRACYJNO-BIUROWY

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH W KLASIE 4 SZKOŁY PODSTAWOWEJ

Windows W celu dostępu do i konfiguracji firewall idź do Panelu sterowania -> System i zabezpieczenia -> Zapora systemu Windows.

Rozdział 3. ROZWÓJ APLIKACJI CENTRALNEJ

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Prezentacja specjalności studiów II stopnia. Inteligentne Technologie Internetowe

KIERUNKOWE EFEKTY KSZTAŁCENIA

Referat pracy dyplomowej

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

Wydział Nauk o Zdrowiu. Kierunek: Zdrowie Publiczne. Poziom studiów: drugi. Profil: ogólny

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

System generacji raportów

W otwartej Europie wszystkie języki są ważne

PDM wbudowany w Solid Edge

ActiveXperts SMS Messaging Server

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

Jolanta Łukowska Małgorzata Pakowska Stanisław Stanek Mariusz ytniewski

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NYSIE

1 Prezentacja oferty StudioGS

OPIS i SPECYFIKACJA TECHNICZNA

Referat pracy dyplomowej

Czym są pliki cookies?

KIERUNKOWE EFEKTY KSZTAŁCENIA

1.Zasady oceniania wynikają z przyjętego "Wewnątrzszkolnego Systemu Oceniania i dotyczą uczniów, którzy odbywają zajęcia z przedmiotu "Informatyka"

Konspekt pracy inżynierskiej

Inżynieria wymagań. Wykład 2 Proces pisania przypadków użycia. Część 6 Wskazówki i sugestie

Programowanie zespołowe

Dokumentacja projektu QUAIKE Architektura oprogramowania

Polityka plików cookies

Oprogramowanie ILUO Biznes pozwala na jednoczesne zarządzanie wieloma sklepami Internetowymi zbudowanymi na oprogramowaniu różnych producentów.

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia

Instrukcja dla osoby potwierdzającej profil zaufany

Wymagania edukacyjne i sposoby sprawdzania edukacyjnych osiągnięć uczniów z informatyki

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

Efekty kształcenia dla: nazwa kierunku

Rozdział 5: Zarządzanie testowaniem. Pytanie 1

PROGRAM SZKOLENIA ZAWODOWEGO PRACOWNIK ADMINISTRACYJNO-BIUROWY

Uniwersytet Śląski w Katowicach str. 1 Wydział Informatyki i Nauki o Materiałach

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

1. Cel i zakres dokumentu Słownik pojęć użytych w instrukcji... 3

UCHWAŁA NR 46/2013. Senatu Akademii Marynarki Wojennej im. Bohaterów Westerplatte z dnia 19 września 2013 roku

Agrinavia MOBILE. Agrinavia MOBILE (wersja samodzielna) Logowanie

Naso CC LITE klient CTI/ statystyki połączeń dla central Platan. CTI Solutions

Specyfikacja wymagań systemowych (może podlegać edytowaniu na kolejnych etapach)

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Paradygmat agenta: rodowód, różnorodność definiowania, zastosowania

KIERUNKOWE EFEKTY KSZTAŁCENIA

Wymagania na oceny dla klasy III

Rozdział 6. Komunikatory internetowe i czaty Jak działa komunikator?

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Mechatronika i inteligentne systemy produkcyjne. Paweł Pełczyński ppelczynski@swspiz.pl

Prowadzący: Bartosz Górczyński, CTPartners S.A, itsmf Polska. Miedzeszyn, wrzesień 2010

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Systemy obiegu informacji i Protokół SWAP "CC"

e-commerce Developer

- 1 - Liczba godzin. Nr lekcji. Nr punktu w podręczniku. Zagadnienia do realizacji według podstawy programowej (treści nauczania)

Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów

4 WEBINARIA tematyczne, gdzie każde przedstawia co innego związanego z naszym oprogramowaniem.

ECDL ZARZĄDZANIE PROJEKTAMI

World Wide Web? rkijanka

Podsumowanie wyników ankiety

01. Bezpieczne korzystanie z urządzeń i systemów teleinformatycznych przez pracowników instytucji finansowych

Transkrypt:

Bartosz Owczarek, 133317 Wrocław, 02.06.2007 Informatyka Systemów Autonomicznych Bot informacyjny w sieci IM jako agent - opis i zastosowanie dr inż. Marek Piasecki

1. Wstęp Od wielu lat mówi się, iż rozwój technologii bazującej na inteligentnych agentach zrewolucjonizuje dziedzinę komputerową. Ma to dotyczyć nie tylko sposobu komunikowania się użytkownika z komputerem, ale także wytwarzania oprogramowania. Jednak jak się okazuje, ów przepowiadany rewolucjonizm nie nastąpił, gdyż dziś włączając komputer nie komunikujemy się z agentem personalnym, który doradza nam jak się ubrać czy też przedstawia plan dnia. Także jeśli chodzi o tworzenie oprogramowania, to gdy projektujemy system dla sklepu internetowego, nie tworzymy go z ogólnodostępnych modułów agentowych. Powstaje więc pytanie dlaczego istnieje tak mało systemów agentowych i co należałoby zrobić, aby to zmienić? W tej pracy skupimy się na agencie programowym, który dotyczy sposobu komunikowania się z komputerem, a ściślej mówiąc popularnych przez kilka ostatnich lat botach informacyjnych w sieciach IM. 2. Definicja bota informacyjnego Bot informacyjny jest to program, który wykonuje pewne czynności w imieniu człowieka. Zazwyczaj jego funkcją jest udawanie ludzkiego zachowania, czy też automatyczne wykonywanie określonych czynności. W przypadku botów w sieci IM (Instant Messaging) rolą bota jest właśnie udawanie inteligentnego rozmówcy, który w języku naturalnym potrafi odpowiedzieć mniej lub bardziej trafnie na pytania zadawane przez użytkownika. Ponadto, może udostępniać jakąś pulę funkcji, z których może korzystać użytkownik w trakcie rozmowy z botem. Oczywiście taki bot musi posiadać pewną wiedzę, na podstawie której potrafi odpowiedzieć na zadawane przez użytkownika pytania. 3. Zastosowania botów informacyjnych Jeśli chodzi o zastosowania botów informacyjnych w sieciach IM to jak się okazuje mogą one mieć zastosowanie zarówno w przypadku zwykłych użytkowników, jako pewna podręczna baza wiedzy, czy też zastosowanie w rozbudowanych systemach biznesowych, z którymi się integrują. W przypadku pierwszego zastosowania bot może wykonywać określone operacje na bazie wiedzy, takie jak: wyświetlanie prognozy pogody w danym mieście, wyświetlanie solenizantów z danego dnia, czy też

boty te mogą posiadać słownik wyrazów obcych w swojej bazie wiedzy i pełnić rolę prostego tłumacza Doskonałym przykładem jest popularny ostatnio Infobot, którego opis i specyfikacje możemy znaleźć na stronie www.infobot.pl. W drugim przypadku także mamy dostępną pulę funkcji, ale jest ona ściśle związana z funkcjonalnością jaką udostępnia system, z którym integruje się bot. Dodatkowo dochodzi wiele innych istotnych problemów do rozwiązania jak choćby uwierzytelnianie i autoryzacja użytkowników sieci IM. W naszym projekcie zrealizowanym dla firmy, głównym celem było właśnie zaprojektowanie i zaimplementowanie bota informacyjnego zintegrowanego z istniejącym systemem biznesowym. Głównym powodem powstania takiego pomysłu, była możliwość udostępnienia użytkownikom informacji znajdujących się w systemie, poprzez komunikatory działające w różnych sieciach IM. A więc, baza danych, na której oparty jest system to właśnie baza wiedzy bota (jednocześnie stanowiąca jego otoczenie), na podstawie której, realizuje cele, dla których został stworzony. Cele te możemy pogrupować na dwie funkcjonalności, które obejmuje specyfikacja bota: - push czyli zwykła rozmowa użytkownika z botem, w której użytkownik może zapytać się bota o informacje znajdujące się w bazie danych. - puli - czyli bot powinien automatycznie wysyłać pewne powiadomienia do użytkowników zapisanych w jego bazie wiedzy. Powiadomienia te są wyzwalane zmianami w systemie, z którym jest zintegrowany. 4. Bot jako agent programowy Jak się okazuje nie istnieje ogólnie przyjęta definicja agenta programowego. W literaturze, czy też w Internecie możemy znaleźć wiele definicji agenta programowego. Jedna z nich, której twórcą jest firma IBM brzmi: Agenci programowi to jednostki programowe podejmujące działania w imieniu użytkownika lub innych programów, w pewnym stopniu niezależnie lub autonomicznie, które działając stosują pewną wiedzę lub reprezentację celów lub potrzeb użytkownika Analizując powyższą definicje widać, iż odnosi się ona także do działania bota informacyjnego. Mimo, iż nie istnieją ogólnie przyjęte definicje agentów programowych,

to mamy do czynienia z szeroką gamą cech przypisywanych agentom programowym. Autorzy zazwyczaj wybierają pewien podzbiór tych cech, dokładają dodatkowe cechy i w ten sposób tworzą definicje agentów programowych. Główne cechy przedstawione są na rysunku 1. reaktywność rozumowanie oparte o zgromadzoną wiedzę ukierunkowanie na osiąganie celów umiejętność przemieszczania się autonomia bycie godnym zaufania umiejętność dostosowania się oddziaływanie umiejętność uczenia się umiejętność przewidywania umiejętność porozumiewania się umiejętność rozumowania umiejętność współdziałania inteligencja Rysunek 1. Główne cechy agenta programowego W przypadku bota także możemy wyodrębnić podzbiór cech głównych agenta programowego. Są to: - obserwacja otoczenia - reakcja na zmiany w otoczeniu - ciągłe działanie - autonomiczność - adaptacyjność

Ponadto, z definicji agent programowy działa w pewnym otoczeniu i potrafi reagować na impulsy pochodzące z tego otoczenia. W naszym projekcie bota istnieją dwa takie otoczenia (rysunek 2). Mianowicie jest to: - serwer - na którym uruchomiony jest bot informacyjny wraz z systemem (bazą danych), z którym się integruje. Tutaj wszelkie zmiany występujące w systemie są monitorowane przez bota. - sieci IM - poprzez które użytkownicy komunikują się z botem. Reaguje na wiadomości wysyłane poprzez użytkowników jak i na komunikaty serwerów sieci IM. Otoczenie bazy danych (system) Serwer na którym działa bot informacyjny Baza danych Internet Otoczenie sieci IM... Użytkownik 1 Użytkownik 2 Użytkownik n Rysunek 2. Otoczenia opisywanego bota informacyjnego Jeśli chodzi o system operacyjny na którym rezyduje bot to nie jest on istotny z punktu widzenia otoczenia. Natomiast specyfikacja i założenia projektowe opisywanego bota powodują, iż nie reaguje on na wszystkie możliwe bodźce z otoczeń, w których się znajduje. Wśród zdarzeń. na które reaguje bot możemy wyróżnić:

- wiadomości przychodzące od użytkowników różnych sieci IM - komunikaty sterujące przychodzące od danego serwera sieci IM (wypływają one praktycznie tylko na stan połączenia bota) - zmiany stanu w zintegrowanym systemie, ściślej bazie danych na której działa system (a więc baza danych jest monitorowana w przypadku dodawania, edycji, usuwania rekordów ) Natomiast sposób oddziaływania na wyżej wymienione bodźce z otoczenia obejmuje: - wysyłanie wiadomości do użytkowników IM - wysyłanie komunikatów sterujących (związanych ze stanem połączenia) do serwera sieci IM - pobieranie informacji z bazy danych - zapisywanie informacji do bazy danych Oprócz obserwacji otoczenia i reagowania na odpowiednie bodźce, bot posiada także inną istotną cechę agenta programowego, czyli ciągłe działanie w czasie i przestrzeni. Mianowicie bot informacyjny działa przez bardzo długi czas, aż do momentu wyłączenia serwera sieci IM (czy też zerwania połączenia). Ponadto, jest on aktywny przez cały czas swojego życia, nawet gdy nie przychodzą bodźce z otoczenia wydelegowane od użytkowników. Aktywność ta, to właśnie obserwowanie otoczenia jakim jest system, z którym integruje się bot informacyjny i reagowanie na zdarzenia w nim występujące (opisane wcześniej). Kolejne istotne cechy bota informacyjnego jako agenta: - autonomiczność (bot sam inicjuje działanie) - adaptacyjność (bot ciągle uczy i dostosowuje się do użytkowników) można odnieść do opisywanego bota informacyjnego w niewielkim stopniu. Jeśli chodzi o adaptacyjność to istnieje możliwość rozbudowania bazy wiedzy bota, poprzez definiowanie nowych funkcjonalności jakie ma realizować. Nie ma tutaj możliwość autonomicznego uczenia się bota np. poprzez rozmowę z użytkownikami, gdyż jest ona ściśle związana z bezpieczeństwem systemu, z którym jest on zintegrowany. Ponadto,

rozmowa z botem zrealizowana jest na zasadzie menu, filtrowanego przez odpowiednie uprawnienia użytkowników znajdujących się w systemie, co można odnieść do cechy dostosowywania się do otoczenia, jakimi są użytkownicy w sieciach IM. Implementacja bardziej inteligentnego bota, który umożliwiałby prowadzenie rozmowy w języku naturalnym jest bardzo skomplikowana, zarówno jeśli chodzi dziedzinę sztucznej inteligencji jako takiej oraz kwestie bezpieczeństwa. Dodatkowo, takiego bota należałoby uczyć przez długi okres czasu, aby nabył odpowiednią wiedzę, dzięki której mógłby realizować funkcje i cele, dla których został stworzony. W prostych przykładach, gdzie bot informacyjny stara się zrozumieć sens prowadzonej rozmowy i w miarę inteligentnie odpowiadać na wysyłane wiadomości, możemy sobie wyobrazić, że został tak zaimplementowany, aby rozpoznawać frazę zdania związaną z osobą i orzeczeniem. Na przykład, gdy użytkownik wysyła wiadomość: "I am feeling very bad today." bot rozpoznaje frazę I am, którą podmienia na Why are you i konkatenuje z resztą zdania feeling very bad today, dodając znak zapytania na końcu zdania. Ostatecznie bot wysyła wiadomość: Why are you feeling very bad today? Oczywiście jest to bardzo prosty algorytm, gdzie stosując odpowiednie słowniki i wyrażenia regularne jesteśmy w stanie szybko i efektywnie to zaimplementować. Mimo, iż jest to mało funkcjonalne jeśli chodzi o zastosowanie w omawianym projekcie, to widać jak w prosty sposób możemy z całkiem głupiego bota zrobić bardziej inteligentnego. W podobny sposób działał pierwszy w historii zaimplementowany chatterbot Eliza. Przykładowa rozmowa z nim wyglądała następująco: How do you do. Please state your problem. >> I spend too much time with computers. Why do you mention computers? >> You are one. Does it please you to believe I am one?

>> Yes. You seem to be quite positive. >> I suppose I am. How long have you been? Więcej szczegółów na temat implementacji opisywanego bota informacyjnego można znaleźć w pracy Rafała Jagielnickiego pt. Bot informacyjny w sieci IM jako agent realizacja. 5. Wnioski W powyższej pracy przedstawione zostały podstawowe informacje związane z zastosowaniem botów informacyjnych jako inteligentnych agentów programowych. Starałem się uargumentować dlaczego bot informacyjny to właśnie inteligentny agent programowy oraz opisać jego cechy, otoczenia, w których żyje, odnosząc się do zrealizowanego dla firmy projektu. Historia tworzenia botów informacyjnych zaczyna się od roku 1966, gdzie przez Joseph a Wiezenbaum a został stworzony pierwszy chatterbot o kodowej nazwie Eliza. Zajmował on tylko 200 linii kodu i modelował zachowanie psychiatry. Jak widać od roku 1966 minęło sporo (~40) lat, a mimo to nadal nie mamy do czynienia z botami informacyjnymi, których możemy określić mianem inteligentnych agentów programowych. Świadczy to przede wszystkim o trudnościach z jakimi programiści muszą się zmierzyć, które bezpośrednio związane są z dziedziną sztucznej inteligencji. Jednak mimo to w dzisiejszych czasach, gdzie komunikatory sieci IM (np. Gadu-Gadu) na dobre zadomowiły się w naszym codziennym życiu, możemy znaleźć istotne zastosowanie botów informacyjnych, tych mniej inteligentnych (chodzi tu głównie o modelowanie zachowania inteligentnego rozmówcy) w aplikacjach biznesowych np. tworzonych dla sklepów internetowych. W rozmowie z takim botem poprzez sieci IM możemy wyszukiwać interesujące nas produkty, przeglądać cenniki, dokonywać zakupów itd.

Literatura [1] Dokumentacja i kod źródłowy opisywanego projektu [2] M. Paprzycki, Rozdział XI Agenci programowi jako metodologia tworzenia oprogramowania. [3] http://pl.wikipedia.org [4] http://jerz.setonhill.edu/if/canon/eliza.htm - Eliza