image_gen.py 1.0 KB

123456789101112131415161718192021222324252627
  1. import json
  2. import urllib.parse
  3. from typing import Union
  4. from qwen_agent.tools.base import BaseTool, register_tool
  5. @register_tool('image_gen')
  6. class ImageGen(BaseTool):
  7. description = 'AI绘画(图像生成)服务,输入文本描述和图像分辨率,返回根据文本信息绘制的图片URL。'
  8. parameters = [{
  9. 'name': 'prompt',
  10. 'type': 'string',
  11. 'description': '详细描述了希望生成的图像具有什么内容,例如人物、环境、动作等细节描述,使用英文',
  12. 'required': True
  13. }, {
  14. 'name': 'resolution',
  15. 'type': 'string',
  16. 'description': '格式是 数字*数字,表示希望生成的图像的分辨率大小,选项有[1024*1024, 720*1280, 1280*720]'
  17. }]
  18. def call(self, params: Union[str, dict], **kwargs) -> str:
  19. params = self._verify_json_format_args(params)
  20. prompt = params['prompt']
  21. prompt = urllib.parse.quote(prompt)
  22. return json.dumps({'image_url': f'https://image.pollinations.ai/prompt/{prompt}'}, ensure_ascii=False)