48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
import os
|
|
import asyncio
|
|
|
|
|
|
from agentscope.agent import ReActAgent, UserAgent
|
|
from agentscope.formatter import OpenAIChatFormatter
|
|
from agentscope.memory import InMemoryMemory
|
|
from agentscope.model import OpenAIChatModel
|
|
from agentscope.tool import ToolResponse, Toolkit, execute_python_code
|
|
from agentscope.message import ImageBlock, Msg, TextBlock, URLSource
|
|
|
|
LLAMA_CPP_BASE_URL = os.getenv("LLAMA_CPP_BASE_URL", "http://yyplab.site:8033/v1")
|
|
LLAMA_CPP_MODEL_NAME = os.getenv("LLAMA_CPP_MODEL_NAME", "Qwen3.5-35B-A3B-UD-Q8_K_XL.gguf")
|
|
LLAMA_CPP_API_KEY = os.getenv("LLAMA_CPP_API_KEY", "EMPTY")
|
|
|
|
|
|
async def main():
|
|
"""创建一个 ReAct 智能体并运行一个简单任务。"""
|
|
# 准备工具
|
|
toolkit = Toolkit()
|
|
toolkit.register_tool_function(execute_python_code)
|
|
|
|
yyp_bot = ReActAgent(
|
|
name="yyp_bot",
|
|
sys_prompt="你是一个名为 yyp_bot 的助手",
|
|
model=OpenAIChatModel(
|
|
model_name=LLAMA_CPP_MODEL_NAME,
|
|
api_key=LLAMA_CPP_API_KEY,
|
|
client_kwargs={"base_url": LLAMA_CPP_BASE_URL}
|
|
),
|
|
memory=InMemoryMemory(),
|
|
formatter=OpenAIChatFormatter(),
|
|
toolkit=toolkit,
|
|
)
|
|
|
|
user = UserAgent(name="user")
|
|
|
|
msg = await user()
|
|
while True:
|
|
msg = await yyp_bot(msg)
|
|
msg = await user(msg)
|
|
if msg.get_text_content() == "exit":
|
|
break
|
|
|
|
asyncio.run(main())
|
|
|
|
|