|
Download docs/api-spec.md from benroshan/Prism: direct link, hf CLI and curl.
- Browser
- Download file 2.1 kB
-
https://huggingface.co/spaces/benroshan/Prism/resolve/main/docs/api-spec.md
- Command line
-
hf download hf://spaces/benroshan/Prism/docs/api-spec.md
-
curl -L -o api-spec.md https://huggingface.co/spaces/benroshan/Prism/resolve/main/docs/api-spec.md
2.1 kB
| # API Specification — Prism | |
| ## Base URL | |
| - Local: `http://localhost:8000` | |
| - Production: `https://prism.onrender.com` (set after deploy) | |
| --- | |
| ## Chat | |
| ### POST /api/chat | |
| **Purpose:** Submit a question; returns answer with sources and eval scores. | |
| **Request:** | |
| ```json | |
| { "question": "What was UPI transaction volume in FY24?" } | |
| ``` | |
| **Response:** | |
| ```json | |
| { | |
| "answer": "India processed over 100 billion UPI transactions in FY2024...", | |
| "sources": [ | |
| { | |
| "content": "chunk text...", | |
| "source": "npci_upi_report_2024.pdf", | |
| "page": 12, | |
| "similarity_score": 0.87, | |
| "bm25_score": 3.42, | |
| "rrf_score": 0.021, | |
| "rerank_score": 4.91 | |
| } | |
| ], | |
| "faithfulness": { "score": 4, "reason": "Answer well-grounded in context." }, | |
| "retrieval_method": "hybrid+rerank" | |
| } | |
| ``` | |
| ### DELETE /api/chat/memory | |
| **Purpose:** Clear conversation history (new conversation). | |
| **Response:** `{ "status": "cleared" }` | |
| --- | |
| ## Upload | |
| ### POST /api/upload | |
| **Purpose:** Upload a document and re-ingest into the corpus. | |
| **Content-Type:** `multipart/form-data` | Field: `file` | |
| **Allowed types:** `.pdf`, `.txt`, `.csv` | Max size: 20MB | |
| **Response:** | |
| ```json | |
| { | |
| "filename": "new_document.pdf", | |
| "chunks_added": 143, | |
| "total_chunks": 990, | |
| "status": "ingested" | |
| } | |
| ``` | |
| **Error:** 422 if file type unsupported. | |
| --- | |
| ## Eval | |
| ### GET /api/eval/session | |
| **Purpose:** Get per-turn faithfulness log for current session. | |
| **Response:** | |
| ```json | |
| [ | |
| { | |
| "query": "...", | |
| "answer": "...", | |
| "faithfulness_score": 4, | |
| "reason": "..." | |
| } | |
| ] | |
| ``` | |
| ### POST /api/eval/precision | |
| **Purpose:** Run batch Precision@K against ground truth pairs. | |
| **Response:** | |
| ```json | |
| { | |
| "mean_precision_at_k": 0.74, | |
| "per_query_results": [...] | |
| } | |
| ``` | |
| ### POST /api/eval/ragas | |
| **Purpose:** Run RAGAS evaluation on last N session QA pairs. | |
| **Request:** `{ "n_pairs": 10 }` | |
| **Response:** | |
| ```json | |
| { | |
| "faithfulness": 0.87, | |
| "answer_relevancy": 0.91, | |
| "context_precision": 0.74, | |
| "context_recall": 0.68, | |
| "per_query": [...] | |
| } | |
| ``` | |
| --- | |
| ## Health | |
| ### GET /health | |
| **Response:** `{ "status": "ok", "version": "2.0.0" }` | |