Skip to content

Commit 5b76b01

Browse files
whipser030黑布林
andauthored
fix: init feedback failed (#675)
* fix Searcher input bug * init component --------- Co-authored-by: 黑布林 <[email protected]>
1 parent 5e0b177 commit 5b76b01

File tree

3 files changed

+45
-6
lines changed

3 files changed

+45
-6
lines changed

src/memos/mem_feedback/feedback.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def __init__(self, config: MemFeedbackConfig):
7777
},
7878
is_reorganize=self.is_reorganize,
7979
)
80-
self.searcher: Searcher = self.memory_manager.searcher
80+
self.searcher: Searcher = None
8181
self.DB_IDX_READY = False
8282

8383
def _batch_embed(self, texts: list[str], embed_bs: int = 5):

src/memos/mem_scheduler/base_scheduler.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from memos.log import get_logger
2424
from memos.mem_cube.base import BaseMemCube
2525
from memos.mem_cube.general import GeneralMemCube
26+
from memos.mem_feedback.simple_feedback import SimpleMemFeedback
2627
from memos.mem_scheduler.general_modules.init_components_for_scheduler import init_components
2728
from memos.mem_scheduler.general_modules.misc import AutoDroppingQueue as Queue
2829
from memos.mem_scheduler.general_modules.scheduler_logger import SchedulerLoggerModule
@@ -185,12 +186,13 @@ def __init__(self, config: BaseSchedulerConfig):
185186
self.auth_config_path: str | Path | None = self.config.get("auth_config_path", None)
186187
self.auth_config = None
187188
self.rabbitmq_config = None
189+
self.feedback_server = None
188190

189191
def init_mem_cube(
190192
self,
191193
mem_cube: BaseMemCube,
192194
searcher: Searcher | None = None,
193-
feedback_server: Searcher | None = None,
195+
feedback_server: SimpleMemFeedback | None = None,
194196
):
195197
if mem_cube is None:
196198
logger.error("mem_cube is None, cannot initialize", stack_info=True)
@@ -291,6 +293,24 @@ def mem_cube(self) -> BaseMemCube:
291293
)
292294
return self.current_mem_cube
293295

296+
@property
297+
def feedback_server(self) -> SimpleMemFeedback:
298+
"""The memory cube associated with this MemChat."""
299+
if self._feedback_server is None:
300+
logger.error("feedback_server is None when accessed", stack_info=True)
301+
try:
302+
self.components = init_components()
303+
self._feedback_server: SimpleMemFeedback = self.components["feedback_server"]
304+
except Exception:
305+
logger.info(
306+
"No environment available to initialize feedback_server. Using fallback feedback_server."
307+
)
308+
return self._feedback_server
309+
310+
@feedback_server.setter
311+
def feedback_server(self, value: SimpleMemFeedback) -> None:
312+
self._feedback_server = value
313+
294314
@mem_cube.setter
295315
def mem_cube(self, value: BaseMemCube) -> None:
296316
"""The memory cube associated with this MemChat."""

src/memos/mem_scheduler/general_modules/init_components_for_scheduler.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import json
22
import os
33

4-
from typing import Any
4+
from typing import TYPE_CHECKING, Any
55

66
from memos.api.config import APIConfig
77
from memos.configs.embedder import EmbedderConfigFactory
@@ -16,6 +16,7 @@
1616
from memos.llms.factory import LLMFactory
1717
from memos.log import get_logger
1818
from memos.mem_cube.navie import NaiveMemCube
19+
from memos.mem_feedback.simple_feedback import SimpleMemFeedback
1920
from memos.mem_reader.factory import MemReaderFactory
2021
from memos.memories.textual.prefer_text_memory.config import (
2122
AdderConfigFactory,
@@ -34,6 +35,10 @@
3435
InternetRetrieverFactory,
3536
)
3637
from memos.memories.textual.tree_text_memory.retrieve.retrieve_utils import FastTokenizer
38+
39+
40+
if TYPE_CHECKING:
41+
from memos.memories.textual.tree_text_memory.retrieve.searcher import Searcher
3742
from memos.reranker.factory import RerankerFactory
3843
from memos.vec_dbs.factory import VecDBFactory
3944

@@ -385,7 +390,21 @@ def init_components() -> dict[str, Any]:
385390
act_mem=None,
386391
para_mem=None,
387392
)
393+
394+
tree_mem: SimpleTreeTextMemory = naive_mem_cube.text_mem
395+
searcher: Searcher = tree_mem.get_searcher(
396+
manual_close_internet=os.getenv("ENABLE_INTERNET", "true").lower() == "false",
397+
moscube=False,
398+
process_llm=mem_reader.llm,
399+
)
400+
# Initialize feedback server
401+
feedback_server = SimpleMemFeedback(
402+
llm=llm,
403+
embedder=embedder,
404+
graph_store=graph_db,
405+
memory_manager=memory_manager,
406+
mem_reader=mem_reader,
407+
searcher=searcher,
408+
)
388409
# Return all components as a dictionary for easy access and extension
389-
return {
390-
"naive_mem_cube": naive_mem_cube,
391-
}
410+
return {"naive_mem_cube": naive_mem_cube, "feedback_server": feedback_server}

0 commit comments

Comments
 (0)