Download backend/routes/title.py from Qar-Raz/NLP-RAG: direct link, hf CLI and curl.
- Browser
- Download file 1.52 kB
-
https://huggingface.co/spaces/Qar-Raz/NLP-RAG/resolve/main/backend/routes/title.py
- Command line
-
hf download hf://spaces/Qar-Raz/NLP-RAG/backend/routes/title.py
-
curl -L -o title.py https://huggingface.co/spaces/Qar-Raz/NLP-RAG/resolve/main/backend/routes/title.py
1.52 kB
| from fastapi import APIRouter, HTTPException | |
| from huggingface_hub import InferenceClient | |
| from backend.schemas import TitleRequest, TitleResponse | |
| from backend.services.title import parse_title_model_candidates, title_from_hf, title_from_query | |
| from backend.state import state | |
| router = APIRouter() | |
| def suggest_title(payload: TitleRequest) -> TitleResponse: | |
| query = payload.query.strip() | |
| if not query: | |
| raise HTTPException(status_code=400, detail="Query cannot be empty") | |
| fallback_title = title_from_query(query) | |
| title_client: InferenceClient | None = state.get("title_client") | |
| title_model_ids: list[str] = state.get("title_model_ids", parse_title_model_candidates()) | |
| if title_client is not None: | |
| for title_model_id in title_model_ids: | |
| try: | |
| hf_title = title_from_hf(query, title_client, title_model_id) | |
| if hf_title: | |
| return TitleResponse(title=hf_title, source=f"hf:{title_model_id}") | |
| except Exception as exc: | |
| err_text = str(exc) | |
| if "model_not_supported" in err_text or "not supported by any provider" in err_text: | |
| continue | |
| print(f"Title generation model failed ({title_model_id}): {exc}") | |
| continue | |
| print("Title generation fallback triggered: no title model available/successful") | |
| return TitleResponse(title=fallback_title, source="rule-based") | |