Калькулятор Wolframalpha В Разговоре В Telegram



Идея В диалогах в телеграмме я очень часто использую телеграм-бота: inlatexbot .

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

Калькулятор Wolframalpha в разговоре в Telegram

, не таким образом sqrt(4)*2^x * 1/3 =1024 .

Но не менее часто мне нужен функционал в телеграмме Вольфрам Альфа : рассчитать сложный счет за вечеринку с друзьями, различные проценты, решить уравнение и так далее - полный функционал WolframAlpha, но не выходя из диалога телеграмм.



Вольфрамовое соединение

Я нашел API Wolfram Alpha для Python ( https://pypi.org/project/wolframalpha/ ).

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

Правда, есть ограничение бесплатного API Wolfram API — 2000 запросов в месяц.

Код, работающий с вольфрамом, предельно прост и у меня получился в 4 строки.

  
   

import wolframalpha client = wolframalpha.Client('TOKEN') res = client.query(query) print(next(res.results).

text)

В первых двух строках я импортирую модуль wolframalpha, создаю клиента со своим APP ID — сначала нужно зарегистрироваться в wolfram и получить его, затем можно отправлять запросы в wolframalpha и просто печатать результат того, что получил Wolfram Alpha. Все работает — теперь можно приступать к интеграции с Telegram.

Интеграция в Telegram-бот

Остается только соединить все воедино и отправить полученные от Telegram запросы в Wolfram и предоставить ответ пользователю.

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

Вот как выглядит самая важная часть кода.



def inlinequery(update, context): """Handle the inline query.""" query = update.inline_query.query print(query) res = client.query(query) results = [ InlineQueryResultArticle( id=uuid4(), title="Волшебный ответ здесь!", input_message_content=InputTextMessageContent( "{} => *{}*".

format(query, next(res.results).

text), parse_mode=ParseMode.MARKDOWN))] update.inline_query.answer(results)



Как это работает?

Все очень просто — прямо в диалоге ввожу @calcherebot 12+15 и он мне выдает ответ 27 .

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



Калькулятор Wolframalpha в разговоре в Telegram



Что дальше?

Пока бот работает локально и поддерживает всего 2000 запросов в месяц, что очень мало для публичного использования.

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

Если у вас есть идеи или предложения по улучшению (скорее всего они у вас есть, так как бот был написан за пару часов), напишите мне на почту: [email protected] Теги: #python #математика #api #боты для мессенджеров #Telegram #wolframalpha

Вместе с данным постом часто просматривают: