Рубрики
Uncategorized

Чат-бот: PHP Чат-робот на основе AIML

Автор оригинала: David Wong.

В этой статье представлена небольшая программа чат-робота, реализованная на PHP. Он использует php для работы с знаниями, связанными с DOM, и базой данных MySQL, которую можно использовать для обучения. Код можно загрузить с https://github.com/kompasim/c…

Английский

0. Reminder Напоминание

Чат-робот написан со ссылкой на AIML 2.5 и Proram-P. Тег AIML, реализованный чат-роботом, отличается от стандартного тега AIML, поэтому корпус AIML, загруженный из Интернета, может работать неправильно. Для языков с кодировкой UTF-8 суффиксы слов различаются в зависимости от разных времен. Заинтересованные друзья могут учиться сами.

1. Introduction Вступление

Это синтаксический анализатор AIML, написанный на PHP, который в настоящее время хорошо работает в среде PHP 5.4.

2. Database Configuration Конфигурация базы данных

Эта программа использует базу данных MySQL, вам нужно chatbot.sql Файлы заносятся в вашу базу данных, а затем chatbot/Config.php Измените соответствующие переменные конфигурации базы данных в файле.

4. AIML corpus resources Ресурсы корпуса AIML

Вы можете отредактировать его напрямую. aiml/чат-бот.aiml Файл или создайте новый aiml You can edit it directly. aiml/chatbot.aiml File or create a new one aiml File then aiml/chatbot.aiml

5. About AIML files О файлах AIML

  • aiml Должен быть помещен в aiml В каталоге.

  • чат-бот.aiml Это входной файл. Это внутри. aiml Метки могут содержать несколько категория Метка, одна по умолчанию Метки и несколько включают Метку.

  • Другие вещи, которые вы добавляете aiml Файл в корневом каталоге aiml Other things you add aiml File at root aiml The label must contain one topic Tag, this topic tag can contain more than one category Labels and one default Label (other AIML files here cannot be written) include Label, include

6. Testing chat robots Тестирование чат-роботов

Вы можете открыть его. index.php Пообщайтесь с роботом для тестирования.

7. Call chat robots Вызов чат-роботов

Если вы хотите вызвать чат-робота в своем приложении, мы можем вызвать его API таким образом. If you want to call a chat robot in your application, we can call its API in this way. Api. php? & Интерфейс прикладного программирования. php? If you want to call a chat robot in your application, we can call its API in this way.

8. On Matching Rules О Правилах Сопоставления

Измененное правило сопоставления:

* ---> (\S+)
# ---> \S+
_ ---> .*
= ---> \S*

9. About AIML Tags О тегах AIML

Чат-робот aiml Этикетки и стандарты aiml The Chat Robot aiml

10. Return data about api. PHP Возвращайте данные об api. PHP

{
    "status": "success",
    "type": "talk",
    "message": "haha ...",
    "data": {
        "arr1": {
            "name11": "value11",
            "name12": "value12"
        },
        "arr2": {
            "name21": "value21",
            "name22": "value22"
        }
    }
}

Когда вы посещаете api.php?Тип запроса=обсуждение и ввод пользователя=ха-ха Когда вы сможете получить вышеуказанные json данные.


    haha
    

11. About userId О идентификаторе пользователя

Когда ты даешь api.php с ПОЛУЧИТЬ Когда вы отправляете запрос каким-либо способом, вы берете его с собой. When you give api.php with

$userId = isset($_REQUEST['userId']) ? $_REQUEST['userId'] : $_SERVER['REMOTE_ADDR'];

12. About Multiple Chatbots О Нескольких Чат-Ботах

Если вы поставите’chatbot/Config.php’ в файле мульти чат-бот If you put'chatbot/Config.php'in the file multiChatbot Set to false All users will share one default Of chatbot 。 When you set it to true Every user will have its own chatbot These chatbot Yes. userId As a unique label, each user gives its own chatbot Set the relevant name, gender, age and other attributes. When you're writing a voice assistant or something like that, more than one chatbot

$user = $this->getUser($this->_unique);
if ($this->_config->multiChatbot){
    $bot = $this->getBot($this->_unique);
} else {
    $bot = $this->getBot("default");
}

13. About userInfo and botInfo О пользователе и ботИнфо

Данные пользователя и информация о загрузке относятся к некоторым атрибутам пользователей и чат-роботов, таким как имя, возраст, пол и так далее. Пользователи могут изменять эти атрибуты. Конечно, это достигается с помощью некоторых тегов, когда мы пишем корпус AIML. Мы можем узнать о наборе, получении, удалении, пользователе, БОТЕ и других тегах из AIML. МЭРИЛЕНД.


    my name is *
    



    what is my name
    

14. About databases О базах данных

журнал Таблица, в которой хранятся журналы.

собственность property It’s storage. user and bot The table of attributes, which is equivalent to the head of our chat robot, helps us remember some attributes. Labels such as set, get, del, user, BOT are used to manipulate the table. Это хранилище.

таблицы данных используются для хранения вводимых пользователем данных и ответов робота. data Tables are used to store user input and robot responses. input , that , topic Wait for labels to operate Parser::$_data Array. Every time the program starts running, the program loads data from the table into the array, and then stores it in the table when the program ends. The only indication of the table is userId

Единственным указанием таблицы является || Идентификатор пользователя || .