-
Leaked API key doesn't work anymore, generate yours on developer.wolframalpha.com
-
I created an Agent with 2 tools: tool 1 - checks if a query is about math, and the 2nd is just a whole logic of math tutoring.
-
Streamlit frontend, just open an .ipynb file and use it straight in browser. LINK to the video example!
-
I use Gemma 2 9B instruct because it can generate Ukrainian quite well.
-
The ChromaDB dataset doesn't even exist, but if you asked the agent the same question - it'll create a brand new database and give you back a previously saved answer. (for generation of more robust answers we can use a bigger model, but even the current one is great at math questions (though it can't solve image input))
-
My goal was to use the small 3B Llama 3.1 for agent logic and use Gemma 2 9B for explanation (now it's Gemma 2 9B instruct for both)
-
For equations, I use the Wolfram Simple API.
-
I was planning to add a button to tasks generation on the sidebar (but didn't make it yet)
-
I was planning to generate ZNO questions for ChromaDB + Image library (but didn't make it). The problem is with understanding images by LLMs and image generation for the answer.
-
Validation of dataset isn't working without a dataset, because it's not a RAG but an Agent without a default dataset.
-
I've planned to save questions, answers with explanation[s] and with pictures, and I made it.
-
I use Ollama instead of vLLM because I'm working on a laptop with 4GB GPU AND I want to use as models as small as possible to understand how to use them properly.
The project represents an intelligent system for solving mathematical problems using a combination of modern technologies and approaches.
- Wolfram Alpha integration for precise calculations
- Result caching system using ChromaDB
- Bilingual support (Ukrainian/English)
- Web interface based on Streamlit
- Automatic mathematical problem type detection
- Step-by-step explanation generation
- Result visualization through graphs and diagrams
- Solution storage and reuse
- User input validation
- Error handling at all levels
- Fallback mechanism for local calculations
- API key and connection verification
-
Core Components:
- Wolfram Alpha API
- ChromaDB
- Streamlit
- Ollama
- Google Translator
-
Supporting Tools:
- PIL for image processing
- JSON for data structuring
- Requests for API calls
- Implementation of task generator
- Addition of evaluation system
- Development of multi-agent architecture
- Knowledge base expansion
- Enhanced explanations
- Translation optimization
- Caching optimization
- Error handling improvements
- Expanded visualization format support
The project demonstrates good basic functionality for mathematical problem solving but requires further development in task generation and quality assessment. The core system components work reliably and efficiently, providing a solid foundation for future development.
- Created a working prototype with basic functionality
- Implemented a reliable mathematical problem processing system
- Provided bilingual support and user-friendly interface
- Implementation of task generation
- Development of evaluation system
- Realization of multi-agent architecture
-
Uses ChromaDB for efficient storage and retrieval
-
Implements similarity search for cached solutions
-
Maintains metadata for better search results
- Bidirectional translation between Ukrainian and English
- Handles mathematical terminology accurately
- Preserves formatting during translation
- Multiple fallback mechanisms
- Graceful degradation when services are unavailable
- Comprehensive error messages in Ukrainian
- Dynamic image generation through Wolfram Alpha
- Local image storage and management
- Responsive display in web interface
- Well-structured modular design
- Comprehensive error handling
- Clear separation of concerns
- Type hints and documentation
- Need for more unit tests
- Better configuration management
- Code optimization opportunities
- Enhanced logging system
- Basic setup instructions
- API documentation
- Configuration guide