# ЁЯУб API Reference & Schema Specification ## Base URL - **Local**: `http://localhost:7860` - **Hugging Face Space**: `https://ansh123456789-ragingoa.hf.space` --- ## ЁЯЪА Endpoints ### 1. `POST /query` Execute end-to-end Voice RAG query. Supports multipart audio file upload or JSON/form text bypass. #### Request Form / JSON Parameters: - `file` (*optional*, `UploadFile`): Audio file (`.wav`, `.mp3`, `.ogg`, `.webm`, `.m4a`). - `text` (*optional*, `string`): Text query string for fast-path processing. - `language_hint` (*optional*, `string`): ISO language code (e.g. `en`, `hi`, `ta`, `mr`) or `auto`. - `cross_lingual` (*optional*, `boolean`, default: `false`): Enable cross-lingual retrieval across all indexed languages. - `bypass_cache` (*optional*, `boolean`, default: `false`): Force cold retrieval by skipping semantic cache. #### Sample Request (`curl`): ```bash curl -X POST http://localhost:7860/query \ -H "Content-Type: application/json" \ -d '{"text": "What is the capital of France?", "language_hint": "en"}' ``` #### Sample Response (`JSON`): ```json { "query": "What is the capital of France?", "transcript": "What is the capital of France?", "language_detected": "en", "answer": "Paris is the capital and most populous city of France.", "answer_source": "extractive", "retrieved_chunks": [ { "chunk_id": "en_passage_4821", "text": "Paris is the capital and most populous city of France...", "source_lang": "en", "chunk_strategy": "passage_native", "dense_score": 0.8841, "bm25_score": 12.45, "final_score": 0.8912, "contributing_strategies": ["passage_native", "sentence_window"], "metadata": {} } ], "guardrail_flags": { "unsafe_detected": false, "unsafe_reason": null, "intent_detected": false, "intent_type": null, "intent_reason": null, "off_topic_detected": false, "off_topic_distance": 0.1245, "off_topic_reason": null, "safety_model_failed": false, "model_failed": false, "grounding_passed": true, "grounding_score": 0.9421, "grounding_reason": "Grounded with high lexical and semantic overlap.", "decline_reason_code": null }, "stage_timings": [ {"stage": "stt_transcription", "ms": 0.0, "success": true, "fallback_used": false, "details": "Text bypass"}, {"stage": "language_routing", "ms": 0.12, "success": true, "fallback_used": false, "details": "Routed to 'en'"}, {"stage": "pre_retrieval_safety_guardrail", "ms": 0.84, "success": true, "fallback_used": false, "details": "Passed regex and prompt-guard"}, {"stage": "query_intent_guardrail", "ms": 0.21, "success": true, "fallback_used": false, "details": "Factual intent"}, {"stage": "query_embedding", "ms": 6.18, "success": true, "fallback_used": false, "details": "ONNX INT8 E5"}, {"stage": "pre_retrieval_topic_guardrail", "ms": 0.41, "success": true, "fallback_used": false, "details": "On-topic (dist: 0.1245)"}, {"stage": "vector_retrieval_and_merge", "ms": 0.89, "success": true, "fallback_used": false, "details": "FAISS HNSW + RRF"}, {"stage": "generation", "ms": 8.42, "success": true, "fallback_used": false, "details": "TextRank + SVD Energy Synthesis"}, {"stage": "post_generation_grounding_guardrail", "ms": 0.31, "success": true, "fallback_used": false, "details": "Grounded"} ], "retrieval_ms": 7.89, "total_ms": 17.38 } ``` --- ### 2. `POST /tts` Synthesize spoken audio from text using Sarvam AI Bulbul TTS. #### Request Body (`JSON`): ```json { "text": "рдирдорд╕реНрддреЗ, рдореИрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ?", "target_language": "hi", "speaker": "anushka", "pace": 1.0 } ``` #### Response (`JSON`): ```json { "audio_base64": "", "format": "audio/wav", "sarvam": true, "language": "hi-IN", "speaker": "anushka" } ``` --- ### 3. `GET /health` System health check reporting loaded indexes, centroids, active languages, and guardrail statuses. #### Response (`JSON`): ```json { "status": "healthy", "configured_languages": ["en", "hi", "ta", "mr"], "embedding_model": "intfloat/multilingual-e5-small", "indexes_loaded": { "passage_native": 148545, "semantic_longdoc": 309 }, "centroids_available": ["en", "hi", "mr", "global"], "allow_network_calls": false, "sarvam_stt_configured": true, "sarvam_tts_configured": true, "semantic_answer_cache_configured": true, "request_timeout_seconds": 15.0, "query_intent_filter_enabled": true } ``` --- ### 4. `GET /languages` Returns metadata, scripts, and MS MARCO source mappings for active languages.