Русский
Русский
English
Статистика
Реклама

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

Идея


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

$$display$$\sqrt{4} * 2^x * \frac {1} {3}=1024$$display$$

, а не так sqrt(4)*2^x * 1/3 =1024.
Но не менее часто, мне в телеграме необходим функционал WolframAlpha: посчитать сложный счет за вечеринку с друзьями, различные проценты, решить уравнение и так далее полный функционал WolframAlpha, но при этом не выходить из диалога телеграма.

Подключение Wolfram


Я нашел Wolfram Alpha API для python (http://personeltest.ru/aways/pypi.org/project/wolframalpha/). Документация предельно понятная и можно сделать все, что доступно в веб версии. Правда, есть ограничение бесплатного Wolfram API на 2000 запросов в месяц. Код, который работает с вольфрамом предельно простой и у меня вышел в 4 строки.

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

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

Интегрирование в Телеграм бот


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

def inlinequery(update, context):    """Handle the inline query."""    query = update.inline_query.query    print(query)    res = client.query(query)    results = [        InlineQueryResultArticle(            id=uuid4(),            title="Magic answer is here!",            input_message_content=InputTextMessageContent(                "{} => *{}*".format(query, next(res.results).text),                parse_mode=ParseMode.MARKDOWN))]    update.inline_query.answer(results)

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


Очень просто прямо в диалоге я ввожу @calcherebot 12 + 15 и мне выдает ответ 27. Бот в телеграме упрощает не только процесс подсчетов чего-либо, но и процесс различных доказательств, например можно узнать население Москвы или средний вес человека и бот в каком-то смысле меняет коммуникацию: больше не нужны скриншоты калькуляторов, википедии или других источников теперь все может быть доступно в диалоге.



Что дальше?


Пока что бот работает локально и поддерживает всего лишь 2000 запросов в месяц, что очень мало для публичного использования. В моих планах его доработка для массового использования всем, кому это необходимо: студентам, ученым, просто людям которым нужно что-то посчитать или доказать прямо в телеграме. Если у вас есть идеи или пожелания по доработке( скорее всего они есть, так как бот был написан за пару часов) напишите мне на почту: rk-helper@yandex.ru
Источник: habr.com
К списку статей
Опубликовано: 14.08.2020 14:14:13
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Python

Api

Математика

Telegram

Боты для мессенджеров

Wolframalpha

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru