حاسبة Wolframalpha في Telegram Dialog

فكرة



في مربعات حوار البرقية ، غالبًا ما أستخدم روبوت التلغرام : inlatexbot . يسمح لك بإدخال مادة اللاتكس مباشرة في مربع حوار البرقية - وهذا مناسب: يمكن إرسال التدوين الرياضي في صورة واضحة بحيث تكون هكذا

42x13=1024

، ليس الجذر التربيعي (4) * 2 ^ x * 1/3 = 1024 .

ولكن ليس أقل من ذلك ، فأنا بحاجة إلى وظيفة WolframAlpha في البرقية : حساب الفاتورة المعقدة لطرف مع الأصدقاء ، ونسب مئوية مختلفة ، وحل المعادلة ، وما إلى ذلك - الوظيفة الكاملة لـ WolframAlpha ، ولكن في نفس الوقت لا تترك حوار البرقية.



اتصال ولفرام



لقد وجدت Wolfram Alpha API للبيثون (https://pypi.org/project/wolframalpha/). الوثائق واضحة للغاية ويمكنك القيام بكل ما هو متاح في إصدار الويب. صحيح ، هناك قيود على واجهة برمجة تطبيقات Wolfram المجانية عند 2000 طلب في الشهر. الكود الذي يعمل مع التنغستن بسيط للغاية وخرج في 4 أسطر بالنسبة لي.



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


في أول سطرين ، أقوم باستيراد وحدة wolframalpha ، وإنشاء عميل باستخدام معرف التطبيق الخاص بي - يجب عليك أولاً التسجيل مع wolfram والحصول عليه ، ثم يمكنك إرسال طلبات التنغستن وطباعة نتيجة ما تلقاه 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="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



All Articles