import os import requests from litellm import completion def deepl_translate(text, source="JA", target="EN"): api_key = os.getenv("DEEPL_API_KEY") if not api_key: raise RuntimeError("DEEPL_API_KEY is not set") endpoint = "https://api-free.deepl.com/v2/translate" params = { "auth_key": api_key, "text": text, "source_lang": source, "target_lang": target, } res = requests.post(endpoint, data=params) res.raise_for_status() return res.json()["translations"][0]["text"] def llm_translate(text, source="JA", target="EN", model="openai/gpt-4o-mini"): prompt = f"Translate the following text from {source} to {target}:\n{text}" res = completion( model=model, messages=[{"role": "user", "content": prompt}] ) return res.choices[0].message["content"] def translate(text, source="JA", target="EN", method="deepl"): if method == "deepl": return deepl_translate(text, source, target) elif method == "llm": return llm_translate(text, source, target) else: raise ValueError("method must be 'deepl' or 'llm'")