Spaces:
Build error
Build error
""" | |
Try out gradio.Chatinterface. | |
colab gradio-chatinterface. | |
%%writefile reuirements.txt | |
gradio | |
transformers | |
sentencepiece | |
torch | |
""" | |
# pylint: disable=line-too-long, missing-module-docstring, missing-function-docstring | |
# import torch | |
import gradio as gr | |
from examples_list import examples_list | |
from transformers import AutoModel, AutoTokenizer # AutoModelForCausalLM, | |
# device = "cuda" if torch.cuda.is_available() else "cpu" | |
# tokenizer = AutoTokenizer.from_pretrained("stabilityai/StableBeluga2", use_fast=False) | |
# model = AutoModelForCausalLM.from_pretrained("stabilityai/StableBeluga2", torch_dtype=torch.float16, low_cpu_mem_usage=True, device_map="auto") | |
# system_prompt = "### System:\nYou are Stable Beluga, an AI that follows instructions extremely well. Help as much as you can. Remember, be safe, and don't do anything illegal.\n\n" | |
# pipeline = pipeline(task="text-generation", model="meta-llama/Llama-2-7b") | |
_ = """ | |
tokenizer = AutoTokenizer.from_pretrained( | |
"THUDM/chatglm2-6b-int4", trust_remote_code=True | |
) | |
chat_model = AutoModel.from_pretrained( | |
"THUDM/chatglm2-6b-int4", trust_remote_code=True # 3.92G | |
).float() | |
""" | |
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 chat1(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, _ | |
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() | |