File size: 1,468 Bytes
bbe3ef7
 
 
947145e
 
bbe3ef7
4509063
 
bbe3ef7
 
 
3d7663e
bbe3ef7
 
3d7663e
eaa34ca
bbe3ef7
76faeb1
43caee5
76faeb1
 
 
43caee5
76faeb1
43caee5
76faeb1
 
 
bbe3ef7
76faeb1
 
 
 
 
bbe3ef7
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import gradio as gr

def generate_chatml(user_messages, assistant_messages):
    user_messages = user_messages.split("\n")
    assistant_messages = assistant_messages.split("\n")
    max_messages = max(len(user_messages), len(assistant_messages))

    chatml = ""
    
    for i in range(max_messages):
        if i < len(user_messages) and user_messages[i].strip():
            chatml += f"<|im_start|>user\n{user_messages[i].strip()}\n<|im_end|>\n"
        
        if i < len(assistant_messages) and assistant_messages[i].strip():
            chatml += f"<|im_start|>assistant\n{assistant_messages[i].strip()}\n<|im_end|>\n"
    return chatml[17:-11]

with gr.Blocks() as demo:
    gr.Markdown("# ChatML Template Generator\n## This will generate a prompt for you to enter to ChatGPT.\n### There should be one more item in the user field for it to work.")
    
    with gr.Row():
        with gr.Column():
            user_input = gr.Textbox(label="User Messages (one per line)", lines=10, value="I love you!\nI love that for you.")
        with gr.Column():
            assistant_input = gr.Textbox(label="Assistant Messages (one per line)", lines=10, value="I love my car.")
    
    generate_btn = gr.Button("Generate ChatML")
    output = gr.Textbox(label="Generated ChatML", lines=20)
    
    generate_btn.click(
        generate_chatml, 
        inputs=[user_input, assistant_input], 
        outputs=output
    )

if __name__ == "__main__":
    demo.launch()