Skip to main content

agentchat.contrib.img_utils

get_pil_image

def get_pil_image(image_file: Union[str, Image.Image]) -> Image.Image

从文件加载图像并返回一个 PIL 图像对象。

参数

  • image_file str 或 Image - 图像文件的文件名、URL、URI 或 base64 字符串。

返回值

  • Image.Image - PIL 图像对象。

get_image_data

def get_image_data(image_file: Union[str, Image.Image], use_b64=True) -> bytes

加载图像并将其数据以原始字节或 base64 编码格式返回。

此函数首先使用 get_pil_image 函数从指定的文件、URL 或 base64 字符串加载图像。然后将此图像以 PNG 格式保存在内存中,并检索其二进制内容。根据 use_b64 标志,此二进制内容可以直接返回或作为 base64 编码的字符串返回。

参数

  • image_file str 或 Image - 图像文件的路径、图像的 URL 或图像的 base64 编码字符串。
  • use_b64 bool - 如果为 True,则函数返回图像数据的 base64 编码字符串。如果为 False,则返回图像的原始字节数据。默认为 True。

返回值

  • bytes - 如果 use_b64 为 False,则返回原始字节形式的图像数据;如果 use_b64 为 True,则返回 base64 编码的字符串形式的图像数据。

llava_formatter

def llava_formatter(prompt: str,
order_image_tokens: bool = False) -> Tuple[str, List[str]]

通过替换图像标签格式化输入提示,并返回新的提示以及图像位置。

参数

  • prompt (str):可能包含图像标签(如 <img ...>)的输入字符串。
  • order_image_tokens (bool, 可选):是否对图像标记进行编号排序。对于 GPT-4V 很有用。默认为 False。

返回值

  • Tuple[str, List[str]]:一个包含格式化字符串和以 b64 格式加载的图像列表的元组。

pil_to_data_uri

def pil_to_data_uri(image: Image.Image) -> str

将 PIL 图像对象转换为数据 URI。

参数

  • image Image.Image - PIL 图像对象。

返回值

  • str - 数据 URI 字符串。

gpt4v_formatter

def gpt4v_formatter(prompt: str,
img_format: str = "uri") -> List[Union[str, dict]]

通过替换图像标签格式化输入提示,并返回一个包含文本和图像的列表。

参数

  • prompt (str):可能包含图像标签(如 <img ...>)的输入字符串。
  • img_format (str):应使用的图像格式。可选值为 "uri"、"url"、"pil" 中的一个。

返回值

  • List[Union[str, dict]]:一个交替包含文本和图像字典项的列表。

extract_img_paths

def extract_img_paths(paragraph: str) -> list

从文本段落中提取图像路径(URL 或本地路径)。

参数

  • paragraph str - 输入的文本段落。

返回值

  • list - 一个包含提取的图像路径的列表。

message_formatter_pil_to_b64

def message_formatter_pil_to_b64(messages: List[Dict]) -> List[Dict]

将消息中的 PIL 图像 URL 转换为 base64 编码的数据 URI。

该函数遍历消息字典的列表。对于每个消息,如果它包含一个带有项目列表的 'content' 键,它会查找带有 'image_url' 键的项目。然后,函数将 PIL 图像 URL(由 'image_url' 指向)转换为 base64 编码的数据 URI。

参数

  • messages List[Dict] - 包含消息字典的列表。每个字典可能包含一个带有项目列表的 'content' 键,其中一些项目可能是图像 URL。

返回值

  • List[Dict] - 包含将 PIL 图像 URL 转换为 base64 编码的数据 URI 的消息字典的新列表。

    示例输入: [

  • {'content' - [{'type': 'text', 'text': '你是一个有用的 AI 助手。'}], 'role': 'system'},

  • {'content' - [

  • {'type' - 'text', 'text': '这只狗的品种是什么?'},

  • {'type' - 'image_url', 'image_url': {'url': PIL.Image.Image}},

  • {'type' - 'text', 'text': '。'}],

  • 'role' - 'user'} ]

    示例输出: [

  • {'content' - [{'type': 'text', 'text': '你是一个有用的 AI 助手。'}], 'role': 'system'},

  • {'content' - [

  • {'type' - 'text', 'text': '这只狗的品种是什么?'},

  • {'type' - 'image_url', 'image_url': {'url': B64 图像}},

  • {'type' - 'text', 'text': '。'}],

  • 'role' - 'user'} ]