"Most Likely to Be a Business" — Toolhouse x Cloudflare Hackathon
Welcome to Interactive Room Designer, the innovative app that lets you design and customize a virtual room with ease. Powered by ToolHouse, OpenAI GPT, and Streamlit, our app generates realistic room images based on user descriptions and provides shopping links for each component, making interior design accessible and interactive!
Easily initialize, update, and visualize your custom room!
- Generate Realistic Room Images: Describe your dream room, and watch it come to life.
- Dynamic Updates: Add new components to the room on-the-go, and get updated images in real-time.
- Shopping Integration: Browse Amazon links for items in your room, helping you turn your design into reality!
- Intuitive Interface: User-friendly layout with easy controls to initialize and update your room.
- Frontend: Streamlit
- Backend: OpenAI GPT + ToolHouse
- Language: Python
Follow these steps to set up and run the app locally:
- Python>= 3.9+
- Streamlit:
pip install streamlit - OpenAI SDK:
pip install openai - ToolHouse SDK:
pip install toolhouse - OpenAI and ToolHouse API keys
- Clone the repository:
git clone https://github.com/your-username/interactive-room-designer.git cd interactive-room-designer - Set up API keys: Add your OpenAI and ToolHouse API keys to Streamlit secrets:
Create a .streamlit/secrets.toml file in the project root:
OPENAI_API_KEY = "your_openai_api_key" TOOLHOUSE_API_KEY = "your_toolhouse_api_key"
- Run the app
streamlit run app.py
The core functionality resides in a few key sections:
-
Room Initialization
- Generates an image based on a user’s initial description.
- Uses GPT and ToolHouse APIs to produce and display an initial room setup.
-
Updating Room Components
- Dynamically updates the room with new elements as specified by the user.
- Displays the updated room image with all added components.
-
Shopping Links
- Provides Amazon links for selected room items, helping users find decor and furniture items to bring their room to life.
initialize_room(): Generates the initial room image based on user input.update_room(): Adds new components to the room and updates the displayed image.extract_image_urls(): Extracts and validates image URLs from ToolHouse responses.get_amazon_link(): Links each room component to relevant Amazon search results.
We created Interactive Room Designer during the AI Hacknights Hackathon and were honored with the "Most Likely to Be a Business" award. Our goal was to make interior design accessible, fun, and practical through the power of AI and interactive technology.
Meet our team! 🎉
mpianrhko |
EP04 |
victorianwobodo |
srimoyee1212 |
123jklas |
We welcome feedback! If you have ideas for improvements or find any issues, please open an issue or submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.