masterllm / utilities /translator.py
redhairedshanks1's picture
Upload 23 files
bf45da8
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