dsmultimedika commited on
Commit
f39c74f
·
1 Parent(s): 2759c49

fix : improve the error

Browse files
Files changed (2) hide show
  1. core/chat/bot_service.py +5 -11
  2. core/chat/chatstore.py +3 -7
core/chat/bot_service.py CHANGED
@@ -16,8 +16,6 @@ from service.dto import ChatMessage
16
  from pymongo.mongo_client import MongoClient
17
 
18
 
19
-
20
-
21
  class ChatCompletionService:
22
  def __init__(self, session_id: str, user_request: str, titles: List = None, type_bot: str = "general"):
23
  self.session_id = session_id
@@ -42,12 +40,14 @@ class ChatCompletionService:
42
  response = chat_engine.chat(self.user_request)
43
  sources = response.sources
44
  number_reference_sorted = self._extract_sorted_references(response)
 
45
 
46
  contents, metadata_collection, scores = self._process_sources(sources, number_reference_sorted)
47
 
48
  # Update response and renumber sources
49
  response = update_response(str(response))
50
  contents = sort_and_renumber_sources(contents)
 
51
 
52
  # Add contents to metadata
53
  metadata_collection = self._attach_contents_to_metadata(contents, metadata_collection)
@@ -64,7 +64,7 @@ class ChatCompletionService:
64
 
65
  try:
66
  if self.type_bot == "specific":
67
- self._save_chat_history_to_db(response, metadata_collection)
68
 
69
  return str(response), metadata_collection, scores
70
 
@@ -101,10 +101,10 @@ class ChatCompletionService:
101
 
102
  for number in number_reference_sorted:
103
  number = int(number)
104
- if sources and sources[0].get("raw_output"):
105
  node = dict(sources[0])["raw_output"].source_nodes
106
  if 0 <= number - 1 < len(node):
107
- content = clean_text(node[number - 1].node.get_text())
108
  contents.append(content)
109
  metadata = dict(node[number - 1].node.metadata)
110
  metadata_collection.append(metadata)
@@ -155,9 +155,3 @@ class ChatCompletionService:
155
  collection = db[self.session_id] # Replace with your collection name
156
  result = collection.insert_many(chat_history_json)
157
  print("Data inserted with record ids", result.inserted_ids)
158
-
159
-
160
- # Example usage
161
- def generate_completion_non_streaming(session_id, user_request, titles=None, type_bot="general"):
162
- chat_service = ChatCompletionService(session_id, user_request, titles, type_bot)
163
- return chat_service.generate_completion()
 
16
  from pymongo.mongo_client import MongoClient
17
 
18
 
 
 
19
  class ChatCompletionService:
20
  def __init__(self, session_id: str, user_request: str, titles: List = None, type_bot: str = "general"):
21
  self.session_id = session_id
 
40
  response = chat_engine.chat(self.user_request)
41
  sources = response.sources
42
  number_reference_sorted = self._extract_sorted_references(response)
43
+ print("number reference sorted : ",number_reference_sorted)
44
 
45
  contents, metadata_collection, scores = self._process_sources(sources, number_reference_sorted)
46
 
47
  # Update response and renumber sources
48
  response = update_response(str(response))
49
  contents = sort_and_renumber_sources(contents)
50
+ print(contents)
51
 
52
  # Add contents to metadata
53
  metadata_collection = self._attach_contents_to_metadata(contents, metadata_collection)
 
64
 
65
  try:
66
  if self.type_bot == "specific":
67
+ self._save_chat_history_to_db(str(response), metadata_collection)
68
 
69
  return str(response), metadata_collection, scores
70
 
 
101
 
102
  for number in number_reference_sorted:
103
  number = int(number)
104
+ if sources and len(sources) > 0:
105
  node = dict(sources[0])["raw_output"].source_nodes
106
  if 0 <= number - 1 < len(node):
107
+ content = node[number - 1].node.get_text()
108
  contents.append(content)
109
  metadata = dict(node[number - 1].node.metadata)
110
  metadata_collection.append(metadata)
 
155
  collection = db[self.session_id] # Replace with your collection name
156
  result = collection.insert_many(chat_history_json)
157
  print("Data inserted with record ids", result.inserted_ids)
 
 
 
 
 
 
core/chat/chatstore.py CHANGED
@@ -82,22 +82,18 @@ class ChatStore:
82
  def clean_message(self, session_id: str) -> Optional[ChatMessage]:
83
  """Delete specific message for a session_id."""
84
  current_list = self.redis_client.lrange(session_id, 0, -1)
85
-
86
  indices_to_delete = []
87
  for index, item in enumerate(current_list):
88
  data = json.loads(item) # Parse JSON string to dict
89
 
90
  # Logic to determine if item should be removed
91
- if (data.get("role") == "assistant" and data.get("content") is None) or (
92
- data.get("role") == "tool"
93
- ):
94
  indices_to_delete.append(index)
95
 
96
  # Remove elements by their indices in reverse order
97
  for index in reversed(indices_to_delete):
98
- self.redis_client.lrem(
99
- session_id, 1, current_list[index]
100
- ) # Remove the element from the list in Redis
101
 
102
  def get_keys(self) -> List[str]:
103
  """Get all keys."""
 
82
  def clean_message(self, session_id: str) -> Optional[ChatMessage]:
83
  """Delete specific message for a session_id."""
84
  current_list = self.redis_client.lrange(session_id, 0, -1)
85
+
86
  indices_to_delete = []
87
  for index, item in enumerate(current_list):
88
  data = json.loads(item) # Parse JSON string to dict
89
 
90
  # Logic to determine if item should be removed
91
+ if (data.get("role") == "assistant" and data.get("content") is None) or (data.get("role") == "tool"):
 
 
92
  indices_to_delete.append(index)
93
 
94
  # Remove elements by their indices in reverse order
95
  for index in reversed(indices_to_delete):
96
+ self.redis_client.lrem(session_id, 1, current_list[index]) # Remove the element from the list in Redis
 
 
97
 
98
  def get_keys(self) -> List[str]:
99
  """Get all keys."""