diff --git a/transcribe_legacy.py b/transcribe_legacy.py index 234bf7b..c59e782 100644 --- a/transcribe_legacy.py +++ b/transcribe_legacy.py @@ -5,6 +5,8 @@ import time import uuid import requests +from requests.adapters import HTTPAdapter +from urllib3.util.retry import Retry from boto3 import client as s3_client from botocore.config import Config from dotenv import load_dotenv @@ -22,6 +24,11 @@ S3_BUCKET = os.getenv("S3_BUCKET") SUBMIT_URL = "https://openspeech.bytedance.com/api/v3/auc/bigmodel/submit" QUERY_URL = "https://openspeech.bytedance.com/api/v3/auc/bigmodel/query" +retry = Retry(total=5, backoff_factor=1, status_forcelist=[500, 502, 503, 504]) +session = requests.Session() +session.mount("http://", HTTPAdapter(max_retries=retry)) +session.mount("https://", HTTPAdapter(max_retries=retry)) + s3 = s3_client( "s3", endpoint_url=S3_ENDPOINT, @@ -116,7 +123,7 @@ body = { }, } -resp = requests.post(SUBMIT_URL, json=body, headers=headers) +resp = session.post(SUBMIT_URL, json=body, headers=headers, timeout=30) logid = resp.headers.get("X-Tt-Logid", "") status = resp.headers.get("X-Api-Status-Code", "") print(f"Submit: {status}") @@ -125,13 +132,14 @@ if status != "20000000": print(f"FAILED: {resp.headers.get('X-Api-Message', '')}") else: while True: - resp = requests.post( + resp = session.post( QUERY_URL, json={}, headers={ **make_headers(task_id), "X-Tt-Logid": logid, }, + timeout=30, ) code = resp.headers.get("X-Api-Status-Code", "") if code == "20000000":