Spaces:
Sleeping
Sleeping
import pandas as pd | |
import gradio as gr | |
# Load your CSV file | |
data = pd.read_csv('course.csv') | |
# Combine TITLE, DESCRIPTION, and CURRICULUM for processing | |
docs = [ | |
{ | |
"content": f"{row['TITLE']}\n{row['DESCRIPTION']}\n{row['CURRICULUM']}", | |
"metadata": {"title": row['TITLE'], "url": row['URL']} | |
} | |
for _, row in data.iterrows() | |
] | |
# Dummy retriever function for search (replace this with your actual search logic) | |
class Retriever: | |
def __init__(self, documents): | |
self.documents = documents | |
def get_relevant_documents(self, query): | |
# A simple search based on query matching the content (you can replace with more advanced logic) | |
results = [] | |
for doc in self.documents: | |
if query.lower() in doc['content'].lower(): | |
results.append(doc) | |
return results | |
# Initialize the retriever with the documents | |
retriever = Retriever(docs) | |
# Define the search function for Gradio interface | |
def smart_search(query): | |
results = retriever.get_relevant_documents(query) | |
response = "" | |
for result in results: | |
title = result['metadata'].get("title", "No Title") | |
url = result['metadata'].get("url", "No URL") | |
response += f"**{title}**\n[Link to Course]({url})\n\n" | |
return response.strip() | |
# Create the Gradio interface | |
interface = gr.Interface( | |
fn=smart_search, | |
inputs="text", | |
outputs="markdown", | |
title="Smart Search for Analytics Vidhya Free Courses", | |
description="Enter a keyword or a query to find relevant free courses on Analytics Vidhya." | |
) | |
# Launch the Gradio app | |
interface.launch(share=True) | |