Введение

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

План

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

  1. Распечатайте инструкции для пользователя, объясняющие, как взаимодействовать с ботом.
  2. Запустите цикл, чтобы облегчить непрерывный разговор.
  • Принять пользовательский ввод.
  • Если пользователь просит выйти, завершите разговор.
  • Обработайте пользовательский ввод и сгенерируйте ответ (случайно выбранный из списка общих ответов).
  • Распечатайте ответ.
  • Вернуться к шагу 2

Выполнение

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

import random

random_responses = [
    "That is quite interesting, please tell me more.",
    "I see. Do go on.",
    "Why do you say that?",
    "Funny weather we've been having, isn't it?",
    "Let's change the subject.",
    "Did you catch the game last night?"
]

Теперь мы можем приступить к созданию нашего бота:

def run_conversational_bot():
    print("Hello, I am Marvin, the simple robot.")
    print("You can end this conversation at any time by typing 'bye'.")
    print("After typing each answer, press 'enter'.\n")

    while True:
        user_input = input("> ")
        user_input = user_input.lower()

        if user_input == "bye":
            print("It was nice talking to you, goodbye!")
            break

        response = random.choice(random_responses)
        print(response)

run_conversational_bot()

В приведенном выше коде мы определяем функцию run_conversational_bot(), которая инкапсулирует логику бота. Цикл while True гарантирует, что разговор будет продолжаться до тех пор, пока пользователь не решит выйти, набрав «до свидания». В цикле мы принимаем пользовательский ввод, обрабатываем его и генерируем случайный ответ из списка random_responses, используя random.choice().

Наш бот в действии

Давайте посмотрим на нашего бота в действии с примером вывода:

Hello, I am Marvin, the simple robot.
You can end this conversation at any time by typing 'bye'.
After typing each answer, press 'enter'.
> That is quite interesting, please tell me more.

Today I went for a walk.

> Did you catch the game last night?

I did, but my team lost.
> Funny weather we've been having, isn't it?

Yes, but I hope next week is better.
> Let's change the subject.

Okay, let's talk about music.
> Why do you say that?

Because I like music!
> Bye

It was nice talking to you, goodbye!

Большой! Наш бот работает как положено. Он генерирует случайные ответы, которые поддерживают разговор в тривиальной манере.

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

Заключение

В этом руководстве мы создали простого диалогового бота на Python, который генерирует случайные ответы, чтобы поддерживать разговор. Мы следовали пошаговому плану, распечатали инструкции для пользователя и внедрили цикл для постоянного взаимодействия с ботом. Используя список общих ответов, наш бот может отвечать различными способами, делая каждый разговор уникальным и непредсказуемым. Вы можете расширить и настроить бота, чтобы добавить дополнительные функции или улучшить ход разговора.