import requests class Utils(): @staticmethod def translate(endpoint: str, appkey: str, query: str, from_lang: str = "", to_lang: str = "en") -> str: if not from_lang: from_lang = "chinese" headers = {"Content-Type": "application/json",'Authorization': f"Bearer {appkey}",} payload = {"text": query, "source_lang": from_lang, "target_lang": to_lang} retry_cnt = 3 while retry_cnt: r = requests.post(endpoint, json=payload, headers=headers) result = r.json() errcode = result.get("error_code", "52000") if errcode != "52000": if errcode == "52001" or errcode == "52002": retry_cnt -= 1 continue else: raise Exception(result["error_msg"]) else: break print(result) text = result["result"]["translated_text"] return text @staticmethod def translatByOpenAI(endpoint: str, appkey: str, model: str, prompt: str, query: str) -> str: headers = {"Content-Type": "application/json",'Authorization': f"Bearer {appkey}",} payload = { "model": f"{model}", "messages": [ { "role": "user", "content": f"{prompt} {query}" } ] } response = None retry_cnt = 3 while retry_cnt: response = requests.post(endpoint, json=payload, headers=headers) if response.status_code == 200: break else: print(f"请求失败,状态码: {response.status_code}, 错误信息: {response.text}") retry_cnt -= 1 continue if retry_cnt == 0: return "Call API failed,Please retry again later!" result = response.json()['choices'][0]['message']['content'] return result