DEV Community

Denis Gavrilin
Denis Gavrilin

Posted on

GitHub Challenge: AI-Powered Text Summarizer & Questions Generator

This is a submission for the GitHub Copilot Challenge : New Beginnings

What I Built

I developed a text summarization application capable of processing text files (.pdf, .txt) and YouTube video transcripts to generate summaries with self-check questions. My motivation for building this tool was to streamline learning: often, you want to extract the essential information from a book or lecture while eliminating irrelevant details, or convert video content into digestible text. This application provides quick, dry summaries with questions that can help you verify your understanding of the material.

Demo

Currently, I didn't create a web-based demo due to API token limitations; instead, the application is available as a CLI tool. Users can supply their own OpenAI API tokens to try it out. Here are a couple of examples:

Repository

The project's source code is publicly available on GitHub: smrz repository.

Copilot Experience

Although I'm not deeply experienced with python, I was able to develop this application with GitHub Copilot's assistance. Copilot helped generate code, handle errors and edge cases, and structure functionality. While organizing the code and creating tests were challenging, Copilot proved to be a valuable tool since I don't know python. Without Copilot, building this project in python would likely have taken much longer.

GitHub Models

For prototyping LLM capabilities within my app, I leveraged GitHub Models, specifically the OpenAI GPT-4 model (referred to as gpt-4o) via the OpenAI API. This integration enhanced the summarization and question generation features, enabling more intelligent and responsive outputs. Prior attempts to use local large language models were slower and produced less satisfactory results, so using GitHub's model was a significant improvement.

Conclusion

Building this application in one day with about 80% assistance from Copilot was fun. There are countless ways to improve the app and enhance code organization, but working within these constraints helped me focus on the core functionality. This project not only achieved its goals but also provided valuable learning experiences in leveraging AI tools for development.

Top comments (0)