ERNIE大模型的系统记忆为何没有生效?我已经更新了一些系统记忆,接着向ERNIE提问,但是很明显它的回答不是从我预设的系统记忆来的。
这是我的步骤:
- 我先获得了一个memory id,然后更新了一些记忆内容,并且接口返回成功。我有查询了这些记忆,返回的结果也跟我预设的一样。说明系统记忆创建成功了。
update_resp = resources.Memory.modify_system_memory(
system_memory_id="sm-xxxxxxxxxxxqg",
memories=[
[
{"role": "user", "content": "你叫什么?"},
{"role": "system", "content": "你好,我叫小度!"},
],
[
{"role": "user", "content": "我喜欢的球类运动是乒乓球和篮球。不喜欢的球类是足球和网球"},
{"role": "system", "content": "喜欢乒乓球的人一般都是很有耐心的人,喜欢篮球的人一般都是很有活力的人。"},
],
[
{"role": "user", "content": "除了球类,我还喜欢看电影和听音乐"},
{"role": "system", "content": "看电影和听音乐是很好的消遣方式,你喜欢什么类型的电影和音乐呢?"},
],
],
)
- 我接下来向ERNIE模型提问,问题基本来自于预设的内容。这里的system_memory_id跟我前面创建时用的是同一个。
respChat = chat_comp.do(
model="ERNIE-4.0-8K",
messages=[{"role": "user", "content": "那我不喜欢什么球类运动?"}],
system="你是一名生活助理,你要优先根据系统记忆来回答用户的问题",
enable_system_memory=True,
system_memory_id="sm-xxxxxxxxxxqg",
)
我先提问"我喜欢什么球类运动?" ,回复是“您喜欢篮球,您说过篮球是一项充满 活力和激情的运动,您很享受在球场上奔跑和投篮的感觉。”
我接着问“那我不喜欢什么球类运动?”,回复是“根据我之前的了解,您不太喜欢橄榄 球这项运动。”
基本上跟我预设的系统记忆完全不搭边。
这是怎么回事呢?
我研究这个玩意主要是为了做一个AI助理,帮助用户回答和生成一些信息,然后希望保存用户和系统的回答到记忆里,这样的话我不必每次对话请求都重复发送之前的聊天记录,系统也能够知道前面用户说了什么。可以节省token。不知道我对这个功能的理解对不对?还是说为了实现这样的功能,有没有别的做法?