File size: 2,903 Bytes
823ded0
6feb7ec
 
 
 
 
 
 
 
 
 
 
3b7ef21
6feb7ec
f13a3ca
 
a78f83f
c12ca9b
e403126
a89484e
 
 
 
c68cde2
f27514f
 
a89484e
ba60bd9
 
a89484e
b9b4dd3
c12ca9b
 
a89484e
 
 
ba60bd9
0314451
ba60bd9
a89484e
0314451
c68cde2
ba60bd9
a89484e
c68cde2
ba60bd9
a89484e
c12ca9b
8212ea2
 
 
 
 
 
670eaf6
8212ea2
 
9e57aa8
8212ea2
f27514f
b9b4dd3
f27514f
 
77603ce
a89484e
8212ea2
570d8c2
ba60bd9
 
 
c12ca9b
f27514f
c68cde2
 
570d8c2
 
a89484e
570d8c2
c68cde2
e403126
c12ca9b
e403126
c68cde2
ba60bd9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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 found.")  # Debugging output
        return "PEC Number not 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()