import os import aiohttp from dotenv import load_dotenv from urllib.parse import urlencode load_dotenv() async def query_rag_api(question): """ Asynchronously query the RAG model via Streamlit endpoint. Args: question (str): The user's question. Returns: dict: Answer, contexts, or error message. Note: Replace API_ENDPOINT with your Space's URL (e.g., https://.hf.space) after deployment. """ # Placeholder - REPLACE with your Space's URL API_ENDPOINT = "https://huggingface.co/spaces/samim2024/testing" params = {"query": question} url = f"{API_ENDPOINT}?{urlencode(params)}" try: async with aiohttp.ClientSession() as session: async with session.get(url, timeout=10) as response: response_dict = await response.json() if response_dict.get("error"): return {"error": response_dict["error"], "answer": "", "contexts": []} return { "answer": response_dict.get("answer", ""), "contexts": response_dict.get("contexts", []) } except Exception as e: return {"error": f"Query failed: {str(e)}", "answer": "", "contexts": []}