Wolframalpha-Rechner im Telegrammdialog

Idee



In Telegrammdialogen verwende ich sehr oft den Telegrammbot: inlatexbot . Damit können Sie Latex direkt in den Telegrammdialog einfügen - das ist praktisch: Die mathematische Notation kann mit einem klaren Bild gesendet werden, so dass

42x13=1024

, nicht so sqrt (4) * 2 ^ x * 1/3 = 1024 .

Aber nicht seltener brauche ich die WolframAlpha- Funktionalität in einem Telegramm : Berechnen Sie eine komplexe Rechnung für eine Party mit Freunden, verschiedene Prozentsätze, lösen Sie eine Gleichung usw. - die volle Funktionalität von WolframAlpha, aber verlassen Sie gleichzeitig nicht den Telegrammdialog.



Wolfram-Verbindung



Ich habe die Wolfram Alpha API für Python gefunden (https://pypi.org/project/wolframalpha/). Die Dokumentation ist sehr übersichtlich und Sie können alles tun, was in der Webversion verfügbar ist. Es stimmt, es gibt eine Beschränkung der kostenlosen Wolfram-API auf 2.000 Anfragen pro Monat. Der Code, der mit Wolfram funktioniert, ist extrem einfach und kam für mich in 4 Zeilen heraus.



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


In den ersten beiden Zeilen importiere ich das Wolframalpha-Modul, erstelle einen Client mit meiner APP-ID - Sie müssen sich zuerst bei Wolfram registrieren und abrufen, dann können Sie Anfragen an Wolfram senden und einfach das Ergebnis von Wolfram Alpha ausdrucken. Alles funktioniert - jetzt können Sie mit der Integration in Telegram beginnen.



Integration in den Telegrammbot



Es bleibt alles miteinander zu verbinden und vom Telegramm empfangene Anfragen an Wolfram zu senden und dem Benutzer eine Antwort zu geben. Ich erstelle einen Bot in @BotFather und aktiviere den Inline-Modus in den Einstellungen, damit der Bot direkt im Telegrammdialog funktioniert. Ich verwende ein Beispiel eines Inline-Bots von GitHub for Telegram und sende eine Antwort an den Benutzer. So sieht der wichtigste Teil des Codes aus.



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)


Wie es funktioniert?



Es ist sehr einfach - direkt im Dialog gebe ich @calcherebot 12 + 15 ein und es gibt mir die Antwort 27 . Ein Bot in einem Telegramm vereinfacht nicht nur den Prozess der Berechnung von etwas, sondern auch den Prozess verschiedener Beweise. Sie können beispielsweise die Bevölkerung Moskaus oder das Durchschnittsgewicht einer Person herausfinden und der Bot verändert in gewisser Weise die Kommunikation: Screenshots von Taschenrechnern, Wikipedia oder anderen Quellen werden nicht mehr benötigt - jetzt ist alles mehr erforderlich kann im Dialog zugegriffen werden.







Was weiter?



Bisher arbeitet der Bot lokal und unterstützt nur 2.000 Anfragen pro Monat, was für die öffentliche Nutzung sehr gering ist. Ich habe vor, es für den Massengebrauch durch alle zu überarbeiten, die es brauchen: Studenten, Wissenschaftler, nur Leute, die etwas richtig im Telegramm berechnen oder beweisen müssen. Wenn Sie Ideen oder Verbesserungsvorschläge haben (höchstwahrscheinlich, da der Bot in ein paar Stunden geschrieben wurde), schreiben Sie mir per E-Mail: rk-helper@yandex.ru



All Articles