Spaces:
Sleeping
Sleeping
import streamlit as st | |
from transformers import GPT2Tokenizer, GPT2LMHeadModel | |
model_path='KhantKyaw/GPT2_chatbot2' | |
tokenizer = GPT2Tokenizer.from_pretrained(model_path) | |
tokenizer.pad_token = tokenizer.eos_token | |
model = GPT2LMHeadModel.from_pretrained(model_path) | |
def generate_response(input_text): | |
input_ids = tokenizer.encode(input_text, return_tensors='pt') | |
output_sequences = model.generate( | |
input_ids=input_ids, | |
max_length=100, | |
temperature=1.0, | |
top_k=50, | |
top_p=0.95, | |
repetition_penalty=1.2, | |
do_sample=True, | |
pad_token_id=tokenizer.eos_token_id, | |
) | |
response_with_prefix = tokenizer.decode(output_sequences[:, input_ids.shape[-1]:][0], skip_special_tokens=True) | |
response_start_idx = response_with_prefix.find("answer: ") | |
if response_start_idx != -1: | |
# Extract everything after "answer: " | |
response = response_with_prefix[response_start_idx + len("answer: "):] | |
else: | |
# If "answer:" is not found in the response, return the whole response | |
response = response_with_prefix | |
return response | |
prompt = st.chat_input(placeholder="Say Something!",key=None, max_chars=None, disabled=False, on_submit=None, args=None, kwargs=None) | |
if prompt: | |
with st.chat_message(name="AI",avatar=None): | |
st.write(generate_response(prompt)) |