Spaces:
Sleeping
Sleeping
# Install necessary libraries | |
import os | |
import subprocess | |
# Function to install a package if it is not already installed | |
def install(package): | |
subprocess.check_call([os.sys.executable, "-m", "pip", "install", package]) | |
# Ensure the necessary packages are installed | |
install("transformers") | |
install("torch") | |
install("pandas") | |
install("scikit-learn") | |
install("gradio") | |
import os | |
import pandas as pd | |
import gradio as gr | |
from transformers import AutoModel, AutoTokenizer | |
# Load the pre-trained model and tokenizer | |
def load_model_and_tokenizer(): | |
try: | |
model = AutoModel.from_pretrained("Alibaba-NLP/gte-multilingual-base", trust_remote_code=True) | |
tokenizer = AutoTokenizer.from_pretrained("Alibaba-NLP/gte-multilingual-base", trust_remote_code=True) | |
return model, tokenizer | |
except Exception as e: | |
print(f"Error loading model or tokenizer: {e}") | |
return None, None | |
# Function to load the dataset | |
def load_dataset(): | |
file_path = "Valid-part-2.xlsx" | |
if not os.path.exists(file_path): | |
raise FileNotFoundError(f"Dataset not found. Please ensure that '{file_path}' exists.") | |
try: | |
df = pd.read_excel(file_path) | |
print("Columns in the dataset:", df.columns.tolist()) | |
return df | |
except Exception as e: | |
print(f"Error loading dataset: {e}") | |
return None | |
# Function to search by name and return the PEC number | |
def search_by_name(name, df): | |
if df is None: | |
return "Error: Dataset not loaded." | |
try: | |
name_matches = df[df['name'].str.contains(name, case=False, na=False)] | |
if not name_matches.empty: | |
return f"Your PEC number: {name_matches['PEC number'].values[0]}" | |
else: | |
return "No matches found for your name." | |
except Exception as e: | |
return f"Error during search: {e}" | |
# Gradio interface | |
def build_interface(): | |
df = load_dataset() # Load your dataset | |
if df is None: | |
return None | |
iface = gr.Interface( | |
fn=lambda name: search_by_name(name, df), | |
inputs=gr.Textbox(label="Please write your Name"), | |
outputs=gr.Textbox(label="Your PEC number"), | |
title="PEC Number Lookup", | |
description="Enter your name to find your PEC number." | |
) | |
return iface | |
# Main function to run the Gradio app | |
if __name__ == "__main__": | |
model, tokenizer = load_model_and_tokenizer() | |
if model is None or tokenizer is None: | |
print("Failed to load model or tokenizer. Exiting.") | |
else: | |
iface = build_interface() | |
if iface is not None: | |
iface.launch() | |
else: | |
print("Failed to build interface due to dataset issues.") | |