Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from transformers import AutoTokenizer | |
| import json | |
| tokenizer = AutoTokenizer.from_pretrained("HuggingFaceH4/zephyr-7b-beta") | |
| demo_conversation = """[ | |
| {"role": "system", "content": "You are a helpful chatbot."}, | |
| {"role": "user", "content": "Hi there!"}, | |
| {"role": "assistant", "content": "Hello, human!"}, | |
| {"role": "user", "content": "Can I ask a question?"} | |
| ]""" | |
| default_template = """{% for message in messages %} | |
| {{ "<|im_start|>" + message["role"] + "\\n" + message["content"] + "<|im_end|>\\n" }} | |
| {% endfor %} | |
| {% if add_generation_prompt %} | |
| {{ "<|im_start|>assistant\\n" }} | |
| {% endif %}""" | |
| description_text = """### This space is a helper app for writing [Chat Templates](https://huggingface.co/docs/transformers/main/en/chat_templating). | |
| ### When you're happy with the outputs from your template, you can use the code block at the end to add it to a PR!""" | |
| def apply_chat_template(template, test_conversation, add_generation_prompt, cleanup_whitespace): | |
| if cleanup_whitespace: | |
| template = "".join([line.strip() for line in template.split('\n')]) | |
| tokenizer.chat_template = template | |
| outputs = [] | |
| conversation = json.loads(test_conversation) | |
| return tokenizer.apply_chat_template(conversation, tokenize=False, add_generation_prompt=add_generation_prompt) | |
| iface = gr.Interface( | |
| description=description_text, | |
| fn=apply_chat_template, | |
| inputs=[ | |
| gr.TextArea(value=default_template, lines=10, max_lines=30, label="Chat Template"), | |
| gr.TextArea(value=demo_conversation, lines=6, label="Conversation"), | |
| gr.Checkbox(value=False, label="Add generation prompt"), | |
| gr.Checkbox(value=True, label="Cleanup template whitespace"), | |
| ], | |
| outputs=gr.TextArea(label="Formatted conversation")) | |
| iface.launch() | |