Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import time | |
| import json | |
| from ..globals import Global | |
| from ..models import get_tokenizer | |
| def handle_decode(encoded_tokens_json): | |
| base_model_name = Global.default_base_model_name | |
| try: | |
| encoded_tokens = json.loads(encoded_tokens_json) | |
| if Global.ui_dev_mode: | |
| return f"Not actually decoding tokens in UI dev mode.", gr.Markdown.update("", visible=False) | |
| tokenizer = get_tokenizer(base_model_name) | |
| decoded_tokens = tokenizer.decode(encoded_tokens) | |
| return decoded_tokens, gr.Markdown.update("", visible=False) | |
| except Exception as e: | |
| return "", gr.Markdown.update("Error: " + str(e), visible=True) | |
| def handle_encode(decoded_tokens): | |
| base_model_name = Global.default_base_model_name | |
| try: | |
| if Global.ui_dev_mode: | |
| return f"[\"Not actually encoding tokens in UI dev mode.\"]", gr.Markdown.update("", visible=False) | |
| tokenizer = get_tokenizer(base_model_name) | |
| result = tokenizer(decoded_tokens) | |
| encoded_tokens_json = json.dumps(result['input_ids'], indent=2) | |
| return encoded_tokens_json, gr.Markdown.update("", visible=False) | |
| except Exception as e: | |
| return "", gr.Markdown.update("Error: " + str(e), visible=True) | |
| def tokenizer_ui(): | |
| things_that_might_timeout = [] | |
| with gr.Blocks() as tokenizer_ui_blocks: | |
| with gr.Row(): | |
| with gr.Column(): | |
| encoded_tokens = gr.Code( | |
| label="Encoded Tokens (JSON)", | |
| language="json", | |
| value=sample_encoded_tokens_value, | |
| elem_id="tokenizer_encoded_tokens_input_textbox") | |
| decode_btn = gr.Button("Decode ➡️") | |
| encoded_tokens_error_message = gr.Markdown( | |
| "", visible=False, elem_classes="error-message") | |
| with gr.Column(): | |
| decoded_tokens = gr.Code( | |
| label="Decoded Tokens", | |
| value=sample_decoded_text_value, | |
| elem_id="tokenizer_decoded_text_input_textbox") | |
| encode_btn = gr.Button("⬅️ Encode") | |
| decoded_tokens_error_message = gr.Markdown( | |
| "", visible=False, elem_classes="error-message") | |
| decoding = decode_btn.click( | |
| fn=handle_decode, | |
| inputs=[encoded_tokens], | |
| outputs=[decoded_tokens, encoded_tokens_error_message], | |
| ) | |
| encoding = encode_btn.click( | |
| fn=handle_encode, | |
| inputs=[decoded_tokens], | |
| outputs=[encoded_tokens, decoded_tokens_error_message], | |
| ) | |
| things_that_might_timeout.append(decoding) | |
| things_that_might_timeout.append(encoding) | |
| stop_timeoutable_btn = gr.Button( | |
| "stop not-responding elements", | |
| elem_id="inference_stop_timeoutable_btn", | |
| elem_classes="foot_stop_timeoutable_btn") | |
| stop_timeoutable_btn.click( | |
| fn=None, inputs=None, outputs=None, cancels=things_that_might_timeout) | |
| tokenizer_ui_blocks.load(_js=""" | |
| function tokenizer_ui_blocks_js() { | |
| } | |
| """) | |
| sample_encoded_tokens_value = """ | |
| [ | |
| 15043, | |
| 3186, | |
| 29889 | |
| ] | |
| """ | |
| sample_decoded_text_value = """ | |
| """ | |