Spaces:
Sleeping
Sleeping
| 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() | |