|
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() |