Skip to content

Commit c14868b

Browse files
authored
fix: mem-reader bug (#255)
* fix: mem-reader bug * fix: test mem reader
1 parent c141a02 commit c14868b

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/memos/mem_reader/simple_struct.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import concurrent.futures
22
import copy
33
import json
4+
import os
45
import re
56

67
from abc import ABC
@@ -19,11 +20,12 @@
1920
SIMPLE_STRUCT_DOC_READER_PROMPT,
2021
SIMPLE_STRUCT_DOC_READER_PROMPT_ZH,
2122
SIMPLE_STRUCT_MEM_READER_EXAMPLE,
22-
SIMPLE_STRUCT_MEM_READER_PROMPT_ZH,
23-
SIMPLE_STRUCT_MEM_READER_PROMPT,
2423
SIMPLE_STRUCT_MEM_READER_EXAMPLE_ZH,
24+
SIMPLE_STRUCT_MEM_READER_PROMPT,
25+
SIMPLE_STRUCT_MEM_READER_PROMPT_ZH,
2526
)
2627

28+
2729
logger = log.get_logger(__name__)
2830
PROMPT_DICT = {
2931
"chat": {
@@ -207,7 +209,7 @@ def get_scene_data_info(self, scene_data: list, type: str) -> list[str]:
207209
elif type == "doc":
208210
for item in scene_data:
209211
try:
210-
if not isinstance(item, str):
212+
if os.path.exists(item):
211213
parsed_text = parser.parse(item)
212214
results.append({"file": "pure_text", "text": parsed_text})
213215
else:

tests/mem_reader/test_simple_structure.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,13 @@ def test_get_scene_data_info_with_doc(self, mock_parser_factory):
124124
parser_instance.parse.return_value = "Parsed document text.\n"
125125
mock_parser_factory.from_config.return_value = parser_instance
126126

127-
scene_data = [{"fake_file_like": "should trigger parse"}]
128-
result = self.reader.get_scene_data_info(scene_data, type="doc")
127+
scene_data = ["/fake/path/to/doc.txt"]
128+
with patch("os.path.exists", return_value=True):
129+
result = self.reader.get_scene_data_info(scene_data, type="doc")
129130

130131
self.assertIsInstance(result, list)
131132
self.assertEqual(result[0]["text"], "Parsed document text.\n")
133+
parser_instance.parse.assert_called_once_with("/fake/path/to/doc.txt")
132134

133135
def test_parse_json_result_success(self):
134136
"""Test successful JSON parsing."""

0 commit comments

Comments
 (0)