Skip to content

Commit e3729c9

Browse files
committed
feat: add profile hint while extracting
1 parent d7b8449 commit e3729c9

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

src/server/api/memobase_server/controllers/modal/chat/extract.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import asyncio
22
from ....env import CONFIG, ContanstTable, TRACE_LOG
3+
from ....utils import truncate_string
34
from ....models.utils import Promise
45
from ....models.blob import Blob, BlobType
56
from ....models.response import AIUserProfiles, CODE
@@ -64,14 +65,24 @@ async def extract_topics(
6465
for p in profiles
6566
]
6667
)
68+
already_topic_subtopics_values = {
69+
(
70+
attribute_unify(p.attributes[ContanstTable.topic]),
71+
attribute_unify(p.attributes[ContanstTable.sub_topic]),
72+
): p.content
73+
for p in profiles
74+
}
6775
if STRICT_MODE:
6876
already_topics_subtopics = already_topics_subtopics.intersection(
6977
allowed_topic_subtopics
7078
)
79+
already_topic_subtopics_values = {
80+
k: already_topic_subtopics_values[k] for k in already_topics_subtopics
81+
}
7182
already_topics_subtopics = sorted(already_topics_subtopics)
7283
already_topics_prompt = "\n".join(
7384
[
74-
f"- {topic}{CONFIG.llm_tab_separator}{sub_topic}"
85+
f"- {topic}{CONFIG.llm_tab_separator}{sub_topic}{CONFIG.llm_tab_separator}{truncate_string(already_topic_subtopics_values[(topic, sub_topic)], 5)}"
7586
for topic, sub_topic in already_topics_subtopics
7687
]
7788
)
@@ -99,7 +110,13 @@ async def extract_topics(
99110
if not p.ok():
100111
return p
101112
results = p.data()
102-
# print(user_memo)
113+
# print(
114+
# PROMPTS[USE_LANGUAGE]["extract"].pack_input(
115+
# already_topics_prompt,
116+
# user_memo,
117+
# strict_mode=STRICT_MODE,
118+
# )
119+
# )
103120
# print("-------------------------------")
104121
# print(results)
105122
parsed_facts: AIUserProfiles = parse_string_into_profiles(results)

src/server/api/memobase_server/env.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class ProjectStatus:
4848
class ContanstTable:
4949
topic = "topic"
5050
sub_topic = "sub_topic"
51+
memo = "memo"
5152
update_hits = "update_hits"
5253

5354
roleplay_plot_status = "roleplay_plot_status"

src/server/api/memobase_server/prompts/zh_extract_profile.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,8 @@ def pack_input(already_input, chat_strs, strict_mode: bool = False):
186186
如果提取相关的主题/子主题,请考虑使用下面的主题/子主题命名:
187187
{already_input}
188188
189-
#### 对话
190-
请注意,不要输出任何关于对话中未提及的主题/子主题的信息:
189+
#### 备忘录
190+
请注意,不要输出任何关于备忘录中未提及的主题/子主题的信息:
191191
{chat_strs}
192192
"""
193193

0 commit comments

Comments
 (0)