Inspiration
Our idea was inspired by the messy state of our own Google Drive’s—disorganized files scattered across different locations, random folders filled with duplicate files, and endless searching, making it difficult to find anything quickly. We wanted a smarter way to bring order to the chaos. So, we built an AI-powered assistant that could intelligently analyze and categorize files, automatically sorting them into folders that match the content of the files. At the same time, we wanted to keep users in control by allowing them to manually review, confirm, modify, or even create the suggested folder structure, ensuring that the system stays both helpful and personalized.
What it does
Our app combines the reasoning of LLMs with the Google Drive API to help users efficiently organize and manage their files based on their specifications. Users can prompt an AI agent—powered by LangChain and Ollama—to analyze and restructure their folders based on natural language input, making file management intuitive and intelligent. In addition to AI-driven organization, the app enables manual control over Drive operations like creating folders, moving or deleting files, and browsing directories, all through a frontend built with Streamlit.
How we built it
We built a Google Drive assistant using Streamlit as the user interface, integrating various Google Drive operations—such as creating folders, moving files, deleting items, and viewing file contents—through custom Python functions that interact with the Google Drive API. Each function was wired into a Streamlit app for intuitive interaction, while OAuth tokens were securely managed in session state. For advanced functionality, we used LangChain with a custom agent powered by the LLaMA 3 model, enabling natural language commands like “Move all images to /Photos.” This agent utilized structured tools that wrapped our core functions, such as create_drive_folder, list_drive_files, and view_file_content, allowing users to manage their Drive using conversational input. By combining Streamlit’s simplicity with Langchain’s LLM-driven agent architecture, we created a dynamic and user-friendly Drive automation platform.
Challenges we ran into
We encountered significant challenges while setting up and linking the Google Drive API, particularly with integrating it alongside Ollama. Additionally, we had a hard time managing the user’s authentication tokens in order to make multiple requests to the Google Drive API in one session.
Accomplishments that we're proud of
We’re really proud of how we successfully integrated Google Drive with Ollama, especially considering the challenges we faced during setup. It was exciting to see our efforts come together, allowing us to create a system where users can interact with their Google Drive files seamlessly. In addition to this, we focused on building a flexible and modular app, which means it can be easily expanded in the future to use the LLaMa stack by defining our own interface for the Google Drive API. This structure allows us to add new features and functionality as needed, like integrating other file storage solutions. The benefit of using a local model like LLaMA is that managing and reading files locally prevents security risks for small users or even large companies who aim to reorganize their cloud storage with an online app.
What we learned
Through this project, we gained valuable insights into how AI models like LLaMa can seamlessly interact with external APIs and execute functions based on the model’s reasoning. This ability to have the AI make decisions and call appropriate actions is a powerful tool that we used to automate tasks within Google Drive, making the user experience much more intuitive. Additionally, we learned the importance of OAuth in securing these interactions. OAuth plays a crucial role in allowing apps like ours to safely access user data from external sources, like Google Drive, without compromising security. It ensures that sensitive information, such as authentication tokens, is handled in a secure and efficient way, providing both convenience and peace of mind to users when linking their accounts.
What's next for FileFlow
We plan to enhance the product by incorporating a highly flexible and modular system that allows users to choose their preferred large language model for interacting with and organizing their files. By leveraging the LLaMa stack, we aim to enable users to run a more powerful model locally, enhancing both speed and privacy by minimizing dependency on external servers. Additionally, we want to expand the app's capabilities to support multiple file storage systems, making it easier for users to organize and manage their files across different platforms. This will allow for greater versatility and convenience, ensuring that users can integrate and interact with their files regardless of the storage service they use. Our goal is to continue developing FileFlow into a robust, user-centric tool that can adapt to the needs of a diverse audience.
Built With
- google-drive-api
- langchain
- llama
- oauth
- python
- streamlit
Log in or sign up for Devpost to join the conversation.