Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import requests | |
| from huggingface_hub import whoami, hf_hub_download, upload_file | |
| from huggingface_hub.utils import build_hf_headers, hf_raise_for_status | |
| app_script = hf_hub_download(repo_id="whisper-event/whisper-demo", filename="app.py", repo_type="space") | |
| def replace_line(file_name, line_num, text): | |
| lines = open(file_name, 'r').readlines() | |
| lines[line_num] = text | |
| out = open(file_name, 'w') | |
| out.writelines(lines) | |
| out.close() | |
| def duplicate(destination_repo, model_id, token): | |
| try: | |
| _ = whoami(token) | |
| # ^ this will throw if token is invalid | |
| r = requests.post( | |
| "https://huggingface.co/api/spaces/whisper-event/whisper-demo/duplicate", | |
| headers=build_hf_headers(token=token), | |
| json={"repository": destination_repo}, | |
| ) | |
| hf_raise_for_status(r) | |
| repo_url = r.json().get("url") | |
| app_script = hf_hub_download(repo_id="whisper-event/whisper-demo", filename="app.py", repo_type="space") | |
| replace_line(app_script, 7, f"MODEL_NAME = \"{model_id}\"\n") | |
| upload_file( | |
| path_or_fileobj=app_script, | |
| path_in_repo="app.py", | |
| repo_id=destination_repo, | |
| repo_type="space", | |
| token=token | |
| ) | |
| return ( | |
| f'Find your repo <a href=\'{repo_url}\' target="_blank" style="text-decoration:underline">here</a>', | |
| "sp.jpg", | |
| ) | |
| except Exception as e: | |
| return ( | |
| f""" | |
| ### Error 😢😢😢 | |
| {e} | |
| """, | |
| None, | |
| ) | |
| interface = gr.Interface( | |
| fn=duplicate, | |
| inputs=[ | |
| gr.Textbox(placeholder="Destination repository (e.g. username/dst_repo_name)"), | |
| gr.Textbox(placeholder="Model id (e.g. openai/whisper-small)"), | |
| gr.Textbox(placeholder="Write access token", type="password"), | |
| ], | |
| outputs=[ | |
| gr.Markdown(label="output"), | |
| gr.Image(show_label=False), | |
| ], | |
| title="Build your Whisper demo!", | |
| description="Build your Whisper demo! You need to specify a write token obtained in https://hf.co/settings/tokens.", | |
| article="<p>Find your write token at <a href='https://huggingface.co/settings/tokens' target='_blank'>token settings</a></p>", | |
| allow_flagging="never", | |
| live=False, | |
| ) | |
| interface.launch(enable_queue=True) | |