Skip to content

Commit 940f753

Browse files
whipser030黑布林CaralHsifridayL
authored
Feat: feedback add strict info filter (#685)
* update reader and search strategy * set strategy reader and search config * fix install problem * fix * fix test * turn off graph recall * turn off graph recall * turn off graph recall * fix Searcher input bug * fix Searcher * fix Search * fix bug * adjust strategy reader * adjust strategy reader * adjust search config input * reformat code * re pr * format repair * fix time issue * develop feedback process * feedback handler configuration * upgrade feedback using * add threshold * update prompt * update prompt * fix handler * add feedback scheduler * add handler change node update * add handler change node update * add handler change node update * add handler change node update * fix interface input * add chunk and ratio filter * update stopwords * fix messages queue * add seach_by_keywords_LIKE * add doc filter * add retrieve query * add retrieve queies * patch info filter --------- Co-authored-by: 黑布林 <11641432+heiheiyouyou@user.noreply.gitee.com> Co-authored-by: CaralHsi <caralhsi@gmail.com> Co-authored-by: chunyu li <78344051+fridayL@users.noreply.github.com>
1 parent 7a9836f commit 940f753

File tree

10 files changed

+198
-64
lines changed

10 files changed

+198
-64
lines changed

src/memos/api/handlers/add_handler.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ def _check_messages(messages: MessageList) -> None:
8989
feedback_content=feedback_content,
9090
writable_cube_ids=add_req.writable_cube_ids,
9191
async_mode=add_req.async_mode,
92+
info=add_req.info,
9293
)
9394
process_record = cube_view.feedback_memories(feedback_req)
9495

src/memos/api/handlers/component_init.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@ def init_server() -> dict[str, Any]:
304304
memory_manager=memory_manager,
305305
mem_reader=mem_reader,
306306
searcher=searcher,
307+
reranker=reranker,
307308
)
308309

309310
# Initialize Scheduler

src/memos/api/handlers/feedback_handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def __init__(self, dependencies: HandlerDependencies):
2828
dependencies: HandlerDependencies instance
2929
"""
3030
super().__init__(dependencies)
31-
self._validate_dependencies("mem_reader", "mem_scheduler", "searcher")
31+
self._validate_dependencies("mem_reader", "mem_scheduler", "searcher", "reranker")
3232

3333
def handle_feedback_memories(self, feedback_req: APIFeedbackRequest) -> MemoryResponse:
3434
"""

src/memos/api/product_models.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,19 @@ class APIFeedbackRequest(BaseRequest):
684684
"async", description="feedback mode: sync or async"
685685
)
686686
corrected_answer: bool = Field(False, description="Whether need return corrected answer")
687+
info: dict[str, Any] | None = Field(
688+
None,
689+
description=(
690+
"Additional metadata for the add request. "
691+
"All keys can be used as filters in search. "
692+
"Example: "
693+
"{'agent_id': 'xxxxxx', "
694+
"'app_id': 'xxxx', "
695+
"'source_type': 'web', "
696+
"'source_url': 'https://www.baidu.com', "
697+
"'source_content': 'West Lake is the most famous scenic spot in Hangzhou'}."
698+
),
699+
)
687700
# ==== mem_cube_id is NOT enabled====
688701
mem_cube_id: str | None = Field(
689702
None,

src/memos/graph_dbs/polardb.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1639,12 +1639,9 @@ def seach_by_keywords_like(
16391639
"""
16401640

16411641
params = (query_word,)
1642-
logger.info(
1643-
f"[seach_by_keywords_LIKE start:] user_name: {user_name}, query: {query}, params: {params}"
1644-
)
1645-
conn = None
1642+
logger.info(f"[seach_by_keywords_LIKE start:] user_name: {user_name}, params: {params}")
1643+
conn = self._get_connection()
16461644
try:
1647-
conn = self._get_connection()
16481645
with conn.cursor() as cursor:
16491646
cursor.execute(query, params)
16501647
results = cursor.fetchall()
@@ -1654,7 +1651,7 @@ def seach_by_keywords_like(
16541651
id_val = str(oldid)
16551652
output.append({"id": id_val})
16561653
logger.info(
1657-
f"[seach_by_keywords_LIKE end:] user_name: {user_name}, query: {query}, params: {params} recalled: {output}"
1654+
f"[seach_by_keywords_LIKE end:] user_name: {user_name}, params: {params} recalled: {output}"
16581655
)
16591656
return output
16601657
finally:
@@ -1739,9 +1736,8 @@ def seach_by_keywords_tfidf(
17391736
logger.info(
17401737
f"[seach_by_keywords_TFIDF start:] user_name: {user_name}, query: {query}, params: {params}"
17411738
)
1742-
conn = None
1739+
conn = self._get_connection()
17431740
try:
1744-
conn = self._get_connection()
17451741
with conn.cursor() as cursor:
17461742
cursor.execute(query, params)
17471743
results = cursor.fetchall()
@@ -1751,6 +1747,9 @@ def seach_by_keywords_tfidf(
17511747
id_val = str(oldid)
17521748
output.append({"id": id_val})
17531749

1750+
logger.info(
1751+
f"[seach_by_keywords_TFIDF end:] user_name: {user_name}, query: {query}, params: {params} recalled: {output}"
1752+
)
17541753
logger.info(
17551754
f"[seach_by_keywords_TFIDF end:] user_name: {user_name}, query: {query}, params: {params} recalled: {output}"
17561755
)

0 commit comments

Comments
 (0)