| 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, |
| 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 |
|
|