Главная Форумы Искусственный Интеллект Разработка чатбота: Общая структура и принципы работы

В этой теме 4 ответа, 2 участника, последнее обновление  Pavel Zachesa 4 мес. назад.

  • Автор
    Сообщения
  • #229

    Victor Kazarinov
    Участник

    Здесь я хотел бы рассмотреть и обсудить общую структуру и принципы работы чатбота в смысле виртуального собеседника. Рассмотрение начнем с самого простейшего его вида.

    Терминология:
    Назовем чатбот интеллектуальным агентом (ИА), который принципиально ничем не отличается от обычных роботов за исключением существенных ограничений на способы общения с окружающим миром.
    В книге Шампандар “Искусственный интеллект в компьютерных играх” наряду с термином ИА применяется термин “анимат” для синтетических созданий, живущих в виртуальном мире. Но т.к. чат-бот расчитан в основном на взаимодействие с живыми людьми, кроме режимов общения с другим таким же чат-ботом, то будем все же использовать общеупотребительный термин Интеллектуальный агент (ИА).

    Общая структура простейшего чатбота.
    Приведу цитату из главы 2.4. книги Рассела и Норвига “Искусственный интеллект Современный подход”:
    “Простейшим видом агента является простой рефлексный агент. Подобные агенты выбирают действия на основе текущего акта восприятия, игнорируя всю остальную историю актов восприятия.”
    Как видно из определения, такой чатбот состоит из набора продукционных правил формата ЕСЛИ => ТО,
    где ЕСЛИ – левая часть правила, ТО – правая часть правила.

    Принцип работы простейшего чатбота.
    Если подадим на вход простейшего чатбота какой-то фрагмент текста, то он должен сопоставить этот фрагмент со всеми имеющимися в базе знаний чатбота левыми частями правил и найти правило, где такая левая часть совпадает. После обнаружения подходящего правила это правило активируется и будет выпонена правая чать правила, например, будет произведен вывод ответа, расположенного в этой правой части.
    Далее попробуем рассмотреть такой чат-бот в действии и подумаем, как его можно усовершенствовать.

  • #232

    Victor Kazarinov
    Участник

    Вчера я разместил на удаленном хосте движок чатбота и запустил простейшее тестовое приложение, способное к самым простым операциям:
    ChatBot0

    После открытия странички в браузере в строке будет видно слово Asdf
    Если нажать на кнопку Send, то через некоторое время получим ответ:
    Receive String = На это я не могу ничего ответить

    Если ввести вместо слова Asdf слово Привет с большой буквы, то в нижней строке должно появиться:
    Receive String = Ответ

    На этом хосте я использовал HTTPS соединение. И там расположил левый сертификат. Поэтому нужно разрешить браузеру несмотря на непроверенный сертификат его открывать.

    У меня на самом деле там два сервера. Первый – Апач с обычной HTML страничкой. Второй – мой движок EFCLIPS, который на С/С++
    Работает это так:
    1. Открываем страничку в браузере с сервера Апач.
    2. Вводим наш текстовый запрос и нажимаем кнопку Send
    3. Браузер на JS отсылает POST запрос другому серверу – моему движку EFCLIPS.
    4. После обработки сервер EFCLIPS возвращает ответ в браузер.
    5. Браузер отображает ответ в нижней текстовой строке.

  • #233

    Pavel Zachesa
    Хранитель

    https://github.com/keiffster/program-y/wiki/RDF
    http://www.srdc.com.tr/projects/salus/blog/?p=189
    https://github.com/srdc/ontmalizer
    https://github.com/pietercolpaert/rdfxmlprocessor
    https://github.com/nashwaan/xml-js
    https://github.com/emscripten-core/emscripten
    https://langserver.org/

    • Ответ изменён 4 мес., 1 неделя назад пользователем  Pavel Zachesa.
    • Ответ изменён 4 мес., 1 неделя назад пользователем  Pavel Zachesa.
    • Ответ изменён 4 мес., 1 неделя назад пользователем  Pavel Zachesa.
    • Ответ изменён 4 мес., 1 неделя назад пользователем  Pavel Zachesa.
    • Ответ изменён 4 мес., 1 неделя назад пользователем  Pavel Zachesa.
  • #239

    Pavel Zachesa
    Хранитель
  • #241

    Pavel Zachesa
    Хранитель

    Простейший пример.

    Магазин. Покупатель и продавец.
    Пок.: Мне хлеба булку.
    Прод.: Что-то ещё?
    Пок.: Бумагу туалетную.
    Прод.: Сколько?
    Пок.: Два.
    Прод.: С вас 50.
    Пок.: Вот.

    А теперь представим всё это глазами (инопланетянина) представителя дикого африканского племени. Хотя, по правде сказать, диких племён нынче не больше, чем инопланетян, на нашей планете. Как ему объяснить, что такое деньги, магазин и туалетная бумага?

    Большинство из нас, даже без описания контекста поймут, что происходит, просто по фразам, на основе своего опыта. Даже самые ленивые изредка заходят в магазин, чтоб самостоятельно что-то купить, пиво или презервативы. Мы не задумываемся о сути большинства повседневных вещей.

    Главная проблема не в объективности и субъективности, не в причинно-следственных связях и прочих философских концепциях. Тем более вопрос не касается семантики, словообразования и грамматики с пунктуацией. Проблема в том, на основе каких базовых смыслов построить весь понятийный аппарат.

Для ответа в этой теме необходимо авторизоваться.

Перейти к верхней панели