GenLearn - Your Personalized Learning Assistant!
Tags: genai, bedrock, partyrock, llm
Published: 2024-03-10 05:25:59

🚀 Introducing: GenLearn – Your Personalized Learning Assistant! 📚
Built on PartyRock Playground during #partyrock-hackathon

{% embed https://youtu.be/QInYeGJZlXo %}

## GenLearn - Your Personalised Learning Assistant!

Get Started with GenLearn today and unlock your full learning potential! 🌐

**App link**
https://partyrock.aws/u/AravindVCyber/2N3IdneP6/GenLearn-Your-Personalised-Learning-Assistant!


**Snapshot**
https://partyrock.aws/u/AravindVCyber/2N3IdneisP6/GenLearn-Your-Personalised-Learning-Assistant!/snapshot/qDBzjmXhW



Try some experiment with this and share your snapshots or create your own app with Partyrock

**Post in Community.AWS**

{% embed https://community.aws/content/2b71cejmiUvtvHxkNJTHwYHSFpM/genlearn-personalized-learning %}

Do like and share my hackathon submission in DEVPOST

{% embed https://devpost.com/software/personalised-learning-assistant-5vr28l %}

## GenLearn

GenLearn helps users learn, summarise, and present any topic with presentation slide notes in language of choice with links to Search, YouTube, Wikipedia, and Images to unlock learning possibilities
Are you tired of spending countless hours scouring through textbooks and online resources to grasp a concept or prepare a presentation? Look no further! GenLearn is here to revolutionize your learning experience.
Say goodbye to tedious research and hello to efficient, personalised learning with GenLearn. Join us in shaping the future of education and empowerment. Let's learn smarter, together! 🌟

## Problem Addressed:

In today's fast-paced world, individuals often struggle to find the time and resources needed to effectively learn and present information. Traditional methods of learning can be time-consuming and inefficient, leaving learners feeling overwhelmed and uninspired.
Solution:
GenLearn offers a comprehensive solution to this problem by leveraging generative technologies to create personalised learning materials and presentation slide notes. By harnessing the power of AI, users can quickly access curated content tailored to their learning preferences, saving time and effort.

## Key Features:

- Personalised Learning: Tailored learning materials and presentation slide notes on any topic.
![inputs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fria8jc92mfcus6zlvaj.png)
- Multi-Language Support: Content available in your preferred language for global accessibility.
- Actionable Links: Direct access to Google Search, YouTube, Wikipedia, and Images for further exploration.
- Efficiency: Streamlined learning process, allowing users to focus on understanding and application rather than searching for information.
- Assistant: Bot is ready to clarify further on the topic requested
![chat](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4mqc8fzx9irhjeynvd8h.png)

## Interesting Hacks:
I also used some simple hacks to let the LLM know how to format the search links under different languages, and the results are amazing, with a few snippets of code like the below the LLM is able to understand how to generate links

```python
import wikipedia

def generate_google_search_link (query):
    return f"https://www.google.com/search?q={'+'.join(query.split())}"

def generate_google_image_search_url (query):
    base_url = "https://www.google.com/search" 
    params = { "tbm": "isch", "q":query }
    url = base_url + "?" + "&".join([f"{key}={value}" for key, value in params.items()]) 
    return url 

def generate_youtube_links(query, num_links=1): 
    youtube_links = [] 
    for i in range(1, num_links + 1): 
        youtube_links.append(f"[YouTube Video {i}](https://www.youtube.com/results?search_query={'+'.join(query.split())}&page={i})") 
    return youtube_links 

def generate_wikipedia_links(query, num_links=1): 
    wikipedia_links = [] 
    search_results = wikipedia.search(query, results=num_links) 
    for result in search_results: 
         page_title = wikipedia.page(result).title 
         wikipedia_links.append(f"[{page_title}](https://en.wikipedia.org/wiki/{'_'.join(page_title.split())})") 
    return wikipedia_links

def generate_combo_links(query, google_links=1, youtube_links=1, wikipedia_links=1): 
    google_links = generate_google_search_link(query) 
    google_images_link = generate_google_image_search_url(query) 
    youtube_links = generate_youtube_links(query, youtube_links) 
    wikipedia_links = generate_wikipedia_links(query, wikipedia_links) 
    combo_links = { "Google Search": google_links, "Google Images": google_images_link, "YouTube Videos": youtube_links, "Wikipedia Pages": wikipedia_links } 
    return combo_links

```

> suggested readings as hyperlinks

![suggested links](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yj2ra9ib6w3qbu7qwuwg.png)



## Notes on the developmental journey for the hackathon.

## Inspiration

In today's fast-paced world, individuals often struggle to find the time and resources needed to effectively learn and present information. Traditional methods of learning can be time-consuming and inefficient, leaving learners feeling overwhelmed and uninspired.

## What it does
Whether you're a student, a professional, or a lifelong learner, GenLearn adapts to your needs, providing concise summaries and engaging content in your preferred language.
But that's not all! With actionable links to Google Search, YouTube, Wikipedia, and Images, you'll have a wealth of additional resources at your fingertips, enriching your learning journey like never before.
Say goodbye to tedious research and hello to efficient, personalised learning with GenLearn. Join us in shaping the future of education and empowerment. Let's learn smarter, together! 🌟

## How we built it
Our app utilises cutting-edge generative solutions to create tailored learning materials and presentation slide notes on any topic you desire.
We have used Amazon partyrock playground to build this app, which helped us with easy access to generative llm models like Claude and Stability AI

## Challenges we ran into
While connecting widget, we occasionally hand trouble in getting the required out in relevant format and under the current scope, eventually we iterated this using some prompt engineering to get around with the solution.
Had some challenges in getting the hyperlinks and eventually we mastered getting the links with the right model

## Accomplishments that we're proud of
I think this is only the tip of the iceberg, if we could do this and help students with an interactive experience for students to learn and personalise the content in their language and summaries it with partyrock, it opens a lot of possibilities.

## What we learned
When we started it is was giving output more similar to a usual ChatGpt query, but when we linked the various widgets, we managed to get a interactive experience. More over we started with text outputs, and later converted it to markdown and ensured to use emojis, to make the students feel cool. Besides which we went ahead and try to generate web search link to help student explore beyond and help opened the generated content to reference. Language translation would also be a great experience for students

## What's next for Personalised Learning Assistant

- I believe we could generate actionable links could help students reference and explore wide content from the web.
- At the same time they could also be used to track user events to further interact with the playground
- Also currently the playground does not support additional input component types, and input files/video. This could open more possibilities to make the interactive experience cool
- It could as well in future support audio or video playback, and it could really make the learning experience engaging
- Also the app is still using open pre-learned material, hopefully in future we could use RAG feeds to help industrial use cases make similar playground to benefits their users with relevant and appropriate data, more personalisation.


##Other Features and Images:


> Fun Facts for Users on Topic
![facts in english](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cujked6uttpnzt4qvwlo.png)

> Easy summary in the form of slides for presentation or notes
summarised notes in the form of slides 1



![slide 1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yliqzdvyu7ixf1o3x79j.png)
summarised notes in the form of slides 2

![slide 2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vbe8pquz0nlwpc4yg4bp.png)

> Brief explanation on the topic in the requested language

![brief explanation in french](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2auvlb0pwtmxpyjqhiiy.png)

> Casual image generation based on topic
![casual image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/866sqlpykeqw9b345wiu.png)
 
Get Started with GenLearn today and unlock your full learning potential! 🌐

**App link**
https://partyrock.aws/u/AravindVCyber/2N3IdneP6/GenLearn-Your-Personalised-Learning-Assistant!

**Snapshot**
https://partyrock.aws/u/AravindVCyber/2N3IdneisP6/GenLearn-Your-Personalised-Learning-Assistant!/snapshot/qDBzjmXhW

Feel free to share any constructive feedback and reach me at twitter @Aravind_V7

Do like and share my hackathon submission in DEVPOST

https://devpost.com/software/personalised-learning-assistant-5vr28l
 
{% embed https://youtu.be/QInYeGJZlXo %}