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