Spaces:
Sleeping
Sleeping
| import requests | |
| import json | |
| from datetime import datetime | |
| from zoneinfo import ZoneInfo | |
| import gradio as gr | |
| from gradio_client import Client | |
| from extract import extract | |
| functionality_shared = [ | |
| 'games', | |
| 'greet', | |
| 'tokenization', | |
| ] | |
| game_list = [ | |
| 'angry birds', | |
| 'snake', | |
| ] | |
| functionality_list = [ | |
| "AI", | |
| "functionality", | |
| "json dedup", | |
| "json", | |
| ] | |
| t = datetime.now() | |
| t = t.astimezone(ZoneInfo('Asia/Shanghai')) | |
| print(f"[Beijing]: {t.replace(microsecond=0)}") | |
| t = t.astimezone(ZoneInfo('America/Los_Angeles')) | |
| print(f"[Seattle]: {t.replace(microsecond=0)}") | |
| def run(hf_token, service, game, functionality, nlp_command): | |
| """ | |
| event handler | |
| """ | |
| # reuse hf_token field as json string | |
| token, user_name, redirect, _ = extract(hf_token) | |
| if user_name is None: | |
| user_name = '__fake__' | |
| # redirect all traffic to the proxy sever | |
| space = 'stevez-proxy' | |
| if redirect is not None: | |
| space = redirect | |
| if token is None or token == '': | |
| return 'please specify hf token' | |
| if service not in functionality_shared[1:]: | |
| if game is None: | |
| return "please specify which game" | |
| if functionality is None: | |
| return "please choose the AI functionality" | |
| if functionality == 'AI': | |
| if nlp_command in ["", None]: | |
| return "please make sure the command is not empty" | |
| try: | |
| if service not in functionality_shared[1:]: | |
| pass | |
| client = Client( | |
| f'https://{space}.hf.space', | |
| hf_token=token, | |
| verbose=False, | |
| ) | |
| res = client.predict( | |
| user_name, service, game, functionality, nlp_command, | |
| api_name='/predict', | |
| ) | |
| res2 = json.loads(res[0]) | |
| return json.dumps(res2, indent=4) | |
| except Exception as e: | |
| return f"{type(e)}, {str(e)}. \nyou may want to make sure your hf_token is correct" | |
| demo = gr.Interface( | |
| fn=run, | |
| inputs=[ | |
| "text", | |
| gr.Radio( | |
| functionality_shared, | |
| value=functionality_shared[0], | |
| info = "Shared services", | |
| ), | |
| gr.Radio( | |
| game_list, | |
| value=game_list[1], | |
| info = "Which game you want the AI to support?", | |
| ), | |
| gr.Radio( | |
| functionality_list, | |
| value=functionality_list[0], | |
| # label = "What do you want to do?", | |
| info = "What functionality?", | |
| ), | |
| "text"], | |
| outputs="text", | |
| title = "Demo", | |
| ) | |
| demo.launch() | |