XThomasBU commited on
Commit
28ba961
1 Parent(s): 3cc0ca9

chat setting fix

Browse files
Files changed (2) hide show
  1. code/main.py +18 -23
  2. code/modules/chat/helpers.py +5 -0
code/main.py CHANGED
@@ -17,6 +17,7 @@ from modules.chat.helpers import (
17
  get_sources,
18
  get_history_chat_resume,
19
  get_history_setup_llm,
 
20
  )
21
  import copy
22
  from typing import Optional
@@ -55,7 +56,7 @@ class Chatbot:
55
  """
56
  self.config = config
57
 
58
- def _load_config(self):
59
  """
60
  Load the configuration from a YAML file.
61
  """
@@ -267,7 +268,7 @@ class Chatbot:
267
  rename_dict = {"Chatbot": "AI Tutor"}
268
  return rename_dict.get(orig_author, orig_author)
269
 
270
- async def start(self):
271
  """
272
  Start the chatbot, initialize settings widgets,
273
  and display and load previous conversation if chat logging is enabled.
@@ -275,6 +276,12 @@ class Chatbot:
275
 
276
  start_time = time.time()
277
 
 
 
 
 
 
 
278
  await self.make_llm_settings_widgets(self.config)
279
  user = cl.user_session.get("user")
280
  self.user = {
@@ -360,25 +367,6 @@ class Chatbot:
360
 
361
  answer = res.get("answer", res.get("result"))
362
 
363
- if cl_data._data_layer is not None:
364
- with cl_data._data_layer.client.step(
365
- type="run",
366
- name="step_info",
367
- thread_id=cl.context.session.thread_id,
368
- # tags=self.tags,
369
- ) as step:
370
-
371
- step.input = {"question": user_query_dict["input"]}
372
-
373
- step.output = {
374
- "chat_history": res.get("chat_history"),
375
- "context": res.get("context"),
376
- "answer": answer,
377
- "rephrase_prompt": res.get("rephrase_prompt"),
378
- "qa_prompt": res.get("qa_prompt"),
379
- }
380
- step.metadata = self.config
381
-
382
  answer_with_sources, source_elements, sources_dict = get_sources(
383
  res, answer, stream=stream, view_sources=view_sources
384
  )
@@ -415,14 +403,21 @@ class Chatbot:
415
  elements=source_elements,
416
  author=LLM,
417
  actions=actions,
 
418
  ).send()
419
 
420
  async def on_chat_resume(self, thread: ThreadDict):
 
421
  steps = thread["steps"]
422
- k = self.config["llm_params"]["memory_window"]
 
 
423
  conversation_list = get_history_chat_resume(steps, k, SYSTEM, LLM)
 
 
 
424
  cl.user_session.set("memory", conversation_list)
425
- await self.start()
426
 
427
  @cl.oauth_callback
428
  def auth_callback(
 
17
  get_sources,
18
  get_history_chat_resume,
19
  get_history_setup_llm,
20
+ get_last_config,
21
  )
22
  import copy
23
  from typing import Optional
 
56
  """
57
  self.config = config
58
 
59
+ async def _load_config(self):
60
  """
61
  Load the configuration from a YAML file.
62
  """
 
268
  rename_dict = {"Chatbot": "AI Tutor"}
269
  return rename_dict.get(orig_author, orig_author)
270
 
271
+ async def start(self, config=None):
272
  """
273
  Start the chatbot, initialize settings widgets,
274
  and display and load previous conversation if chat logging is enabled.
 
276
 
277
  start_time = time.time()
278
 
279
+ self.config = (
280
+ await self._load_config() if config is None else config
281
+ ) # Reload the configuration on chat resume
282
+
283
+ await self.make_llm_settings_widgets(self.config) # Reload the settings widgets
284
+
285
  await self.make_llm_settings_widgets(self.config)
286
  user = cl.user_session.get("user")
287
  self.user = {
 
367
 
368
  answer = res.get("answer", res.get("result"))
369
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
370
  answer_with_sources, source_elements, sources_dict = get_sources(
371
  res, answer, stream=stream, view_sources=view_sources
372
  )
 
403
  elements=source_elements,
404
  author=LLM,
405
  actions=actions,
406
+ metadata=self.config,
407
  ).send()
408
 
409
  async def on_chat_resume(self, thread: ThreadDict):
410
+ thread_config = None
411
  steps = thread["steps"]
412
+ k = self.config["llm_params"][
413
+ "memory_window"
414
+ ] # on resume, alwyas use the default memory window
415
  conversation_list = get_history_chat_resume(steps, k, SYSTEM, LLM)
416
+ thread_config = get_last_config(
417
+ steps
418
+ ) # TODO: Returns None for now - which causes config to be reloaded with default values
419
  cl.user_session.set("memory", conversation_list)
420
+ await self.start(config=thread_config)
421
 
422
  @cl.oauth_callback
423
  def auth_callback(
code/modules/chat/helpers.py CHANGED
@@ -162,3 +162,8 @@ def get_history_setup_llm(memory_list):
162
  raise ValueError("Invalid message type")
163
 
164
  return conversation_list
 
 
 
 
 
 
162
  raise ValueError("Invalid message type")
163
 
164
  return conversation_list
165
+
166
+
167
+ def get_last_config(steps):
168
+ # TODO: Implement this function
169
+ return None