import os import requests TRANSLATE_API = "https://p9ai-translator.hf.space/api/translate" # Replace with your space URL def translate_remote(state): filename = state.get("filename") text = state.get("text") target_lang = state.get("target_lang") if not target_lang: raise ValueError("translate_remote requires state['target_lang']") data = { "target_lang": target_lang, "start_page": state.get("start_page", 1), "end_page": state.get("end_page", 1), } if text is not None: data["text"] = text if filename is not None: data["filename"] = filename headers = {"Authorization": f"Bearer {os.getenv('HUGGINGFACE_API_TOKEN')}"} path = state.get("temp_files", {}).get(filename) if path: with open(path, "rb") as f: files = {"file": (filename, f, "application/pdf")} resp = requests.post(TRANSLATE_API, files=files, data=data, headers=headers) else: if "text" not in data: raise ValueError("translate_remote requires at least one of: file or text in state") resp = requests.post(TRANSLATE_API, data=data, headers=headers) if resp.status_code != 200: raise RuntimeError(f"Translate API failed: {resp.text}") js = resp.json() state["translation"] = js.get("translation", js) return state