number_to_info / app.py
aryan620501kr's picture
Convert to Gradio app
ab07e92
Raw
History Blame Contribute Delete
1.76 kB
import gradio as gr
import duckdb
PARQUET_URL = "https://huggingface.co/datasets/aryan620501/Inddatainonefile/resolve/main/users_data.parquet"
con = duckdb.connect()
con.execute("INSTALL httpfs; LOAD httpfs;")
con.execute(f"CREATE OR REPLACE VIEW users_view AS SELECT * FROM read_parquet('{PARQUET_URL}')")
print("DuckDB view ready!")
def search_mobile(mobile: str):
if not mobile.strip():
return {"status": "error", "message": "Mobile number daaliye."}
try:
query = """
SELECT mobile, name, fname, address, alt, circle, id, email
FROM users_view
WHERE mobile = ?
LIMIT 1
"""
result = con.execute(query, [str(mobile)]).fetchall()
if not result:
return {"status": "error", "message": f"Mobile number {mobile} nahi mila."}
columns = [desc[0] for desc in con.description]
row_dict = dict(zip(columns, result[0]))
return {"status": "success", "data": row_dict}
except Exception as e:
return {"status": "error", "message": "Query timeout ya process nahi ho payi."}
with gr.Blocks(title="Number to Info", theme=gr.themes.Soft()) as demo:
gr.Markdown("# 📱 Number to Info API")
gr.Markdown("Mobile number daaliye aur info prapt karein.")
with gr.Row():
mobile_input = gr.Textbox(label="Mobile Number", placeholder="Enter mobile number...", scale=3)
search_btn = gr.Button("Search", variant="primary", scale=1)
output = gr.JSON(label="Result")
search_btn.click(fn=search_mobile, inputs=mobile_input, outputs=output)
mobile_input.submit(fn=search_mobile, inputs=mobile_input, outputs=output)
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860)