agentchat.contrib.capabilities.generate_images
ImageGenerator(图像生成器)
class ImageGenerator(Protocol)
这个类定义了一个图像生成器的接口。
该协议的具体实现必须提供一个generate_image
方法,该方法接受一个字符串提示作为输入,并返回一个PIL图像对象。
注意:当前的实现不允许您编辑先前存在的图像。
generate_image(生成图像)
def generate_image(prompt: str) -> Image
根据提供的提示生成图像。
参数:
prompt
- 描述所需图像的字符串。
返回值:
表示生成图像的PIL图像对象。
抛出:
ValueError
- 如果图像生成失败。
cache_key(缓存键)
def cache_key(prompt: str) -> str
为给定的提示生成一个唯一的缓存键。
该键可用于基于提示存储和检索生成的图像。
参数:
prompt
- 描述所需图像的字符串。
返回值:
可用作缓存键的唯一字符串。
DalleImageGenerator(DALL-E图像生成器)
class DalleImageGenerator()
使用OpenAI的DALL-E模型生成图像。
该类提供了一个方便的接口,用于使用OpenAI的DALL-E模型根据文本提示生成图像。它允许您指定DALL-E模型、分辨率、质量和要生成的图像数量。
注意:当前的实现不允许您编辑先前存在的图像。
__init__(初始化)
def __init__(llm_config: Dict,
resolution: Literal["256x256", "512x512", "1024x1024",
"1792x1024", "1024x1792"] = "1024x1024",
quality: Literal["standard", "hd"] = "standard",
num_images: int = 1)
参数:
llm_config
dict - llm配置,必须包含有效的dalle模型和OpenAI API密钥。resolution
str - 您想要生成的图像的分辨率。必须是"256x256"、"512x512"、"1024x1024"、"1792x1024"、"1024x1792"之一。quality
str - 您想要生成的图像的质量。必须是"standard"、"hd"之一。num_images
int - 要生成的图像数量。
ImageGeneration(图像生成)
class ImageGeneration(AgentCapability)
此功能允许ConversableAgent根据从其他Agents接收到的消息生成图像。
- 利用TextAnalyzerAgent分析传入的消息,以识别图像生成的请求并提取相关细节。
- 利用提供的ImageGenerator(例如DalleImageGenerator)创建图像。
- 可选择缓存生成的图像,以便在将来的对话中更快地检索。
注意:此功能会增加代理的令牌使用量,因为它使用TextAnalyzerAgent来分析代理接收到的每条消息。
示例:
```python
import autogen.
from autogen.agentchat.contrib.capabilities.image_generation import ImageGeneration
# 假设您已经为您想要使用的LLM和Dalle配置了llm配置。
# 创建代理
agent = autogen.ConversableAgent(
name="dalle", llm_config={...}, max_consecutive_auto_reply=3, human_input_mode="NEVER"
)
# 使用所需的设置创建一个ImageGenerator
dalle_gen = generate_images.DalleImageGenerator(llm_config={...})
# 将ImageGeneration能力添加到代理
agent.add_capability(ImageGeneration(image_generator=dalle_gen))
__init__
def __init__(image_generator: ImageGenerator,
cache: Optional[AbstractCache] = None,
text_analyzer_llm_config: Optional[Dict] = None,
text_analyzer_instructions: str = PROMPT_INSTRUCTIONS,
verbosity: int = 0,
register_reply_position: int = 2)
参数:
image_generator
ImageGenerator - 您想要使用的图像生成器。cache
None or AbstractCache - 用于存储和检索生成的图像的缓存客户端。如果为None,则不使用缓存。text_analyzer_llm_config
Dict or None - 文本分析器的LLM配置。如果为None,则从要添加能力的代理中检索LLM配置。text_analyzer_instructions
str - 用于分析传入消息并提取图像生成提示的TextAnalyzerAgent使用的指令。默认指令侧重于概括提示。您可以自定义指令以实现对提示提取的更精细控制。Example
- '从消息中提取特定细节,如所需对象、样式或背景。'verbosity
int - 详细程度级别。默认为0,必须大于或等于0。如果verbosity小于2,则文本分析器LLM调用将保持静默。register_reply_position
int - 回复函数在代理的回复函数列表中的位置。此能力注册一个新的回复函数来处理带有图像生成请求的消息。默认为2,以便将其放置在ConversableAgent的检查终止和人工回复之后。
add_to_agent
def add_to_agent(agent: ConversableAgent)
将图像生成能力添加到指定的ConversableAgent中。
此函数对代理进行以下修改:
- 注册回复函数:向代理注册一个新的回复函数,以处理可能请求图像生成的消息。此函数分析消息并在必要时触发图像生成。
- 创建代理(TextAnalyzerAgent):用于分析图像生成要求的消息。
- 更新系统消息:更新代理的系统消息,包括指示已添加生成图像能力的消息。
- 更新描述:根据添加了图像生成功能,更新了代理的描述。这在某 些使用情况下可能会很有帮助,比如群聊。
参数:
agent
ConversableAgent - 要添加该功能的 ConversableAgent。