Spaces:
Sleeping
Sleeping
| 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 |