Spaces:
Sleeping
Sleeping
Download app.py from Prince-2025/All-Models: direct link, hf CLI and curl.
- Browser
- Download file 1.49 kB
-
https://huggingface.co/spaces/Prince-2025/All-Models/resolve/main/app.py
- Command line
-
hf download hf://spaces/Prince-2025/All-Models/app.py
-
curl -L -o app.py https://huggingface.co/spaces/Prince-2025/All-Models/resolve/main/app.py
1.49 kB
| from youtube_transcript_api import YouTubeTranscriptApi, NoTranscriptFound, TranscriptsDisabled, CouldNotRetrieveTranscript, TranslationLanguageNotAvailable, NotTranslatable | |
| from fastapi import FastAPI | |
| from pydantic import BaseModel | |
| from functools import lru_cache | |
| import pandas as pd | |
| import faiss | |
| from sentence_transformers import SentenceTransformer | |
| import logging | |
| logging.basicConfig(level=logging.INFO) | |
| app = FastAPI() | |
| class SearchRequest(BaseModel): | |
| query: str | |
| top_k: int = 3 | |
| def load_model(): | |
| return SentenceTransformer('model/BGE-Medico-Model') | |
| def load_index(): | |
| return faiss.read_index('model/device_index.faiss') | |
| def load_data(): | |
| return pd.read_csv('model/Final_devices.csv') | |
| def search_device(request: SearchRequest): | |
| df = load_data() | |
| model = load_model() | |
| index = load_index() | |
| cols = ['name', 'definition', 'instructions'] | |
| query = request.query | |
| top_k = request.top_k | |
| if query.isdigit(): | |
| results = df[cols][df["code"] == int(query)] | |
| if not results.empty: | |
| return {"results": results.to_dict(orient="records")} | |
| query_vec = model.encode([query]) | |
| D, I = index.search(query_vec, top_k) | |
| results = [df.iloc[idx][cols].to_dict() for idx in I[0]] | |
| return {"results": results} | |
| def root(): | |
| return {"message": "MedInstruct, Youtube Transcript Search API is running"} | |