Inspiration
The process of renaming files and relocating them can be a mundane, laborious task that is highly susceptible to human error. Our inspiration for creating AutoArchive as a proof-of-concept is to demonstrate the ability of people to use simple, colloquial language to complete hard, rigorously defined tasks. OpenAI's ChatGPT Natural Language Processor serves as an interface between the user, who may have an ambiguously defined goal of renaming and relocating files, and a program that requires well-defined and often difficult-to-understand instructions.
What it does
AutoArchive is a software that allows the user to specify junk folders with the intention of renaming or relocating, or both, the contents inside. To intelligently rename and relocate the files, AutoArchive parses the contents of a given file and uses ChatGPT to determine a sensible name and location for it.
How we built it
We built the primary interface through the python library ArgParse which allows the user to specify high-level commands and input/output directories. The interface inputs a list of files which are marked for either renaming or relocating, and a list of output directories to the processing module, which is built using python's os library and custom-written modules. For each file, the processor uses numerous FileIO and content-processing libraries (PyPDF2, Python-pptx, textract, pyTesseract, etc.) in order to extract the relevant contents of each file. Next, the processor sends this relevant content, along with a list of output directories, as a request to the OpenAI ChatGPT library for a renaming/relocating suggestion. Finally, depending on what the user specifies (whether to rename and/or relocate the files), the processor makes these changes using the OS library.
Challenges we ran into
Since this is our first hackathon and our first serious development project, we needed to read extensive documentation and go through hours of debugging. Our first challenge was programming the CLI to allow the user to interface with AutoArchive. Specifying arguments and having them return the correct types (such as a list or string), was frustrating. Next, getting ChatGPT to return a response in a decodable format was an arduous task that require a lot of tinkering with requests. Lastly, we encountered difficulties with fileIO and dealing with file paths. We ultimately solved this issue through the use of sanitizing input and generalizing our program to work with both absolute and relative file paths.
Accomplishments that we're proud of
Deltahacks has proved to be a very rewarding experience, and we are extremely proud to have participated in this event in a productive manner. This is a monumental event for us, as it marks our transition from being merely students learning computer science to developers who can produce viable products.
What we learned
We learned a significant amount about user interfaces and the principles that go towards designing them. The task of learning basic image processing and API requests proved to be a valuable experience. Learning about machine learning natural language processing models intrigued our curiosity in the future of AI and theoretical computer science.
What's next for AutoArchive
AutoArchive is ultimately a proof-of-concept that demonstrates that one doesn't have to be rigorously technologically literate in order to interface with machines. We wanted to demonstrate that simple commands from the user's end, along with an AI that can infer our intentions and remove the ambiguity of our natural language, can produce complex technological results. Ideally, we can use such natural language processors to allow non-programmers to create software that can have a beneficial impact on the world. The future of AutoArchive is Change.
Log in or sign up for Devpost to join the conversation.