|
| 1 | +--- |
| 2 | +title: "GSoC’25 Week 03 Update by Om Santosh Suneri" |
| 3 | +excerpt: "To Develop a Basic RAG Debugger for Music Blocks" |
| 4 | +category: "DEVELOPER NEWS" |
| 5 | +date: "2025-06-22" |
| 6 | +slug: "2025-06-22-gsoc-25-omsuneri-week03" |
| 7 | +author: "@/constants/MarkdownFiles/authors/om-santosh-suneri.md" |
| 8 | +tags: "gsoc25,sugarlabs,week03,Debugger,AI,Music Blocks" |
| 9 | +image: "assets/Images/GSOC.png" |
| 10 | +--- |
| 11 | + |
| 12 | +<!-- markdownlint-disable --> |
| 13 | + |
| 14 | +# Week 03 Progress Report by Om Santosh Suneri |
| 15 | + |
| 16 | +**Project:** [AI-powered Debugger for Music Blocks](https://github.com/omsuneri/AI-powered-Debugger-for-Music-Blocks) |
| 17 | +**Mentors:** [Walter Bender](https://github.com/walterbender/) [Sumit Srivastava](https://github.com/sum2it) |
| 18 | +**Assisting Mentors:** [Devin Ulibarri](https://github.com/pikurasa/) |
| 19 | +**Reporting Period:** 2025-06-15 - 2025-06-21 |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## Goals for This Week |
| 24 | + |
| 25 | +- **Goal 1:** Deploy the AI-Powered Debugger App to a Cloud Hosting Platform |
| 26 | +- **Goal 2:** Create Embeddings from Music Blocks Project Text Representations |
| 27 | +- **Goal 3:** Improve LLM Response Language for Kids and Junior Learners |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +## This Week’s Achievements |
| 32 | + |
| 33 | +1. **Deploy the AI-Powered Debugger App to a Cloud Hosting Platform** |
| 34 | + - This week, I successfully deployed the AI-Powered Debugger application on Streamlit Cloud, making it publicly accessible to anyone interested in testing it. The deployment process included optimizing the app structure for cloud compatibility, setting up environmental variables securely, and ensuring a smooth user experience. The live deployment now allows users—especially educators, learners, and developers—to interact with the debugger without needing to set up anything locally. |
| 35 | + - Making the debugger accessible via the web marks a major step in making AI tools more usable and available to the community. It enables initial-stage testing by real users, which is essential for collecting feedback and observing how the debugger performs across different user behaviors. This helps build a feedback loop that will guide future improvements and robustness of the tool, making it more valuable in the long term. |
| 36 | + |
| 37 | +2. **Create Embeddings from Music Blocks Project Text Representations** |
| 38 | + - After performing some minor improvements to the Music Blocks JSON-to-text converter, I selected 14 representative projects from the Music Blocks examples directory. These projects span across a range of tags and categories—such as music composition, transcription, games, utilities, and miscellaneous projects. I then generated vector embeddings for the textual representations of these projects and stored them in a Qdrant vector database cluster. |
| 39 | + - These embeddings serve as the foundation for teaching the LLM about the structure and semantics of real-world Music Blocks projects. By creating a searchable knowledge base of real examples, we are equipping the LLM with contextual understanding of how blocks are logically connected and used in different domains. This will significantly improve the LLM’s ability to understand, explain, and debug Music Blocks code based on actual use cases, making it more intelligent and helpful in practice. |
| 40 | + |
| 41 | +3. **Improve LLM Response Language for Kids and Junior Learners** |
| 42 | + - To make the debugger more inclusive and approachable for younger audiences, I updated the LLM prompt with additional guidance that instructs the model to assume the user is a child or junior learner. This involved reworking how queries are framed when sent to the LLM, prompting it to respond in a simpler, clearer, and more encouraging language style suitable for kids. |
| 43 | + - Music Blocks is widely used in educational environments, especially among school-age children learning to code. By making the language of AI responses more kid-friendly, we ensure that young learners can better understand and learn from the debugger’s suggestions. This step plays a key role in increasing the educational value, accessibility, and inclusivity of the project, ultimately making learning more fun and effective for our target audience. |
| 44 | + |
| 45 | +--- |
| 46 | + |
| 47 | + |
| 48 | +## Challenges & How I Overcame Them |
| 49 | + |
| 50 | +- **Challenge:** Improving ingest.py to Create Embeddings Efficiently |
| 51 | + **Solution:** I enhanced the ingest.py script to process the improved text representations generated from various Music Blocks projects. I created and configured a Qdrant cluster to store the generated embeddings. This allowed me to index 14 representative projects across different categories. The modified script now supports smoother ingestion of data into Qdrant, and the embeddings are successfully retrievable for use by the LLM. This improvement lays the foundation for more intelligent, context-aware search and reasoning by the debugger. |
| 52 | + |
| 53 | +- **Challenge:** Handling Environment Variables in Streamlit Cloud |
| 54 | + **Solution:** After some thorough research and trial-and-error, I realized that Streamlit Cloud requires environment variables to be set via their Secrets Manager, not directly via .env files or code. I restructured the way the debugger reads sensitive values like API keys, moving everything into Streamlit's secure secrets.toml configuration. Once set properly, the application worked as expected in the cloud environment. This not only solved the deployment issue but also ensured better security practices moving forward. |
| 55 | + |
| 56 | +--- |
| 57 | + |
| 58 | +## Key Learnings |
| 59 | + |
| 60 | +- Deploying the AI debugger to Streamlit Cloud taught me the importance of environment-specific configurations, especially handling environment variables securely using platform-specific methods like Streamlit’s Secrets Manager. It highlighted how even small deployment details can significantly impact the usability and accessibility of an application. |
| 61 | +- Creating embeddings from Music Blocks project representations and integrating them into a Qdrant vector database deepened my understanding of how LLMs can be enhanced with contextual knowledge. I also learned how to structure data ingestion pipelines effectively for scalable and meaningful semantic search. |
| 62 | +- Tweaking the LLM prompt to generate child-friendly responses helped me appreciate the importance of audience-aware design in educational tools. It reinforced the idea that technology should be not just functional, but also inclusive, approachable, and aligned with the learning level of its users. |
| 63 | + |
| 64 | +--- |
| 65 | + |
| 66 | +## Next Week’s Roadmap |
| 67 | + |
| 68 | +- Integrate the JSON convertor directly into the Debugger Streamlit app |
| 69 | +- Testing the Debugger with Intensive Prompting |
| 70 | +- Improving the Quality of LLM Responses |
| 71 | + |
| 72 | +--- |
| 73 | + |
| 74 | +## Resources & References |
| 75 | + |
| 76 | +- **Repository:** [JSON to Text representation](https://github.com/omsuneri/JSON-to-Text-representation) |
| 77 | +- **Repository:** [AI-powered Debugger for Music Blocks](https://github.com/omsuneri/AI-powered-Debugger-for-Music-Blocks) |
| 78 | +- **Debugger Streamlit App:** [Music Blocks Debugger](https://debuggmb.streamlit.app/) |
| 79 | +- **Directory for Projects:** [Embedding Project Set](https://github.com/omsuneri/AI-powered-Debugger-for-Music-Blocks/tree/main/data/docs) |
| 80 | + |
| 81 | +--- |
| 82 | + |
| 83 | +## Acknowledgments |
| 84 | + |
| 85 | +Thank you to my mentors, the Sugar Labs community, and fellow GSoC contributors for ongoing support. |
| 86 | + |
| 87 | +--- |
0 commit comments