Чат-бот: правила

Тема в разделе "Бот форума", создана пользователем admin, 30 авг 2016.

  1. admin

    admin Администратор Команда форума

    Как уже многие заметили в чате появился бот. Он реагирует на обращения к нему и выдает заложенные ответы.
    переписка с ботом
    Вот так выглядят правила первого уровня (т.е. которые предполагают сразу ответ)
    bot|спой;пой;песню|*, петь не умею;сейчас спою
    Алгоритм такой: сначала ищется обращение к боту, потом любое из трех слов спой;пой;песню, если вхождение найдено, бот выдает случайный ответ "петь не умею" или "сейчас спою".
    Правила могут быть более сложные, например.
    bot|как|дела;поживаешь;жизнь;сам|*, потихоньку, а у тебя;*, пока ничего
    Здесь сначала ищется слово "как", потом любое из четырех слов: дела, поживаешь, жизнь, сам. Так, на обращение "бот, есть ли жизнь на марсе?" правило не сработает, а на "бот, как жизнь" или "бот, как сам" или "бот, как поживаешь" - сработает.
    Добавлять правила боту можно следующей командой.
    бот, запомни команду:bot|расскажи|рассказ;историю|*,не знаю истории
    Таким образом можно обучать бота. Подробнее см. справочник по правилам и командам чат-бота.

    Вместо ответов для бота можно указывать функции и тогда бот может выполнять команды, например, сосчитать пример или перевести сатоши другому пользователю.
    Чатбот bitalk.org
    Команды для бота выглядят так:
    Код:
    bot|посчитай;сосчитай;сколько будет|calc
    bot|переведи;пошли;отправь|пользователю;юзеру;для|transfer
    bot|фильм;сериал|getFilm
    
    Тут алгоритм действий такой: при нахождении ключевых слов в обращении, сообщение обрабатывается функцией. Функции для бота тоже смогут писать любые пользователи, знакомые с программированием: после проверки я их добавлю. См. справку написание функций для бота.

    Вот пример функции бота для вычислений. Практической пользы от нее особой нет, это для демонстрации.
    Код:
    ///
    function bot_calc($msg)
    {
        $msg=trim($msg['message']);
        if (substr($msg,-1)=='.') $msg=substr($msg,0,-1);
    
        $calc=preg_replace('~[^0-9+\-\*\/\(\)\.]~', '', $msg); // оставляем только пример
    
        try
        {
        eval("\$return=".$calc.";"); // если пример корректен, считаем
        }
        catch(Exception $e)
        {
        return 'Ошибка';
        }
    
        return $return;
    }
    
    Правило, которое вызывает функцию, выглядит так:
    bot|посчитай;сосчитай;сколько будет|calc
    Функция вызывается командой "бот, пожалуйста сосчитай пример 234+432*25". Слова "пожалуйста" и "пример" тут не нужны, можно и так "бот сосчитай 234+432*25", я лишь хочу показать, что формат обращений может быть разным, бот все равно реагирует только на ключевые слова в сообщении.
    Аргумент $msg содержит в себе все данные пользователя и само сообщение. В этом примере данные пользователя нам не нужны, они понадобятся, например, в команде для перевода сатош другому пользователю (см. справку).

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

    Как видим, применение бота достаточно широко. Через функции бот может взаимодействовать с API различных сайтов, подключаться к различным базам, например, чтобы проверить репутацию сайта (или хайпов) или даже данные автомобильного номера. В дальнейшем планируется интеграция бота с мессенджером Телеграм: вы указываете свой логин Телеграма в профиле на форуме и бот будет понимать, что это вы, а значит будут доступны все функции, которые доступны через чат (обмены криптовалют, кинотеатр, переводы и т.д.), только другие пользователи не будут видеть ваших команд. Возможна интеграция с любыми мессенджерами, где есть API, даже с аськой, если кто-то ей еще пользуется.
     
    Chiliwilli777, LolliPop, izia1321 и 2 другим нравится это.
  2. FanatMonet

    FanatMonet Новичок

    вот это было бы очень хорошо
     
  3. admin

    admin Администратор Команда форума

    Все что угодно, я же пишу, что бот расширяемый.
    формат команд
    бот, запомни команду:bot|расскажи|рассказ;историю|*,не знаю истории

    я объяснил что означают разделители и точки с запятой. Если не поняли, то не мучайте бота иначе он заспамит весь чат.
     
  4. Nimogsm

    Nimogsm 123 Проверенный

    Блин,очень круто!админ респектище тебе)
     
  5. bubuzant

    bubuzant Постоянный пользователь

    Я знаю что мат на форуме не запрещен. Но на мой взгляд перебор.
    мат на форуме bitalk.org
     
    Polly нравится это.
  6. admin

    admin Администратор Команда форума

    Это классика, из Южного Парка.
     
    id_0.05 и Nimogsm нравится это.
  7. LolliPop

    LolliPop новичок

    Класс!. Ещё бы выделить бота другим цветом в чате и стало бы удобнее чатом пользоваться и общаться с обитателями и самим роботом.