Spaces:
Sleeping
Sleeping
File size: 2,600 Bytes
64c6e7a dc31ddc 6292c12 ec318c7 64c6e7a a85678b a2142e5 a85678b 6eae396 a85678b a00dd98 a85678b ec318c7 a85678b 64c6e7a a85678b ec318c7 a85678b 46ce815 a01bbdc a85678b 6eae396 a85678b 4c93e49 1d2d749 a85678b 4c93e49 1d2d749 bdedfa4 4c93e49 1d2d749 64c6e7a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
import streamlit as st
from transformers import GPT2Tokenizer, GPT2LMHeadModel
model_name = 'gpt2'
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained(model_name)
special_tokens_dict = {'bos_token': '<BOS>', 'eos_token': '<EOS>', 'sep_token': '<SEP>', 'pad_token': '<PAD>'}
tokenizer.add_special_tokens(special_tokens_dict)
model.resize_token_embeddings(len(tokenizer))
# Function to generate a response
def generate_response(input_text):
# Adjusted input to include the [Bot] marker
#adjusted_input = f"{input_text} [Bot]"
# Encode the adjusted input
inputs = tokenizer(input_text, return_tensors="pt")
# Generate a sequence of text with a slightly increased max_length to account for the prompt length
output_sequences = model.generate(
input_ids=inputs['input_ids'],
attention_mask=inputs['attention_mask'],
max_length=50, # Adjusted max_length
temperature=0.7,
top_k=25,
top_p=0.95,
no_repeat_ngram_size=2,
pad_token_id=tokenizer.eos_token_id,
eos_token_id=tokenizer.eos_token_id,
#early_stopping=True,
do_sample=True
)
# Decode the generated sequence
full_generated_text = tokenizer.decode(output_sequences[0], skip_special_tokens=True)
# Extract the generated response after the [Bot] marker
bot_response_start = full_generated_text.find('[Bot]') + len('[Bot]')
bot_response = full_generated_text[bot_response_start:]
return bot_response
# Load pre-trained model tokenizer (vocabulary) and model
model_name = 'gpt2'
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained(model_name)
st.title("ElapticAI-1a-xchat")
# Initialize chat history
if "messages" not in st.session_state:
st.session_state.messages = []
# Display chat messages from history on app rerun
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
# React to user input
if prompt := st.chat_input("What is up?"):
# Display user message in chat message container
st.chat_message("user").markdown(prompt)
# Add user message to chat history
st.session_state.messages.append({"role": "user", "content": prompt})
response = generate_response(prompt)
# Display assistant response in chat message container
with st.chat_message("assistant"):
st.markdown(response)
# Add assistant response to chat history
st.session_state.messages.append({"role": "assistant", "content": response})
|