rxhulshxrmx's picture
Update app.py
43d9a47 verified
import gradio as gr
import pandas as pd
from course_search import CourseSearchSystem
# Initialize the search system
df = pd.read_csv('course_data.csv')
search_system = CourseSearchSystem()
search_system.load_and_prepare_data(df)
def search_courses(query: str, num_results: int) -> str:
"""Search function for Gradio interface"""
if not query.strip():
return "How Can We help you?"
return search_system.search_courses(query, top_k=num_results)
# Custom CSS for better spacing while maintaining visibility
custom_css = """
.gradio-container {
padding: 2rem !important;
}
.footer {
margin-top: 4rem;
text-align: center;
font-size: 1.1em;
}
.title {
margin-bottom: 2rem !important;
text-align: center;
}
.search-box {
margin: 1.5rem 0 !important;
}
.results-container {
margin-top: 2rem !important;
padding: 1rem !important;
background: rgba(0, 0, 0, 0.05);
border-radius: 8px;
}
"""
# Create Gradio interface with improved spacing and visibility
with gr.Blocks(css=custom_css, title="Analytics Vidhya Course Search") as iface:
gr.Markdown(
"""
# Analytics Vidhya Free Course Search
Find the perfect free course from Analytics Vidhya's collection using natural language search.
Simply describe what you're looking for!
""",
elem_classes="title"
)
with gr.Row():
with gr.Column():
query_input = gr.Textbox(
label="What would you like to learn?",
placeholder="E.g., 'Assault' or 'Battery' or 'Copyright Infringement'",
lines=2,
elem_classes="search-box"
)
with gr.Row():
num_results = gr.Slider(
minimum=1,
maximum=10,
value=3,
step=1,
label="Number of results to show"
)
search_button = gr.Button(
"🔍 Search Courses",
variant="primary",
scale=0.4,
size="lg"
)
# Results section
output = gr.Markdown(
label="Search Results",
elem_classes="results-container"
)
# Footer
gr.Markdown(
"""
---
Made with Sentence Transformers and Gradio
""",
elem_classes="footer"
)
# Set up the click event
search_button.click(
fn=search_courses,
inputs=[query_input, num_results],
outputs=output
)
if __name__ == "__main__":
iface.launch(
share=False,
debug=False,
show_api=False,
show_error=False
)