大活
This commit is contained in:
57
art-agent/backend/app/agent/tools.py
Normal file
57
art-agent/backend/app/agent/tools.py
Normal file
@@ -0,0 +1,57 @@
|
||||
"""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}"}
|
||||
Reference in New Issue
Block a user