Как я могу создать чат-бота, который организует ввод в выбранные шаблоны? - PullRequest
1 голос
/ 30 марта 2019

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

Вот пример.

Я хочу написать пользовательские отчеты на основе ввода пользователя в чат-бота. Давайте представим, что пользователь хочет какую-то индивидуальную мотивацию.

Как вы себя чувствуете сегодня? На основе пользовательских данных это подразделяется на: "ХОРОШО - ПЛОХО - ПЛОХО - СЧАСТЛИВЫ - ВОЗБУЖДЕНЫ" и т. Д.

В зависимости от того, какой из них мы перемещаемся по «дереву шаблонов», поэтому любые шаблоны, которые существуют в категории «ПЛОХО», не учитываются, если пользователь пишет «Довольно хорошо» и он классифицируется как «Хорошо».

Затем мы задаем вопросы типа «Как тебя зовут?», Которые хранятся в виде переменных для включения в текстовый шаблон, как только мы найдем правильный шаблон на основе их входных данных.

Какая лучшая платформа для этого? Это действительно чатбот?

Большое спасибо за помощь!

Я пробовал Pandorabots, но он кажется слишком линейным - как в модели ввода> ответа, здесь не так много условной логики. Я готов исследовать и изучать, поэтому любые советы по выбору платформы / подхода будут очень полезны!

Ответы [ 2 ]

2 голосов
/ 01 апреля 2019

Pandorabots использует AIML для создания чат-бота, и вы можете использовать в нем условную логику.Вот некоторый код, который решит ваш запрос:

<?xml version="1.0" encoding="UTF-8"?>
<aiml version="2.0">

<category>
    <pattern>HI</pattern>
    <template>
        Hi there. What is your name?
    </template>
</category>

<category>
    <pattern>*</pattern>
    <that>WHAT IS YOUR NAME</that>
    <template>
        <think><set name="name"><star/></set></think>
        How are you feeling today?
    </template>
</category>

<category>
    <pattern>*</pattern>
    <that>HOW ARE YOU FEELING TODAY</that>
    <template>
        <think><set name="mood"><star/></set></think>
        <condition name="mood">
            <li value="good">That's great <get name="name"/>.</li>
            <li value="bad">Sorry to hear that <get name="name"/>. Can I help?</li>
            <li value="sad">Cheer up <get name="name"/>, it's a beautiful day!</li>
            <li value="happy">Oh wow <get name="name"/>. I'm so pleased for you!</li>
            <li value="excited">Amazing <get name="name"/>! What's happened?</li>
            <li>The day is yours to command <get name="name"/>.</li>
        </condition>
    </template>
</category>

</aiml> 

Пример разговора будет выглядеть так:

enter image description here

Использование шаблонабоковой тег, вы также можете сделать это с Pandorabots, чтобы сгруппировать похожие ответы вместе.Создавайте наборы под названием «хорошо» и «плохо» со всеми эмоциями, которые должны вызывать шаблоны.Пример «хорошего» набора:

[
    ["amazing"],
    ["good"],
    ["happy"],
    ["great"]
]

А затем используйте такие категории, как:

<category>
    <pattern>I FEEL <set>good</set></pattern>
    <template>Great to hear!</template>
</category>

<category>
    <pattern>I FEEL <set>bad</set></pattern>
    <template>Sorry to hear that. Can I help?</template>
</category>

Надеюсь, это поможет.Пандоработы способны на FAR больше, чем просто ввод - ответ, и я выиграл приз Лебнера 4 раза за то, что обладал самым человечным в мире диалоговым ИИ с использованием AIML и Pandorabots.

0 голосов
/ 30 марта 2019

Так как вы уже пробовали Pandorabots, то я предполагаю, что вы знакомы с XML и aiml, поэтому я предлагаю программу O Программа O на Github у aiml есть функциональный вызов, который можно использовать для построения интерактивных древовидных чатов. проверьте мой пример ниже. хотя я думаю, что вы могли встретить цель в своем исследовании.

<?xml version = "1.0" encoding = "UTF-8"?>
  <aiml version = "1.0.1" encoding = "UTF-8"?>
    <category>
      <pattern>hi</pattern>
      <template>How are you feeling today?</template>  
    </category>

    <category>
      <pattern>GOOD</pattern>
      <that>How are you feeling today?</that>
      <template>Nice, I like it that way.</template>
   </category>

   <category>
     <pattern>BAD</pattern>
     <that>How are you feeling today?</that>
     <template>
       <randon>
         <li>Ok! I think you need an appointment with a doctor?</li
         <li>How exactly are you feeling?</li>
      </random>       
    </template>
  </category> 

  <category>
    <pattern>SAD_</pattern>
    <that>How are you feeling today?</that>
    <template>
     <randon>
       <li>Ok! what happened?</li
       <li>how can i help?</li>
     </random>       
    </template>
  </category>

  <category>
   <pattern>HAPPY_</pattern>
   <that>How are you feeling today?</that>
   <template>
   <randon>
     <li>great! its good for you</li
     <li>thats what up.</li>
    </random>       
   </template>
 </category>
</aiml>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...