test2 / app.py
anezatra2's picture
Update app.py
334ee5b verified
raw
history blame contribute delete
No virus
2.96 kB
from peft import AutoPeftModelForCausalLM
from transformers import GenerationConfig
from transformers import AutoTokenizer
import torch
import streamlit as st
from streamlit_chat import message
import os
os.system("pip install peft bitsandbytes")
st.session_state.clicked=True
def process_data_sample(example):
processed_example = "<|system|>\n You are a support chatbot who helps with user queries chatbot who always responds in the style of a professional.</s>\n<|user|>\n" + example + "</s>\n<|assistant|>\n"
return processed_example
@st.cache_resource(show_spinner=True)
def create_bot():
tokenizer = AutoTokenizer.from_pretrained("Vasanth/zephyr-support-chatbot")
model = AutoPeftModelForCausalLM.from_pretrained(
"Vasanth/zephyr-support-chatbot",
low_cpu_mem_usage=True,
return_dict=True,
torch_dtype=torch.float16,
device_map="cuda"
)
generation_config = GenerationConfig(
do_sample=True,
temperature=0.5,
max_new_tokens=256,
pad_token_id=tokenizer.eos_token_id
)
return model, tokenizer, generation_config
model, tokenizer, generation_config = create_bot()
bot = create_bot()
def infer_bot(prompt):
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, generation_config=generation_config)
out_str = tokenizer.decode(outputs[0], skip_special_tokens=True).replace(prompt, '')
return out_str
def display_conversation(history):
for i in range(len(history["assistant"])):
message(history["user"][i], is_user=True, key=str(i) + "_user")
message(history["assistant"][i],key=str(i))
def main():
st.title("Support Member πŸ“šπŸ€–")
st.subheader("A bot created using Zephyr which was finetuned to possess the capabilities to be a support member")
user_input = st.text_input("Enter your query")
if "assistant" not in st.session_state:
st.session_state["assistant"] = ["I am ready to help you"]
if "user" not in st.session_state:
st.session_state["user"] = ["Hey there!"]
if st.session_state.clicked:
if st.button("Answer"):
answer = infer_bot(user_input)
st.session_state["user"].append(user_input)
st.session_state["assistant"].append(answer)
if st.session_state["assistant"]:
display_conversation(st.session_state)
if __name__ == "__main__":
main()