sabahat-shakeel commited on
Commit
9b0d5d6
·
verified ·
1 Parent(s): d3a021c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -12
app.py CHANGED
@@ -47,7 +47,7 @@ from transformers import AutoModelForCausalLM, AutoTokenizer
47
  # Load the model and tokenizer
48
  @st.cache_resource
49
  def load_model_and_tokenizer():
50
- model_name = "microsoft/DialoGPT-medium" # Replace with your chosen model
51
  tokenizer = AutoTokenizer.from_pretrained(model_name)
52
  model = AutoModelForCausalLM.from_pretrained(model_name)
53
  return tokenizer, model
@@ -55,7 +55,7 @@ def load_model_and_tokenizer():
55
  tokenizer, model = load_model_and_tokenizer()
56
 
57
  # Streamlit App
58
- st.title("General Chatbot with Adjustable Answer Length")
59
  st.write("A chatbot powered by an open-source model from Hugging Face.")
60
 
61
  # Initialize the conversation
@@ -65,26 +65,33 @@ if "conversation_history" not in st.session_state:
65
  # Input for user query
66
  user_input = st.text_input("You:", placeholder="Ask me anything...", key="user_input")
67
 
68
- # Slider for setting max response length
69
- max_length = st.slider("Set the maximum response length:", min_value=50, max_value=500, step=50, value=150)
70
 
71
  if st.button("Send") and user_input:
72
- # Append user input to history
73
  st.session_state["conversation_history"].append({"role": "user", "content": user_input})
74
 
75
- # Tokenize and generate response
76
- input_ids = tokenizer.encode(user_input + tokenizer.eos_token, return_tensors="pt")
 
 
 
77
  chat_history_ids = model.generate(
78
- input_ids,
79
- max_length=max_length, # Use the user-specified max length
80
- pad_token_id=tokenizer.eos_token_id
 
 
 
 
81
  )
82
  response = tokenizer.decode(chat_history_ids[:, input_ids.shape[-1]:][0], skip_special_tokens=True)
83
 
84
- # Append model response to history
85
  st.session_state["conversation_history"].append({"role": "assistant", "content": response})
86
 
87
- # Display the conversation
88
  for message in st.session_state["conversation_history"]:
89
  if message["role"] == "user":
90
  st.write(f"**You:** {message['content']}")
 
47
  # Load the model and tokenizer
48
  @st.cache_resource
49
  def load_model_and_tokenizer():
50
+ model_name = "EleutherAI/gpt-neo-2.7B" # Model suited for longer responses
51
  tokenizer = AutoTokenizer.from_pretrained(model_name)
52
  model = AutoModelForCausalLM.from_pretrained(model_name)
53
  return tokenizer, model
 
55
  tokenizer, model = load_model_and_tokenizer()
56
 
57
  # Streamlit App
58
+ st.title("General Chatbot with Detailed Responses")
59
  st.write("A chatbot powered by an open-source model from Hugging Face.")
60
 
61
  # Initialize the conversation
 
65
  # Input for user query
66
  user_input = st.text_input("You:", placeholder="Ask me anything...", key="user_input")
67
 
68
+ # Slider for response length
69
+ max_length = st.slider("Set maximum response length:", min_value=100, max_value=1000, step=50, value=300)
70
 
71
  if st.button("Send") and user_input:
72
+ # Add user query to the conversation
73
  st.session_state["conversation_history"].append({"role": "user", "content": user_input})
74
 
75
+ # Build prompt for the model
76
+ prompt = f"{user_input} Please explain in detail."
77
+ input_ids = tokenizer.encode(prompt + tokenizer.eos_token, return_tensors="pt")
78
+
79
+ # Generate response
80
  chat_history_ids = model.generate(
81
+ input_ids,
82
+ max_length=max_length,
83
+ temperature=0.9,
84
+ top_p=0.9,
85
+ repetition_penalty=1.2,
86
+ pad_token_id=tokenizer.eos_token_id,
87
+ early_stopping=False
88
  )
89
  response = tokenizer.decode(chat_history_ids[:, input_ids.shape[-1]:][0], skip_special_tokens=True)
90
 
91
+ # Add bot response to the conversation
92
  st.session_state["conversation_history"].append({"role": "assistant", "content": response})
93
 
94
+ # Display conversation history
95
  for message in st.session_state["conversation_history"]:
96
  if message["role"] == "user":
97
  st.write(f"**You:** {message['content']}")