"""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}"}