from functools import cache from gradio_client import Client from pgsoft.pgdate.date_utils import beijing import json from_cache = True @cache def call_ai(service, game, functionality, nlp_command, url, hf_token): calling_start = beijing() print(f"calling ai starts at {calling_start}") try: client = Client( url, hf_token=hf_token, verbose=False, ) res = client.predict( service, game, functionality, nlp_command, # hidden, api_name="/predict", ) except Exception as e: return ( f"{type(e)}, {str(e)}. \nyou may want to make " + "sure your hf_token is correct" ) calling_end = beijing() timecost = calling_end.timestamp() - calling_start.timestamp() print(f"calling ai ends at {calling_end}, costs {timecost:.2f}s") outp = json.loads(res) global from_cache from_cache = False return outp