cafe3310's picture
feat: Implement colored output for thinking tokens
0d2c9df
raw
history blame
970 Bytes
import gradio as gr
from comp import generate_response
# --- Gradio UI ---
with gr.Blocks(css=".thinking { color: gray; font-style: italic; }") as demo:
gr.Markdown("# Ling Playground")
chatbot = gr.Chatbot()
msg = gr.Textbox()
clear = gr.ClearButton([msg, chatbot])
def user(user_message, history):
return "", history + [[user_message, None]]
def bot(history):
user_message = history[-1][0]
history[-1][1] = ""
for response in generate_response(user_message, history[:-1]):
html_response = response.replace("<think>", "<div class='thinking'>")
html_response = html_response.replace("</think>", "</div>")
history[-1][1] = html_response
yield history
msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(
bot, chatbot, chatbot
)
clear.click(lambda: None, None, chatbot, queue=False)
if __name__ == "__main__":
demo.launch()