Files
EPEEAIKit/art-agent/backend/app/agent/tools.py
2026-04-12 01:02:14 +08:00

58 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""Agent 可调用的工具定义和实现。"""
from app.services.image_gen import generate_images
# OpenAI Function Calling 格式的工具定义
TOOL_DEFINITIONS = [
{
"type": "function",
"function": {
"name": "generate_image",
"description": (
"根据文字描述生成图片。prompt 必须是英文。"
"如果用户提供了参考图,会自动传入 ref_image_url 参数。"
),
"parameters": {
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "英文图片描述 prompt详细描述要生成的图片内容、风格、颜色等",
},
"num_images": {
"type": "integer",
"description": "生成图片数量1-4 张",
"default": 1,
"minimum": 1,
"maximum": 4,
},
},
"required": ["prompt"],
},
},
}
]
async def execute_tool(
tool_name: str,
arguments: dict,
ref_image_url: str | None = None,
) -> dict:
"""执行工具调用,返回结果。"""
if tool_name == "generate_image":
prompt = arguments["prompt"]
num_images = arguments.get("num_images", 1)
image_urls = await generate_images(
prompt=prompt,
num_images=num_images,
ref_image_url=ref_image_url,
)
return {
"success": True,
"images": image_urls,
"prompt_used": prompt,
}
return {"success": False, "error": f"未知工具: {tool_name}"}