Как создать диалог для чат-бота на Python? - PullRequest
0 голосов
/ 05 сентября 2018

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

# Import the random module
import random

bot_template = "AGENT: {0}"
user_template = "USER: {0}"

# Define variables
name = "Greg"
weather = "cloudy"

# Define a dictionary containing a list of responses for each message
responses = {
  "what's your name?": [
      "my name is {0}".format(name),
      "they call me {0}".format(name),
      "I go by {0}".format(name)
   ],
  "what's today's weather?": [
      "the weather is {0}".format(weather),
      "it's {0} today".format(weather)
    ],
  "default": ["default message"]
}

# Use random.choice() to choose a matching response
def respond(message):
    # Check if the message is in the responses
    if message in responses:
        # Return a random matching response
        bot_message = random.choice(responses[message])
    else:
        # Return a random "default" response
        bot_message = random.choice(responses["default"])
    return bot_message

# Define a function that sends a message to the bot: send_message
def send_message(message):
    # Print user_template including the user_message
    print(user_template.format(message))
    # Get the bot's response to the message
    response = respond(message)
    # Print the bot template including the bot's response.
    print(bot_template.format(response))

# Send a message to the bot
send_message("what's today's weather?")

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Вместо:

# Send a message to the bot
send_message("what's today's weather?")

Вы можете написать:

while True:
    print('Write your message to the bot and press ENTER')
    user_msg = input()

    # Send a message to the bot
    send_message(user_msg)

Это будет отправлять введенные пользователем сообщения в бот, пока вы не остановите программу.

0 голосов
/ 05 сентября 2018

Использование команды input () позволяет получить определенные пользователем строки. Возвращает строку, содержащую строку, введенную пользователем в оболочку, в которой запущена программа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...