|
| 1 | +--- |
| 2 | +title: "GSoC ’25 Week 02 Update by Diwangshu Kakoty" |
| 3 | +excerpt: "Multi-AI Agent Chat Model" |
| 4 | +category: "DEVELOPER NEWS" |
| 5 | +date: "2025-06-15" |
| 6 | +slug: "diwangshu-kakoty" |
| 7 | +author: "@/constants/MarkdownFiles/authors/diwangshu-kakoty.md" |
| 8 | +tags: "gsoc25,sugarlabs,week02,AI" |
| 9 | +image: "assets/Images/GSOC.png" |
| 10 | +--- |
| 11 | + |
| 12 | +<!-- markdownlint-disable --> |
| 13 | + |
| 14 | +# Week 02 Progress Report by Diwangshu Kakoty |
| 15 | + |
| 16 | +**Project:** [AI Tools for Reflection](https://github.com/Commanderk3/reflection_ai) |
| 17 | +**Mentors:** [Walter Bender](https://github.com/walterbender), [Sumit Srivastava](https://github.com/sum2it) |
| 18 | +**Assisting Mentors:** [Devin Ulibarri](https://github.com/pikurasa), [Ajeet Pratap Singh](https://github.com/apsinghdev) |
| 19 | +**Reporting Period:** 2025-06-08 - 2025-06-14 |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## Goals for This Week |
| 24 | + |
| 25 | +- **Goal 1:** Develop a chat model consisting of multiple AI agents/mentors. |
| 26 | +- **Goal 2:** Improve the 'Analysis' generation. |
| 27 | +- **Goal 3:** Try and test different embedding models. |
| 28 | +- **Goal 4:** Fix bugs occured by these changes. |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +## This Week’s Achievements |
| 33 | + |
| 34 | +1. **AI Mentors** |
| 35 | + - From the last meeting with my mentor, I received feedback on having specialised AI mentors for areas of expertise, such as music and coding. Hence, I have implemented a way to have conversations with mentors in music, code, and meta. |
| 36 | + |
| 37 | + - *Music Mentor* : Handles reflection for music learning. |
| 38 | + |
| 39 | + - *Code Mentor* : Handles programming concepts and debugging reflection. Users can paste their simplified project code for better feedback and guidance. |
| 40 | + |
| 41 | + - *Meta Facilitator* : Guides general reflective thinking (learning goals, struggles, progress). |
| 42 | + |
| 43 | +2. **Improve Analysis Generation** |
| 44 | + - As mentioned in the last report, the analysis was inaccurate. I have refined the instructions, and now it functions effectively. It did not take much time. |
| 45 | + |
| 46 | +3. **Tested various Embedding Model** |
| 47 | + - Embedding models are machine learning models that convert complex data such as text, images, or audio into numerical representations called embeddings. I am using `all-MiniLM-L6-v2`, which is lightweight and fast. Although it is lightweight, it is still quite effective. I have not found better models than this, so I will stick with this model for now. |
| 48 | + |
| 49 | +--- |
| 50 | + |
| 51 | +## Challenges & How I Overcame Them |
| 52 | + |
| 53 | +- **Challenge 1 :** The LLM needs to be invoked with the user query, retrieved context, and message history. Since this project involves multiple AI agents, it is somewhat tricky to decide what kind of memory space to use. Possible ways to store messages: |
| 54 | + |
| 55 | + i) Shared memory space: Each agent will use one common message history with named tags to differentiate among themselves. This way, the AI agents won't repeat questions. |
| 56 | + |
| 57 | + ii) Separate memory space: Each agent will have their own space. This way, we can prevent confusion for the LLM. However, the trade-off is space. Additionally, we need to pass these message histories separately for summary generation. |
| 58 | + |
| 59 | + **Solution:** I first implemented the second option because it is simple and works fine, but the summary generation needs to be done separately for each agent, which I don't think is ideal. Therefore, I have decided to try the first option. I have already started working on it. I need to fix some bugs, and it will be completed by tomorrow (2025-06-16). |
| 60 | + |
| 61 | +- **Challenge 2 :** Retrieved context is irrelevant when the project code is passed. The retriever component returns three chunks arranged in priority. However, a project code can contain many keywords, making the retriever not particularly useful. |
| 62 | + |
| 63 | + **Solution:** I am considering scanning all the keywords (like block names) first and passing their information to the LLM. This data will be stored in a dictionary. Example: |
| 64 | + |
| 65 | +```python |
| 66 | +blocks = { |
| 67 | + "Action": "An Action block contains a sequence of actions that will only be executed when the block is referred to by something else, such as a start block.", |
| 68 | + "Start": "A Start Block is an Action that will automatically be executed once the start button is pressed." |
| 69 | +} |
| 70 | +``` |
| 71 | +This way the LLM can understand block structure and their meaning as well. |
| 72 | + |
| 73 | +--- |
| 74 | + |
| 75 | +## Key Learnings |
| 76 | + |
| 77 | +- The prototype for this project is developing in Streamlit, and I am learning Streamlit a lot. |
| 78 | +- Also gainig experience in LangChain as this is the primary tool of development. |
| 79 | + |
| 80 | +--- |
| 81 | + |
| 82 | +## Next Week’s Roadmap |
| 83 | + |
| 84 | +- Work on things suggested by mentors. |
| 85 | +- Fix challenge no. 2 as mentioned above. |
| 86 | +- Start preparing for the frontend interface. |
| 87 | + |
| 88 | +--- |
| 89 | + |
| 90 | +## Resources & References |
| 91 | + |
| 92 | +- **Repository:** [reflection_streamlit](https://github.com/Commanderk3/reflection_streamlit) |
| 93 | + |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## Acknowledgments |
| 98 | + |
| 99 | +Thank you to my mentors, the Sugar Labs community, and fellow GSoC contributors for ongoing support. |
| 100 | + |
| 101 | +--- |
0 commit comments