vsrinivas's picture
Update app.py
669934f
Raw History Blame
1.96 kB
from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch
# model = "tiiuae/falcon-40b-instruct"
model = "tiiuae/falcon-7b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model, offload_folder="offload", offload_state_dict = True, )
pipeline = transformers.pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
# torch_dtype=torch.bfloat16,
trust_remote_code=True,
device_map="auto",
)
def format_chat_prompt(message, chat_history):
prompt = ""
for turn in chat_history:
user_message, bot_message = turn
prompt = f"{prompt}\nUser: {user_message}\nAssistant: {bot_message}"
prompt = f"{prompt}\nUser: {message}\nAssistant:"
return prompt
def respond(message, chat_history):
formatted_prompt = format_chat_prompt(message, chat_history)
# print(formatted_prompt)
bot_message = generate_seqs(prompt = formatted_prompt,
max_new_tokens=1024,
stop_sequence=["\nUser:", "<|endoftext|>"]).split('Assistant: ')[-1]
chat_history.append((message, bot_message))
return "", chat_history
def generate_seqs(prompt, max_new_tokens=None, stop_sequence=None):
output = pipeline(prompt,
max_length=200,
max_new_tokens = max_new_tokens,
stop_sequence = stop_sequence,
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id)
return output[0]['generated_text']
with gr.Blocks() as demo:
chatbot = gr.Chatbot(height=240) #just to fit the notebook
msg = gr.Textbox(label="Prompt")
btn = gr.Button("Submit")
clear = gr.ClearButton(components=[msg, chatbot], value="Clear console")
btn.click(respond, inputs=[msg, chatbot], outputs=[msg, chatbot])
msg.submit(respond, inputs=[msg, chatbot], outputs=[msg, chatbot]) #Press enter to submit
demo.launch()