Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import pickle | |
| import faiss | |
| from sentence_transformers import SentenceTransformer | |
| # Load SBERT model | |
| model = SentenceTransformer("sentence-transformers/all-mpnet-base-v2") | |
| # Load passages + FAISS index from prebuilt file | |
| with open("sbert_index.pkl", "rb") as f: | |
| data = pickle.load(f) | |
| passages = data["passages"] | |
| index = data["index"] | |
| def sbert_search(query, k=10): | |
| query_embedding = model.encode([query]) | |
| distances, indices = index.search(query_embedding, k) | |
| results = [passages[i] for i in indices[0]] | |
| return "\n\n".join(results) | |
| # Gradio UI | |
| demo = gr.Interface( | |
| fn=sbert_search, | |
| inputs=gr.Textbox(label="Enter your query"), | |
| outputs=gr.Textbox(label="Top results"), | |
| title="SBERT Semantic Search", | |
| description="Search 10,000 MS MARCO passages using SBERT + FAISS" | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |