Challenge Task for Interns: Develop a Multi-Disciplinary Telegram Bot
From: Artificial Intelligence Medical and Engineering Researchers Society (AIMER Society)
Objective: Create a sophisticated Telegram bot that can handle a variety of mathematical
and chemistry-related questions. The bot should provide detailed, step-by-step solutions and
generate relevant graphs and images where applicable.
Task Overview
You are tasked with developing a Telegram bot that integrates several powerful Python
libraries to solve complex problems in mathematics and chemistry. The bot should be
capable of:
1. Understanding and parsing user queries.
2. Using appropriate libraries to solve the queries.
3. Providing step-by-step solutions.
4. Generating and displaying graphs and images related to the solutions.
Required Features
1. User Interaction:
- The bot should respond to user queries in a conversational manner.
- It should accept input in the form of text questions or equations.
- Provide clear instructions for users on how to format their questions.
2. Mathematical Capabilities:
- Solve algebraic equations and provide step-by-step solutions using `SymPy`.
- Handle tensor algebra and quantum field theory problems using `Cadabra`.
- Perform geometric algebra computations using `galgebra`.
- Support for LaTeX typesetting of algebraic expressions using `LaTeX Expression
project`.
- Integration with `SageMath` for a wide range of mathematical computations.
3. Chemistry Capabilities:
- Handle chemical kinetics and equilibrium calculations using `ChemPy`.
- Provide detailed step-by-step solutions for chemical equations.
4. Visualization:
- Generate and display graphs for mathematical solutions (e.g., function plots, geometric
visualizations).
- Create and show images related to chemistry problems (e.g., molecular structures,
reaction pathways).
5. High-Performance Computation:
- Use `devito` for high-performance stencil computations if applicable.
- Solve systems of non-linear equations using `pyneqsys` and integrate ODE systems
using `pyodesys`.
6. Additional Capabilities:
- Implement multibody dynamics simulations using `PyDy`.
- Support for quantum computing problems using the Quantum Programming in Python
library.
- Perform optimization tasks using `Optlang`.
Implementation Steps
1. Set Up the Telegram Bot:
- Create a new bot using the Telegram Bot API.
- Set up a webhook or long polling method for receiving messages.
2. Integrate SymPy:
- Implement functions to solve algebraic equations and provide detailed steps.
- Use SymPy’s plotting functions to generate graphs.
3. Integrate ChemPy:
- Implement functions to solve chemical equations and provide step-by-step solutions.
4. Visualization:
- Use matplotlib or other plotting libraries to generate graphs.
- Use ChemPy’s capabilities to generate chemical structures and pathways.
5. Advanced Libraries:
- Integrate additional libraries like `Cadabra`, `galgebra`, and `PyDy` to expand the bot’s
capabilities.
- Ensure high-performance computations using `devito` where applicable.
6. Testing and Validation:
- Thoroughly test the bot with a variety of queries to ensure accuracy and robustness.
- Validate the step-by-step solutions and visualizations provided by the bot.
7. Documentation and User Guide:
- Create comprehensive documentation for the bot’s code.
- Develop a user guide explaining how to interact with the bot and the types of questions it
can answer.
Deliverables
- Fully functional Telegram bot with the specified capabilities.
- Source code with detailed comments and documentation.
- A user guide for interacting with the bot.
- Test cases demonstrating the bot’s functionality across different types of queries.
Submission Instructions
- Submit a task video: Record a video demonstrating the bot's functionalities and how it
solves various queries.
- Post the video on LinkedIn: Upload the video to LinkedIn and tag the Artificial Intelligence
Medical and Engineering Researchers Society (AIMER Society).
- Deadline: Submit the video within one week from today.
Evaluation Criteria
- Functionality: The bot should correctly solve the given problems and provide accurate
step-by-step solutions.
- Usability: The bot should be easy to interact with, providing clear instructions and
responses.
- Performance: Solutions should be generated quickly and efficiently.
- Robustness: The bot should handle a wide range of queries without errors.
- Documentation: Clear and comprehensive documentation of the code and user
instructions.
Good luck, and we look forward to seeing your innovative solutions!