MatheusHRV commited on
Commit
666e927
·
verified ·
1 Parent(s): 470d0dc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -7
app.py CHANGED
@@ -2,26 +2,37 @@ import streamlit as st
2
  from transformers import pipeline
3
  from langchain.schema import AIMessage, HumanMessage, SystemMessage
4
 
 
 
 
5
  st.set_page_config(page_title="LangChain Demo", page_icon=":robot:")
6
  st.header("MHRV Chatbot")
7
 
 
8
  if "sessionMessages" not in st.session_state:
9
  st.session_state.sessionMessages = [
10
- SystemMessage(content="You are a customer support chatbot for a website.")
11
  ]
12
 
13
- # Hugging Face model using transformers pipeline
 
 
 
14
  generator = pipeline(
15
  "text-generation",
16
- model="OpenAssistant/oasst-sft-4-pythia-12b",
17
- device=0, # use GPU if available
18
- max_new_tokens=512,
19
- temperature=0
20
  )
21
 
 
 
 
22
  def load_answer(question):
23
  st.session_state.sessionMessages.append(HumanMessage(content=question))
24
 
 
25
  prompt = ""
26
  for msg in st.session_state.sessionMessages:
27
  if isinstance(msg, SystemMessage):
@@ -31,15 +42,21 @@ def load_answer(question):
31
  elif isinstance(msg, AIMessage):
32
  prompt += f"AI: {msg.content}\n"
33
 
34
- output = generator(prompt, max_new_tokens=512, do_sample=True, temperature=0)
 
35
  answer_text = output[0]["generated_text"][len(prompt):].strip()
36
 
 
37
  st.session_state.sessionMessages.append(AIMessage(content=answer_text))
 
38
  return answer_text
39
 
40
  def get_text():
41
  return st.text_input("You: ", key="input")
42
 
 
 
 
43
  user_input = get_text()
44
  submit = st.button("Generate")
45
 
 
2
  from transformers import pipeline
3
  from langchain.schema import AIMessage, HumanMessage, SystemMessage
4
 
5
+ # ------------------------
6
+ # Streamlit UI
7
+ # ------------------------
8
  st.set_page_config(page_title="LangChain Demo", page_icon=":robot:")
9
  st.header("MHRV Chatbot")
10
 
11
+ # Initialize session messages
12
  if "sessionMessages" not in st.session_state:
13
  st.session_state.sessionMessages = [
14
+ SystemMessage(content="You are a helpful customer support chatbot for a website.")
15
  ]
16
 
17
+ # ------------------------
18
+ # Load Hugging Face model (CPU-friendly)
19
+ # ------------------------
20
+ # Using a smaller model for free Spaces CPU plan
21
  generator = pipeline(
22
  "text-generation",
23
+ model="mosaicml/mpt-7b-instruct", # smaller, instruction-tuned, CPU-compatible
24
+ device=-1, # -1 = CPU
25
+ max_new_tokens=256,
26
+ temperature=0.3
27
  )
28
 
29
+ # ------------------------
30
+ # Helper functions
31
+ # ------------------------
32
  def load_answer(question):
33
  st.session_state.sessionMessages.append(HumanMessage(content=question))
34
 
35
+ # Convert session messages to a single prompt string
36
  prompt = ""
37
  for msg in st.session_state.sessionMessages:
38
  if isinstance(msg, SystemMessage):
 
42
  elif isinstance(msg, AIMessage):
43
  prompt += f"AI: {msg.content}\n"
44
 
45
+ # Generate response
46
+ output = generator(prompt, max_new_tokens=256, do_sample=True, temperature=0.3)
47
  answer_text = output[0]["generated_text"][len(prompt):].strip()
48
 
49
+ # Add AI message to session
50
  st.session_state.sessionMessages.append(AIMessage(content=answer_text))
51
+
52
  return answer_text
53
 
54
  def get_text():
55
  return st.text_input("You: ", key="input")
56
 
57
+ # ------------------------
58
+ # Main App
59
+ # ------------------------
60
  user_input = get_text()
61
  submit = st.button("Generate")
62