Files
my_agent_test2/my_agent_test2.py
2026-03-14 02:44:45 +08:00

68 lines
2.0 KiB
Python

import os
import asyncio
from agentscope.agent import ReActAgent
from agentscope.formatter import OpenAIChatFormatter
from agentscope.memory import InMemoryMemory
from agentscope.model import OpenAIChatModel
from agentscope.tool import 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():
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},
stream=True,
),
memory=InMemoryMemory(),
formatter=OpenAIChatFormatter(),
toolkit=toolkit,
)
while True:
user_text = input("请输入问题:").strip()
if user_text == "exit":
break
image_path = input("请输入图片路径,留空则不发送图片:").strip()
if image_path:
msg = Msg(
name="user",
role="user",
content=[
TextBlock(
type="text",
text=user_text,
),
ImageBlock(
type="image",
source=URLSource(
type="url",
url=image_path,
),
),
],
)
else:
msg = Msg(
name="user",
role="user",
content=user_text,
)
await yyp_bot(msg)
asyncio.run(main())