Spaces:
Running
on
T4
Running
on
T4
import streamlit as st | |
from PIL import Image | |
import base64 | |
import yaml | |
import os | |
import urllib.request | |
import tarfile | |
from yaml.loader import SafeLoader | |
# Page setup | |
st.set_page_config( | |
layout="wide", | |
page_icon="/home/ubuntu/images/opensearch_mark_default.png" | |
) | |
st.markdown(""" | |
<div id="home-page"> | |
""", unsafe_allow_html=True) | |
st.markdown(""" | |
<style> | |
/* Import Amazon Ember font */ | |
@import url('https://fonts.cdnfonts.com/css/amazon-ember'); | |
/* Global layout tweaks */ | |
html, body, .main { | |
html, body, .main { | |
background: linear-gradient(135deg, #0d0d0d 0%, #1a1a1a 30%, #102132 100%); | |
height: 100vh; | |
overflow: hidden; | |
color: white; | |
} | |
font-family: 'Amazon Ember', sans-serif; | |
} | |
.block-container { | |
padding-top: 2rem; | |
} | |
/* Hide Streamlit UI elements */ | |
#MainMenu, header, footer, | |
button[title="View fullscreen"] { | |
visibility: hidden; | |
} | |
/* Title styling */ | |
.title { | |
font-size: 40px; | |
color: #FF9900; | |
font-family: 'Amazon Ember Display 500', sans-serif; | |
margin-bottom: 10px; | |
} | |
.card { | |
background: rgba(255, 255, 255, 0.05); /* subtle white tint */ | |
backdrop-filter: blur(8px); /* frosted glass effect */ | |
border-radius: 12px; | |
padding: 24px 16px; | |
height: 240px; | |
color: white; | |
box-shadow: 0 0 10px rgba(0,0,0,0.3); | |
transition: transform 0.2s ease, background 0.2s ease; | |
display: flex; | |
flex-direction: column; | |
justify-content: space-between; | |
position: relative; | |
} | |
.card:hover { | |
color: #e46e08; | |
transform: scale(1.06); /* Optional: adds smooth grow effect */ | |
transition: all 0.3s ease-in-out; | |
border: 2px solid #ff3c3c; | |
} | |
/* Header strip with icon */ | |
.card-header { | |
font-size: 45px; | |
color: #AAA; | |
text-transform: uppercase; | |
padding-bottom: 8px; | |
margin-bottom: 12px; | |
display: flex; | |
justify-content: center; | |
align-items: center; | |
height: 24px; | |
} | |
.card-text { | |
font-size: 31px; | |
font-weight: 500; | |
flex-grow: 1; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
text-align: center; | |
padding: 0 8px; | |
} | |
.card:hover .card-text{ | |
opacity: 1; | |
color: #e46e08; | |
font-size: 33px; | |
font-weight: bold; | |
transform: scale(1.2); /* Optional: adds smooth grow effect */ | |
transition: all 0.3s ease-in-out; | |
} | |
/* Bottom arrow */ | |
.card-arrow { | |
position: absolute; | |
bottom: 12px; | |
left: 50%; | |
transform: translateX(-50%) scale(1); | |
font-size: 22px; | |
font-weight: bold; | |
opacity: 0; | |
transition: all 0.3s ease-in-out; | |
color: #ffffff; | |
} | |
# .card:hover .card-arrow { | |
# opacity: 1; | |
# color: #e46e08; | |
# font-size: 30px; | |
# } | |
# .card:active .card-arrow { | |
# transform: translateX(-50%) scale(1.3); | |
# } | |
</style> | |
""", unsafe_allow_html=True) | |
# Header with logo and title | |
col_logo, col_title = st.columns([32, 68]) | |
with col_logo: | |
st.image("/home/user/app/images/OS_AI_1_cropped.png", use_column_width=True) | |
spacer_col = st.columns(1)[0] | |
with spacer_col: | |
st.markdown("<div style='height: 120px;'></div>", unsafe_allow_html=True) | |
col1, col2, col3 = st.columns(3) | |
with col1: | |
st.markdown(""" | |
<a href="/Semantic_Search" target="_self" style="text-decoration: none;"> | |
<div class="card"> | |
<div class="card-header" style="font-size: 45px; margin-bottom: 10px;">🔍</div> | |
<div class="card-text" style="font-size: 31px; color: #e46e08; ">AI Search</div> | |
<div class="card-description" style="font-size: 16px; color: #ccc; margin-top: 6px;text-align: center;white-space: normal;"> | |
Explore ML search types, Re-ranking, Query rewriting and more on a retail dataset </div> | |
</div> | |
</a> | |
""", unsafe_allow_html=True) | |
with col2: | |
st.markdown(""" | |
<a href="/Multimodal_Conversational_Search" target="_self" style="text-decoration: none;"> | |
<div class="card"> | |
<div class="card-header" style="font-size: 45px; margin-bottom: 10px;">💬</div> | |
<div class="card-text" style="font-size: 31px; color: #e46e08; ">Multimodal RAG</div> | |
<div class="card-description" style="font-size: 16px; color: #ccc; margin-top: 6px;text-align: center;white-space: normal;"> | |
Explore Multimodal Conversational Search over complex PDFs (with tables, graphs etc) </div> | |
</div> | |
</a> | |
""", unsafe_allow_html=True) | |
st.markdown(""" | |
</div> | |
""", unsafe_allow_html=True) | |
with col3: | |
st.markdown(""" | |
<a href="/AI_Shopping_Assistant" target="_self" style="text-decoration: none;"> | |
<div class="card"> | |
<div class="card-header" style="font-size: 45px; margin-bottom: 10px;">🧠💬</div> | |
<div class="card-text" style="font-size: 31px; color: #e46e08;">Agentic RAG</div> | |
<div class="card-description" style="font-size: 16px; color: #ccc; margin-top: 6px;text-align: center;white-space: normal;"> | |
Explore how an AI agent in front of RAG enhances product search experience </div> | |
</div> | |
</a> | |
""", unsafe_allow_html=True) | |
st.markdown(""" | |
</div> | |
""", unsafe_allow_html=True) | |
st.markdown(""" | |
<style> | |
#home-page html, #home-page body, #home-page .main { | |
background: linear-gradient(135deg, #0d0d0d 0%, #1a1a1a 30%, #102132 100%); | |
height: 100vh; | |
overflow: hidden; | |
color: white; | |
} | |
</style> | |
""", unsafe_allow_html=True) | |
st.markdown(""" | |
<style> | |
#home-page html, #home-page body, #home-page .main { | |
background: linear-gradient(135deg, #0d0d0d 0%, #1a1a1a 30%, #102132 100%); | |
height: 100vh; | |
overflow: hidden; | |
color: white; | |
} | |
</style> | |
""", unsafe_allow_html=True) | |