File size: 1,668 Bytes
3d568b7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import pandas as pd

PARQUET_FILE = 'data.parquet'

preset_values = [
    "1girl, kamado nezuko, kimetsu no yaiba",
    "1girl, kanroji mitsuri, kimetsu no yaiba",
    "1girl, fern (sousou no frieren), sousou no frieren",
    "1girl, elaina (majo no tabitabi), majo no tabitabi"
]

def search_parquet(search_term):
    try:
        df = pd.read_parquet(PARQUET_FILE)
        if search_term.strip():
            search_results = df[df['teks'].str.lower().str.contains(search_term.lower(), na=False)]
        else:
            search_results = df[df['teks'].str.lower().str.contains("|".join(preset_values).lower(), na=False)]
        if len(search_results.columns) > 12:
            search_results = search_results.iloc[:, :12]
        return search_results
    except FileNotFoundError:
        return pd.DataFrame({'Error': ['Parquet file not found. Please check the file path.']})
    except Exception as e:
        return pd.DataFrame({'Error': [f'An error occurred: {e}']})

if __name__ == "__main__":
    with gr.Blocks() as app:
        gr.Markdown("## πŸ” Text Search for Animagine tag characters")
        with gr.Column():
            search_input = gr.Textbox(
                label="Search for characters or series:",
                placeholder="sousou no frieren",
            )
            search_output = gr.Dataframe(
                label="Search Results",
                value=pd.DataFrame({'Characters tag': preset_values}),
                headers="auto",
            )

        search_input.change(
            fn=search_parquet,
            inputs=search_input,
            outputs=search_output,
        )

    app.launch()