Spaces:
Running
Running
import re | |
import gradio as gr | |
from huggingface_hub import InferenceClient | |
client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1") | |
system_instructions = """<s> [INST] You will be provided with text, and your task is to translate it into emojis. DO NOT USE ANY REGULAR TEXT. Do your best with emojis only. Translate this text: """ | |
def generate_translation(prompt): | |
generate_kwargs = dict( | |
temperature=0.5, | |
max_new_tokens=1024, | |
top_p=0.95, | |
repetition_penalty=1.0, | |
do_sample=True, | |
seed=42, | |
) | |
formatted_prompt = system_instructions + prompt + "[/INST]" | |
stream = client.text_generation( | |
formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False) | |
output = "" | |
for response in stream: | |
output += response.token.text | |
emoji_pattern = r"[^\u0021-\u007E\u00A0-\uD7FF\uE000-\uFDCF\uFF00-\uFFEF\u10000-\u10FFFF\u0300-\u036F\u1F00-\u1F1F\u1F20-\u1F7F\u2600-\u26FF\u2700-\u27BF]+?" | |
filtered_output = re.findall(emoji_pattern, output) | |
return ''.join(filtered_output).replace(" ", "").replace("\n", "") | |
system_instructions_emoji_input = """<s> [INST] You will be provided with emojis, and your task is to create a short story from it. DO NOT USE ANY EMOJIS. Do your best with text only. Translate this emojis: """ | |
def generate_emoji_translation(prompt): | |
generate_kwargs = dict( | |
temperature=0.5, | |
max_new_tokens=1024, | |
top_p=0.95, | |
repetition_penalty=1.0, | |
do_sample=True, | |
seed=42, | |
) | |
formatted_prompt = system_instructions_emoji_input + prompt + "[/INST]" | |
stream = client.text_generation( | |
formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False) | |
output = "" | |
for response in stream: | |
output += response.token.text | |
yield output.rsplit("<", 1)[0] | |
return output.rsplit("<", 1)[0] | |
with gr.Blocks() as demo: | |
gr.HTML(""" | |
<center><h1>Emoji Translator π€π»</h1> | |
<h3>Translate any text into emojis, and vice versa!</h3> | |
</center> | |
""") | |
gr.Markdown(""" | |
# Text to Emoji πβ‘οΈπ» | |
""") | |
with gr.Row(): | |
text_uesr_input = gr.Textbox(label="Enter text π") | |
output = gr.Textbox(label="Translation") | |
with gr.Row(): | |
translate_btn = gr.Button("Translate π") | |
translate_btn.click(fn=generate_translation, inputs=text_uesr_input, | |
outputs=output, api_name="translate_text") | |
gr.Markdown(""" | |
# Emoji to Text π»β‘οΈπ | |
""") | |
with gr.Row(): | |
emoji_user_input = gr.Textbox(label="Enter emojis π€") | |
output = gr.Textbox(label="Translation") | |
with gr.Row(): | |
translate_btn = gr.Button("Translate π") | |
translate_btn.click(fn=generate_emoji_translation, inputs=emoji_user_input, | |
outputs=output, api_name="translate_emojis") | |
if __name__ == "__main__": | |
demo.launch(show_api=False) | |