|
import streamlit as st |
|
from app import generate_response |
|
|
|
|
|
st.title("UI/UX Design Assistant Chatbot") |
|
st.markdown( |
|
""" |
|
Welcome to the **UI/UX Design Assistant**! π¨ |
|
|
|
This AI chatbot helps you: |
|
- Create actionable design suggestions |
|
- Generate visual templates |
|
- Provide Figma-ready designs |
|
|
|
Fill in the details below to get started! |
|
""" |
|
) |
|
|
|
|
|
task = st.text_input("Describe your design task (e.g., 'landing page design')", key="task_input") |
|
style = st.selectbox( |
|
"Select a design style:", |
|
["modern minimalist", "vintage", "playful", "corporate", "futuristic"], |
|
key="style_select" |
|
) |
|
requirements = st.text_area("Enter specific functional requirements (optional):", key="requirements_input") |
|
|
|
|
|
if st.button("Generate Design", key="generate_button"): |
|
|
|
if not task.strip(): |
|
st.error("β οΈ Please provide a design task before generating.") |
|
else: |
|
with st.spinner("Generating your design... π"): |
|
try: |
|
|
|
response = generate_response(task.strip(), style, requirements.strip()) |
|
|
|
|
|
st.subheader("π‘ Textual Suggestions:") |
|
if response.get("text"): |
|
st.write(response["text"]) |
|
else: |
|
st.warning("β οΈ No textual suggestions generated. Please refine your input and try again.") |
|
|
|
|
|
st.subheader("πΌοΈ Visual Template:") |
|
if response.get("visual_template") and "Error" not in response["visual_template"]: |
|
st.image(response["visual_template"], caption="Generated Visual Template") |
|
else: |
|
st.warning("β οΈ No visual template available or an error occurred.") |
|
|
|
|
|
st.subheader("π Figma Template:") |
|
if response.get("figma_template") and "Error" not in response["figma_template"]: |
|
st.write(f"[View Template in Figma]({response['figma_template']})") |
|
else: |
|
st.warning("β οΈ No Figma template available or an error occurred.") |
|
|
|
except Exception as e: |
|
st.error(f"β An error occurred while generating the design: {e}") |
|
|
|
|
|
st.markdown("---") |
|
st.markdown("π‘ **Tip**: Ensure your inputs are clear and concise for the best results.") |
|
|