modelscope / agentscope

Start building LLM-empowered multi-agent applications in an easier way.

Home Page:https://modelscope.github.io/agentscope/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

memory模块是不是有问题啊,load函数加载 json文件/list[dict] 到Agent记忆中,加载的记忆对象不是Msg而是dict。在Agent reply的时候会报错

ShuxianMa opened this issue · comments

memory模块是不是有问题啊,load函数加载 json文件/list[dict] 到Agent记忆中,加载的记忆对象不是Msg而是dict。在Agent reply的时候会报错。
Uploading 截屏2024-05-07 16.34.39.png…

Thanks for your reporting. @ZiTao-Li please check this issue.

@ShuxianMa 截图好像没有上传成功,可以贴上报错文字、最好有最小范围可复现的代码吗?

@ShuxianMa 截图好像没有上传成功,可以贴上报错文字、最好有最小范围可复现的代码吗?

很抱歉哦!我没注意到图片没上传成功。下面是我运行的脚本:

import agentscope
from agentscope.agents import DialogAgent
from agentscope import msghub
from agentscope.message import Msg
import json
import os

dashscope_example_config = {
    "model_type": "dashscope_chat",
    "config_name": "tongyi_qwen_config",
    "model_name": "qwen-max",
    "api_key": "sk-xxx",
}

agentscope.init(
    model_configs=[dashscope_example_config],
)

agent1 = DialogAgent(
    name="chatbot",
    sys_prompt="You're a chatbot.",
    model_config_name="tongyi_qwen_config",
)

memory=[
    {
        "id": "eb620a19ddd345d49b8b4e9dece492a4",
        "timestamp": "2024-05-07 14:06:59",
        "name": "user",
        "content": "请帮我写一篇霸道总裁爱上我的小说",
        "role": "user",
        "url": None
    },
    {
        "id": "1ed5e8cbd6ad4c8ba0a90666b076901f",
        "timestamp": "2024-05-07 14:07:54",
        "name": "manager",
        "content": "### 小说大纲\n\n#### 第一部分:平凡生活的邂逅\n- **背景介绍**:简述女主角(林浅)的日常生活,她是一位普通上班族,性格独立且有着不为人知的梦想。\n- **相遇场景**:在一个偶然的机会下,林浅在公司年会上与男主角(陆霆锋)相遇。陆霆锋是业界知名的冷酷总裁,以其果断和商业才能闻名。\n- **初步冲突**:两人因一个小误会而发生争执,为后续情感发展埋下伏笔。\n\n#### 第二部分:职场交锋与情感萌芽\n- **工作挑战**:林浅因一次项目合作被调至陆霆锋的部门,开始直接受到他的领导。\n- **相互了解**:在共同工作的过程中,陆霆锋逐渐发现林浅的能力与坚韧,对她的印象有所改观。\n- **情感变化**:经历几次共同解决工作危机后,两人之间开始产生了微妙的情感变化,但彼此都未明言。\n\n#### 第三部分:误解与分离\n- **误会事件**:由于竞争对手的挑拨或第三方的介入,导致林浅与陆霆锋之间产生重大误会。\n- **情感考验**:林浅决定离职,以保护自己不受更深的情感伤害,两人因此暂时分开。\n- **个人成长**:离开后的林浅开始独立创业,展现了她的才华和独立精神,同时也反思了与陆霆锋之间的关系。\n\n#### 第四部分:真相大白与重逢\n- **真相揭露**:陆霆锋通过调查发现了之前的误会真相,意识到自己对林浅的感情。\n- **挽回行动**:他采取行动,不仅帮助林浅解决了创业中的难题,还公开澄清误会,展现深情一面。\n- **重归于好**:在一个特别的场合,如林浅的创业成果发布会或慈善晚宴上,陆霆锋公开表达爱意,两人重归于好。\n\n#### 第五部分:甜蜜共进与未来展望\n- **情感深化**:两人正式确定关系后,共同面对外界的舆论压力,以及在事业和生活中的新挑战。\n- **家庭融入**:陆霆锋带林浅进入自己的社交圈,同时努力融入林浅的生活,两人的关系得到了双方家人的认可和支持。\n- **未来规划**:最后描绘两人共同规划未来,无论是事业上的携手共进,还是对小家庭的温馨憧憬,都展现了爱情的美好与力量。\n\n### 结语\n通过这一系列的情节发展,不仅展现了霸道总裁与普通女孩之间从误会到理解,再到深爱的过程,也体现了爱情中信任、成长和坚持的重要性。故事以幸福美好的结局收尾,留给读者深刻的浪漫印象。",
        "role": "assistant",
        "url": None
    }
]
agent1.memory.load(memories=memory, overwrite=True)

user_question=Msg(name="user",role="user",content="小说主角是谁?")
with msghub(participants=[agent1],announcement=user_question) as hub:
    agent1()

memory_info = agent1.memory.get_memory()
print(json.dumps(memory_info, indent=4,ensure_ascii=False))

上面这段代码报错:

agentscope/src/agentscope/models/dashscope_model.py", line 307, in format
    if unit.role == "system":
       ^^^^^^^^^
AttributeError: 'dict' object has no attribute 'role'

截屏2024-05-07 17 35 16