File size: 2,164 Bytes
823ded0
 
 
 
 
 
 
 
 
 
 
 
 
 
03a4c5e
 
f13a3ca
 
 
03a4c5e
f13a3ca
 
68b29f4
f13a3ca
9e57aa8
 
 
 
bf33cf7
e403126
68b29f4
 
 
 
 
 
e403126
 
 
03a4c5e
e403126
68b29f4
e403126
68b29f4
e403126
 
9e57aa8
80e0122
e403126
 
 
 
 
 
 
 
 
 
 
 
 
68b29f4
 
 
 
 
 
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
# 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 the necessary libraries
from transformers import AutoModel, AutoTokenizer
import torch
from torch.utils.data import DataLoader, Dataset
from sklearn.model_selection import train_test_split
import pandas as pd
import gradio as gr
import os

# Load the pre-trained model and tokenizer
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)

# Function to load the dataset
def load_dataset():
    # Use the uploaded file path
    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.")
    
    df = pd.read_excel(file_path)  # Load the Excel file
    print("Columns in the dataset:", df.columns.tolist())
    return df

# Function to search by name and return the PEC number
def search_by_name(name, df):
    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."

# Gradio interface
def build_interface():
    df = load_dataset()  # Load your dataset
    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__":
    try:
        iface = build_interface()
        iface.launch()
    except FileNotFoundError as e:
        print(str(e))