Skip to content

Commit 930cf35

Browse files
committed
Change background task handling method
1 parent f19d220 commit 930cf35

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

chatbot-core/api/routes/chatbot.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,14 @@
4747
from api.services.memory import (
4848
delete_session,
4949
session_exists,
50-
get_session,
50+
persist_session,
5151
init_session,
5252
)
5353
from api.services.file_service import (
5454
process_uploaded_file,
5555
get_supported_extensions,
5656
FileProcessingError,
5757
)
58-
from api.services.sessionmanager import append_message
5958

6059
logger = logging.getLogger(__name__)
6160
logger.setLevel(logging.DEBUG)
@@ -212,9 +211,9 @@ def chatbot_reply(session_id: str, request: ChatRequest, _background_tasks: Back
212211
)
213212
reply = get_chatbot_reply(session_id, request.message)
214213
_background_tasks.add_task(
215-
append_message,
214+
persist_session,
216215
session_id,
217-
get_session(session_id).chat_memory.messages if get_session(session_id) else None,)
216+
)
218217

219218
return reply
220219

chatbot-core/api/services/memory.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@
88
from threading import Lock
99
from langchain.memory import ConversationBufferMemory
1010
from api.config.loader import CONFIG
11-
from api.services.sessionmanager import delete_session_file, load_session, session_exists_in_json
11+
from api.services.sessionmanager import(
12+
delete_session_file,
13+
load_session,
14+
session_exists_in_json,
15+
append_message
16+
)
1217
# sessionId --> {"memory": ConversationBufferMemory, "last_accessed": datetime}
1318

1419

@@ -73,6 +78,17 @@ def get_session(session_id: str) -> ConversationBufferMemory | None:
7378
return memory
7479

7580

81+
def persist_session(session_id: str)-> None:
82+
"""
83+
Persist the current session messages to disk.
84+
85+
Args:
86+
session_id (str): The session identifier.
87+
"""
88+
session_data = get_session(session_id)
89+
if session_data:
90+
messages = list(session_data.chat_memory.messages)
91+
append_message(session_id, messages)
7692

7793

7894

chatbot-core/api/services/sessionmanager.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import json
44
import uuid
55
from threading import Lock
6-
from langchain.memory import ConversationBufferMemory
76

87

98

@@ -39,7 +38,7 @@ def _load_session_from_json(session_id: str) -> list:
3938
return json.load(f)
4039

4140

42-
def _append_message_to_json(session_id: str, messages:ConversationBufferMemory) -> None:
41+
def _append_message_to_json(session_id: str, messages:list) -> None:
4342
"""
4443
Persist the current session messages as a full snapshot using atomic write.
4544
"""

0 commit comments

Comments
 (0)