{ "cells": [ { "cell_type": "markdown", "id": "b2f59df0", "metadata": {}, "source": [ "Rodzaje systemów dialogowych\n", "============================\n", "\n", "Wprowadzenie\n", "------------\n", "\n", "Systemy dialogowe można zgrubnie podzielić na dwie kategorie (Jurafsky and Martin, 2020):\n", "\n", " 1. chatboty,\n", "\n", " 2. systemy ukierunkowane na wykonywanie zadań (ang. task-oriented dialogue agents).\n", "\n", "### Chatboty\n", "Przeznaczeniem chatbota\n", "jest prowadzenie swobodnej dyskusji z użytkownikiem na dowolny (nienarzucony z góry) temat.\n", "Konwersacja z chatbotem nie służy wypełnieniu żadnego z góry określonego zadania.\n", "\n", "Klasycznym przykładem chatbota jest [ELIZA](https://en.wikipedia.org/wiki/ELIZA) (Weizenbaum, 1966).\n", "Program ten,\n", "udając psychoanalityka, miał zademonstrować potencjał tkwiący w komunikacji człowieka z komputerem w\n", "języku naturalnym. Jego pythonową implementację znajdziemy w pakiecie [nltk](www.nltk.org)." ] }, { "cell_type": "code", "execution_count": null, "id": "e2301a9e", "metadata": {}, "outputs": [], "source": [ "from nltk.chat import eliza\n", "eliza.demo()" ] }, { "cell_type": "markdown", "id": "ae7a5568", "metadata": {}, "source": [ "ELIZA składa się ze zbioru wzorców, które są dopasowywane do wypowiedzi użytkownika.\n", "Z każdym wzorcem jest powiązany zestaw szablonów, które są wykorzystywane do przygotowania\n", "odpowiedzi dla użytkownika." ] }, { "cell_type": "code", "execution_count": null, "id": "05c53336", "metadata": {}, "outputs": [], "source": [ "eliza.pairs[:3]" ] }, { "cell_type": "markdown", "id": "f3622915", "metadata": {}, "source": [ "### Systemy dialogowe ukierunkowane na wykonywanie zadań\n", "Systemy ukierunkowane na wykonywanie zadań będą stanowić główny temat tego przedmiotu.\n", "Dla uproszenia będziemy je nazywać *agentami dialogowymi*.\n", "\n", "Pierwotnie agenty dialogowe były ukierunkowywane na jedno, ściśle określone zadanie.\n", "Systemem tego typu był GUS (Bobrow, 1977) umożliwiający planowanie podróży.\n", "\n", "Obecnie zarówno w praktyce badawczej jak i w zastosowaniach przemysłowych rozwijane są systemy\n", "ukierunkowane na wykonywanie wielu zadań równocześnie, do których należą:\n", "\n", " 1. inteligentne asystenty osobiste (ang. *IPA*, *Intelligent Personal Assistant*), np.\n", "\n", " - [Alexa](https://developer.amazon.com/en-US/alexa),\n", " - [Bixby](https://www.samsung.com/us/apps/bixby/),\n", " - [Google Assistant](https://assistant.google.com/),\n", " - [Siri](https://www.apple.com/siri/),\n", "\n", " które realizują spersonalizowane cele użytkownika (wyszukiwanie kontaktów w książce adresowej, zarządzanie kalendarzem, zakup produktów).\n", "\n", " 2. modele językowe dostosowane do wykonywania poleceń, np.\n", "\n", " - [ChatGPT](https://openai.com/blog/chatgpt/),\n", " - [InstructGPT](https://openai.com/blog/instruction-following/),\n", " - [FLAN-T5](https://arxiv.org/pdf/2210.11416.pdf),\n", "\n", " które realizują zadania niewymagające pełnej personalizacji.\n", "\n", "Zadanie\n", "-------\n", "Zaimplementować program typu ELIZA prowadzący konwersację w języku polskim.\n", "Kod źródłowy umieścić w gałęzi `chatbot` repozytorium projektowego.\n", "\n", "Literatura\n", "----------\n", " 1. Dan Jurafsky and James H. Martin, *Speech and Language Processing*, 3rd ed. draft,\n", "\tch. 15, Chatbots and Dialogue Systems,\n", " https://web.stanford.edu/~jurafsky/slp3/15.pdf\n", " data dostępu: 10 marca 2023.\n", "\n", " 2. J. Weizenbaum, ELIZA - A Computer Program For the Study of Natural Language Communication\n", " Between Man And Machine Communications of the ACM, Vol 9, No 1, January 1966,\n", " https://cse.buffalo.edu/~rapaport/572/S02/weizenbaum.eliza.1966.pdf\n", " data dostępu: 10 marca 2023.\n", "\n", " 3. Bobrow, D. G., Kaplan, R. M., Kay, M., Norman, D. A., Thompson, H., and Winograd, T. (1977).\n", " GUS, A frame driven dialog system. Artificial Intelligence 8, 155–173." ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "-all", "main_language": "python", "notebook_metadata_filter": "-all" } }, "nbformat": 4, "nbformat_minor": 5 }