Yara Kyrychenko commited on
Commit
c9a0002
·
1 Parent(s): 87ae1cf
Files changed (1) hide show
  1. app.py +16 -20
app.py CHANGED
@@ -1,5 +1,5 @@
1
  import streamlit as st
2
- #from openai import OpenAI
3
  from together import Together
4
  from datetime import datetime
5
  import time
@@ -22,6 +22,7 @@ st.markdown(
22
 
23
  ### Setting up the session state
24
  def generate_tokens(response):
 
25
  for token in response:
26
  if hasattr(token, 'choices') and token.choices:
27
  content = token.choices[0].delta.content
@@ -39,7 +40,6 @@ def format_personalization(text):
39
  return text
40
 
41
  if 'inserted' not in st.session_state:
42
- ### read in txts
43
  with open('base.txt', 'r') as file:
44
  st.session_state.base_text = file.read()
45
  with open('knowledge.txt', 'r') as file:
@@ -49,9 +49,9 @@ if 'inserted' not in st.session_state:
49
 
50
  # web app state
51
  st.session_state.gotit = False
52
- st.session_state.inserted = 0
53
  st.session_state.submitted = False
54
- st.session_state["model"] = "deepseek-ai/DeepSeek-V3"
 
55
  st.session_state.max_messages = 50
56
  st.session_state.messages = []
57
  st.session_state.user_data = {}
@@ -69,7 +69,6 @@ if 'inserted' not in st.session_state:
69
 
70
  st.session_state.recycling = 0
71
 
72
- # timers
73
  st.session_state.start_time = datetime.now()
74
  st.session_state.convo_start_time = ''
75
 
@@ -77,10 +76,7 @@ if 'p' not in st.query_params:
77
  st.query_params['p'] = 't'
78
 
79
  def setup_messages():
80
- # t = personalization
81
- # k = knowledge
82
- # f = formatting
83
- # n = no chat
84
 
85
  if st.query_params["p"] == "f" or st.query_params["p"] == "n":
86
  st.session_state.system_message = st.session_state.base_text
@@ -92,7 +88,10 @@ def setup_messages():
92
  st.session_state.messages = [{ "role": "system", "content": st.session_state.system_message}]
93
  st.session_state.convo_start_time = datetime.now()
94
 
95
- client = Together(api_key=st.secrets["TOGETHER_API_KEY"])
 
 
 
96
 
97
  ### App interface
98
  with st.sidebar:
@@ -265,28 +264,25 @@ elif prompt := st.chat_input("Ask a question about climate action..."):
265
  {"role": m["role"], "content": m["content"]}
266
  for m in st.session_state.messages
267
  ],
268
- max_tokens=None,
269
- temperature=0.6,
270
- top_p=0.7,
271
- top_k=50,
272
- stop=["<|end▁of▁sentence|>"],
273
  stream=True
274
  )
275
 
276
- response = st.write_stream(generate_tokens(stream))
277
- print(response)
 
 
 
278
  st.session_state.messages.append(
279
  {"role": "assistant", "content": response}
280
  )
281
  except:
282
- st.session_state.max_messages = len(st.session_state.messages)
283
  rate_limit_message = """
284
- Oops! Sorry, I can't talk now. Too many people have used
285
- this service recently.
286
  """
287
  st.session_state.messages.append(
288
  {"role": "assistant", "content": rate_limit_message}
289
  )
 
290
  st.rerun()
291
 
292
  if len(st.session_state.messages) > 10 or st.session_state.max_messages == len(st.session_state.messages):
 
1
  import streamlit as st
2
+ from openai import OpenAI
3
  from together import Together
4
  from datetime import datetime
5
  import time
 
22
 
23
  ### Setting up the session state
24
  def generate_tokens(response):
25
+ # for deepseek
26
  for token in response:
27
  if hasattr(token, 'choices') and token.choices:
28
  content = token.choices[0].delta.content
 
40
  return text
41
 
42
  if 'inserted' not in st.session_state:
 
43
  with open('base.txt', 'r') as file:
44
  st.session_state.base_text = file.read()
45
  with open('knowledge.txt', 'r') as file:
 
49
 
50
  # web app state
51
  st.session_state.gotit = False
 
52
  st.session_state.submitted = False
53
+ st.session_state.inserted = 0
54
+ st.session_state["model"] = "o3-mini-2025-01-31" #"deepseek-ai/DeepSeek-V3"
55
  st.session_state.max_messages = 50
56
  st.session_state.messages = []
57
  st.session_state.user_data = {}
 
69
 
70
  st.session_state.recycling = 0
71
 
 
72
  st.session_state.start_time = datetime.now()
73
  st.session_state.convo_start_time = ''
74
 
 
76
  st.query_params['p'] = 't'
77
 
78
  def setup_messages():
79
+ # t = personalization, k = knowledge, f = formatting, n = no chat
 
 
 
80
 
81
  if st.query_params["p"] == "f" or st.query_params["p"] == "n":
82
  st.session_state.system_message = st.session_state.base_text
 
88
  st.session_state.messages = [{ "role": "system", "content": st.session_state.system_message}]
89
  st.session_state.convo_start_time = datetime.now()
90
 
91
+ if st.session_state.model.startswith("deepseek"):
92
+ client = Together(api_key=st.secrets["TOGETHER_API_KEY"])
93
+ else:
94
+ client = OpenAI(api_key=st.secrets["OPENAI_API_KEY"])
95
 
96
  ### App interface
97
  with st.sidebar:
 
264
  {"role": m["role"], "content": m["content"]}
265
  for m in st.session_state.messages
266
  ],
 
 
 
 
 
267
  stream=True
268
  )
269
 
270
+ if st.session_state.model.startswith("deepseek"):
271
+ response = st.write_stream(generate_tokens(stream))
272
+ else:
273
+ response = st.write_stream(stream)
274
+
275
  st.session_state.messages.append(
276
  {"role": "assistant", "content": response}
277
  )
278
  except:
 
279
  rate_limit_message = """
280
+ An error has occured or you've reached the maximum conversation length. Please submit the conversation.
 
281
  """
282
  st.session_state.messages.append(
283
  {"role": "assistant", "content": rate_limit_message}
284
  )
285
+ st.session_state.max_messages = len(st.session_state.messages)
286
  st.rerun()
287
 
288
  if len(st.session_state.messages) > 10 or st.session_state.max_messages == len(st.session_state.messages):