import gradio as gr from huggingface_hub import InferenceClient client = InferenceClient() # Phi 3 model_phi_3 = "microsoft/Phi-3.5-mini-instruct" def fn_phi_3( prompt, history, system_prompt, max_tokens, temperature, top_p, ): # With System Prompt messages = [{"role": "system", "content": system_prompt}] history.append(messages[0]) messages.append({"role": "user", "content": prompt}) history.append(messages[1]) # Without System Prompt #messages = [{"role": "user", "content": prompt}] #history.append(messages[0]) stream = client.chat.completions.create( model = model_phi_3, messages = history, max_tokens = max_tokens, temperature = temperature, top_p = top_p, stream = True, ) chunks = [] for chunk in stream: chunks.append(chunk.choices[0].delta.content or "") yield "".join(chunks) app_phi_3 = gr.ChatInterface( fn = fn_phi_3, type = "messages", additional_inputs = [ gr.Textbox(value="You are a helpful assistant.", label="System Prompt"), gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max Tokens"), gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"), gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-P"), ], title = "Microsoft Phi 3", description = model_phi_3, ) # Phi 4 model_phi_4 = "microsoft/phi-4" def fn_phi_4( prompt, history, system_prompt, max_tokens, temperature, top_p, ): # With System Prompt messages = [{"role": "system", "content": system_prompt}] history.append(messages[0]) messages.append({"role": "user", "content": prompt}) history.append(messages[1]) # Without System Prompt #messages = [{"role": "user", "content": prompt}] #history.append(messages[0]) stream = client.chat.completions.create( model = model_phi_4, messages = history, max_tokens = max_tokens, temperature = temperature, top_p = top_p, stream = True, ) chunks = [] for chunk in stream: chunks.append(chunk.choices[0].delta.content or "") yield "".join(chunks) app_phi_4 = gr.ChatInterface( fn = fn_phi_4, type = "messages", additional_inputs = [ gr.Textbox(value="You are a helpful assistant.", label="System Prompt"), gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max Tokens"), gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"), gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-P"), ], title = "Microsoft Phi 4", description = model_phi_4, ) app = gr.TabbedInterface( [app_phi_3, app_phi_4], ["Phi 3", "Phi 4"] ).launch()