Spaces:
Sleeping
Sleeping
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("gradio") | |
install("openpyxl") # Added installation for openpyxl | |
import pandas as pd | |
import gradio as gr | |
from transformers import AutoModel, AutoTokenizer | |
import torch | |
# Load the model and tokenizer from Hugging Face | |
tokenizer = AutoTokenizer.from_pretrained("Alibaba-NLP/gte-multilingual-base", trust_remote_code=True) | |
model = AutoModel.from_pretrained("Alibaba-NLP/gte-multilingual-base", trust_remote_code=True) | |
# Load the dataset containing PEC numbers and names | |
def load_dataset(file_path='PEC_Numbers_and_Names.xlsx'): | |
if os.path.exists(file_path): | |
df = pd.read_excel(file_path) | |
print("File loaded successfully.") | |
print(df.head()) # Print first few rows for debugging | |
else: | |
raise FileNotFoundError(f"File not found: {file_path}") | |
return df | |
# Function to get the name based on the PEC number | |
def get_name(pec_number, df): | |
df['PEC No.'] = df['PEC No.'].str.strip().str.upper() | |
pec_number = pec_number.strip().upper() | |
print(f"Searching for PEC Number: {pec_number}") # Debugging output | |
result = df[df['PEC No.'] == pec_number] | |
if not result.empty: | |
print(f"Found Name: {result.iloc[0]['Name']}") # Debugging output | |
return result.iloc[0]['Name'] | |
else: | |
print("PEC Number not is found.") # Debugging output | |
return "PEC Number not is found." | |
# Function to check if the PEC number is attached | |
def check_pec_number(pec_number, df): | |
df['PEC No.'] = df['PEC No.'].str.strip().str.upper() | |
pec_number = pec_number.strip().upper() | |
if pec_number in df['PEC No.'].values: | |
return "Your PEC Number is NOT Attached." | |
else: | |
return "Your PEC Number is Not Attached." | |
# Combine the functions to create a prediction | |
def predict(pec_number): | |
try: | |
# Load the dataset from the root directory | |
df = load_dataset() | |
name = get_name(pec_number, df) | |
pec_status = check_pec_number(pec_number, df) | |
return f"Your Name Is: {name}\n{pec_status}" # Return name and PEC status | |
except Exception as e: | |
print(f"An error occurred: {e}") | |
return f"Error: {e}" | |
# Build the Gradio interface without the file upload option | |
iface = gr.Interface( | |
fn=predict, | |
inputs=gr.Textbox(lines=1, label="**PEC Number**"), # Bold label for PEC Number | |
outputs=gr.Textbox(label="Your Name Is:"), # Custom label for the output | |
title="PEC Number to Name Lookup", | |
description="Enter a PEC number , Your PEC number is attached with Firm or not" | |
) | |
# Run the Gradio interface | |
if __name__ == "__main__": | |
iface.launch() | |