""" Try out gradio.Chatinterface. colab gradio-chatinterface. %%writefile reuirements.txt gradio transformers sentencepiece torch import gradio as gr def greet(name): return "Hello " + name + "!" with gr.Blocks() as demo: name = gr.Textbox(label="Name") output = gr.Textbox(label="Output Box") greet_btn = gr.Button("Greet") greet_btn.click(fn=greet, inputs=name, outputs=output, api_name="greet") demo.launch() """ # pylint: disable=line-too-long, missing-module-docstring, missing-function-docstring # import torch import gradio as gr def stream_chat(): """samples: Sure [('test me', 'Sure')] Sure, [('test me', 'Sure,')] Sure, I [('test me', 'Sure, I')] Sure, I' [('test me', "Sure, I'")] Sure, I'd [('test me', "Sure, I'd")] """ resp = "" for elm in range(10): resp += str(elm) from time import sleep sleep(0.1) yield elm def chat(message="", history=[]): # prompt = f"{system_prompt}### User: {message}\n\n### Assistant:\n" # inputs = tokenizer(prompt, return_tensors="pt").to(device=device) # output = model.generate(**inputs, do_sample=True, top_p=0.95, top_k=0, max_new_tokens=256) # return tokenizer.decode(output[0], skip_special_tokens=True) _ = """ for response, _ in chat_model.stream_chat( tokenizer, message, history, max_length=2048, top_p=0.7, temperature=0.95 ): yield response """ g = update_chatbot() g.send(None) for response in stream_chat(): # yield response g.send(response) return history def update_chatbot(): while 1: message = yield print(f"{message=}") def greet(name): return "Hello " + name + "!" with gr.Blocks() as block: name = gr.Textbox(label="Name") output = gr.Textbox(label="Output Box") greet_btn = gr.Button("Greet") greet_btn.click(fn=greet, inputs=name, outputs=output, api_name="greet") _ = """ with gr.Blocks(theme=gr.themes.Glass(text_size="sm", spacing_size="sm"),) as block: chatbot = gr.Chatbot() msg = gr.Textbox() # gr.ChatInterface( block( chat, [msg, chatbot], [chatbot], # title="gradio-chatinterface-tryout", # examples=examples_list, ).queue(max_size=2).launch() # """ block.queue(max_size=2).launch()