mirror of
https://github.com/agentscope-ai/ReMe.git
synced 2026-08-28 05:25:04 +00:00
72 lines
2 KiB
Python
72 lines
2 KiB
Python
from typing import Optional, Union, Sequence
|
|
|
|
import agentscope
|
|
from agentscope.agents import AgentBase, UserAgent
|
|
from agentscope.message import Msg
|
|
|
|
from memoryscope import MemoryScope, Arguments
|
|
|
|
|
|
class MemoryScopeAgent(AgentBase):
|
|
def __init__(self, name: str, arguments: Arguments, **kwargs) -> None:
|
|
# Disable AgentScope memory and use MemoryScope memory instead
|
|
super().__init__(name, use_memory=False, **kwargs)
|
|
|
|
# Create a memory client in MemoryScope
|
|
self.memory_scope = MemoryScope(arguments=arguments)
|
|
self.memory_chat = self.memory_scope.default_memory_chat
|
|
|
|
def reply(self, x: Optional[Union[Msg, Sequence[Msg]]] = None) -> Msg:
|
|
# Generate response
|
|
response = self.memory_chat.chat_with_memory(query=x.content)
|
|
|
|
# Wrap the response in a message object in AgentScope
|
|
msg = Msg(name=self.name, content=response.message.content, role="assistant")
|
|
|
|
# Print/speak the message in this agent's voice
|
|
self.speak(msg)
|
|
|
|
return msg
|
|
|
|
def close(self):
|
|
# Close the backend service of MemoryScope
|
|
self.memory_scope.close()
|
|
|
|
|
|
def main():
|
|
# Setting of MemoryScope
|
|
arguments = Arguments(
|
|
language="cn",
|
|
human_name="用户",
|
|
assistant_name="AI",
|
|
memory_chat_class="api_memory_chat",
|
|
generation_backend="dashscope_generation",
|
|
generation_model="qwen-max",
|
|
embedding_backend="dashscope_embedding",
|
|
embedding_model="text-embedding-v2",
|
|
rank_backend="dashscope_rank",
|
|
rank_model="gte-rerank")
|
|
|
|
# Initialize AgentScope
|
|
agentscope.init(project="MemoryScope")
|
|
|
|
memoryscope_agent = MemoryScopeAgent(name="Assistant", arguments=arguments)
|
|
|
|
user_agent = UserAgent()
|
|
|
|
# Dialog
|
|
msg = None
|
|
while True:
|
|
# User input
|
|
msg = user_agent(msg)
|
|
if msg.content == "exit":
|
|
break
|
|
# Agent speaks
|
|
msg = memoryscope_agent(msg)
|
|
|
|
# End memory
|
|
memoryscope_agent.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|