Чат-боты есть везде. Нет платформы для обмена сообщениями без чат-бота. Даже в сети есть свои чат-боты.

Сегодня в мире около 6500 языков, но большинство платформ чат-ботов поддерживают только некоторые из них. К счастью, мы можем использовать сторонние решения для добавления поддержки новых языков.

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

Как работает промежуточное ПО?

Промежуточное ПО - это функции, которые выполняются либо до того, как сообщение будет обработано ботом, либо до того, как сообщение будет отправлено обратно пользователю.

Согласно документации Botfuel, промежуточное ПО определяется в файле src / middlewares.js нашего проекта, который экспортирует два списка функций, называемых in и out.

module.exports = {
  in: [
    async (context, next, done) => { /** middleware IN 1 */ },
    async (context, next, done) => { /** middleware IN 2 */ },
  ],
  out: [
    async (context, next, done) => { /** middleware OUT 1 */ },
  ],
};

В этой статье мы собираемся использовать API Google Translate с помощью узла узла google-translate-api.

Мы также будем использовать мозг, чтобы запоминать язык, обнаруженный Google Translate, чтобы использовать его позже.

Промежуточное ПО ввода

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

К счастью, Google Translate может автоматически определять язык данного текста, поэтому нам не придется заниматься этой частью. Все, что нам нужно сделать, это перевести текст на английский (en), поскольку это язык нашего бота. Конечно, нам нужно убедиться, что сообщение имеет текстовый тип, прежде чем вызывать Google Translate API;)

После того, как мы перевели сообщение, мы заменяем исходный текст его переводом и возвращаем next() , чтобы продолжить обычный рабочий процесс бота.

Мы также сохраняем обнаруженный язык в мозгу, чтобы бот мог отвечать на языке пользователя и не забывать его позже в разговоре.

Промежуточное ПО вывода

Промежуточное ПО вывода очень похоже на промежуточное ПО ввода.

Мы извлекаем из мозга вводимый язык и используем его в качестве языка назначения в Google Translate для каждого сообщения. И, как мы это делали в промежуточном программном обеспечении ввода, мы просто заменяем исходное сообщение переведенным сообщением перед возвратом next().

Подведение итогов

Когда у нас есть два наших метода, нам просто нужно экспортировать их в файл src / middlewares.js нашего проекта, и все готово.

Попытайся

Вы можете попробовать это промежуточное ПО на боте, используемом в Руководстве по началу работы.

Подпишитесь на @olivierleplus, чтобы узнать больше о веб-платформе и разработке JS.

Подпишитесь на @botfuel, чтобы узнать больше о платформе чат-ботов Botfuel.

Если вам понравилось, поддержите нас на Github