aelsaeed's picture
Update app.py
062b083 verified
raw
history blame
1.34 kB
import joblib
import gradio as gr
import numpy as np
# =========================
# تحميل البيانات
# =========================
books = joblib.load("books.pkl")
theses = joblib.load("Theses.pkl")
books_emb = joblib.load("books_embeddings.pkl")
theses_emb = joblib.load("theses_embeddings.pkl")
# =========================
# مثال دالة بحث بسيطة
# =========================
from sklearn.metrics.pairwise import cosine_similarity
def search_library(query_embedding, top_k=5):
# دمج كل Embeddings
all_emb = np.vstack([books_emb, theses_emb])
similarity = cosine_similarity([query_embedding], all_emb)[0]
top_indices = similarity.argsort()[-top_k:][::-1]
results = []
for idx in top_indices:
if idx < len(books):
results.append(books[idx])
else:
results.append(theses[idx - len(books)])
return results
# =========================
# واجهة Gradio
# =========================
def search_interface(query_embedding):
return search_library(query_embedding)
demo = gr.Interface(
fn=search_interface,
inputs=gr.inputs.Dataframe(), # هنا ممكن تغيّري حسب نوع المدخل
outputs="text",
title="Library Search",
description="بحث في مكتبة الكتب والرسائل"
)
demo.launch()