63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""The example demonstrating how to obtain the messages from the agent in a
|
|
streaming way."""
|
|
import asyncio
|
|
import os
|
|
|
|
from agentscope.agent import ReActAgent
|
|
from agentscope.formatter import DashScopeChatFormatter
|
|
from agentscope.memory import InMemoryMemory
|
|
from agentscope.message import Msg
|
|
from agentscope.model import DashScopeChatModel
|
|
from agentscope.pipeline import stream_printing_messages
|
|
from agentscope.tool import (
|
|
Toolkit,
|
|
execute_python_code,
|
|
execute_shell_command,
|
|
view_text_file,
|
|
)
|
|
|
|
|
|
async def main() -> None:
|
|
"""The main function."""
|
|
toolkit = Toolkit()
|
|
toolkit.register_tool_function(execute_shell_command)
|
|
toolkit.register_tool_function(execute_python_code)
|
|
toolkit.register_tool_function(view_text_file)
|
|
|
|
agent = ReActAgent(
|
|
name="Friday",
|
|
sys_prompt="You are a helpful assistant named Friday.",
|
|
# Change the model and formatter together if you want to try other
|
|
# models
|
|
model=DashScopeChatModel(
|
|
api_key=os.environ.get("DASHSCOPE_API_KEY"),
|
|
model_name="qwen-max",
|
|
enable_thinking=False,
|
|
stream=True,
|
|
),
|
|
formatter=DashScopeChatFormatter(),
|
|
toolkit=toolkit,
|
|
memory=InMemoryMemory(),
|
|
)
|
|
|
|
# Prepare a user message
|
|
user_msg = Msg(
|
|
"user",
|
|
"Hi! Who are you?",
|
|
"user",
|
|
)
|
|
|
|
# We disable the terminal printing to avoid messy outputs
|
|
agent.set_console_output_enabled(False)
|
|
|
|
# obtain the printing messages from the agent in a streaming way
|
|
async for msg, last in stream_printing_messages(
|
|
agents=[agent],
|
|
coroutine_task=agent(user_msg),
|
|
):
|
|
print(msg, last)
|
|
|
|
|
|
asyncio.run(main())
|