Engineer / app.py
atifsial123's picture
Update app.py
a78f83f verified
raw
history blame
2.7 kB
# 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.")