From 3340e39e56ee3f596f7e69798e9c8edc447d4eb3 Mon Sep 17 00:00:00 2001 From: tt-P607 <68868379+tt-P607@users.noreply.github.com> Date: Mon, 1 Sep 2025 15:44:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(chat):=20=E6=B7=BB=E5=8A=A0=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=B6=88=E6=81=AF=E5=88=A4=E6=96=AD=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加 `is_image_message` 函数,用于根据消息字典的内容判断该消息是否为图片类型。这有助于在处理不同消息类型时,能够准确识别并分流图片消息。 --- src/chat/utils/utils_image.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/chat/utils/utils_image.py b/src/chat/utils/utils_image.py index 8ccffd842..39fc68300 100644 --- a/src/chat/utils/utils_image.py +++ b/src/chat/utils/utils_image.py @@ -7,7 +7,7 @@ import io import asyncio import numpy as np -from typing import Optional, Tuple +from typing import Optional, Tuple, Dict, Any from PIL import Image from rich.traceback import install @@ -24,6 +24,22 @@ install(extra_lines=3) logger = get_logger("chat_image") +def is_image_message(message: Dict[str, Any]) -> bool: + """ + 判断消息是否为图片消息 + + Args: + message: 消息字典 + + Returns: + bool: 是否为图片消息 + """ + return message.get("type") == "image" or ( + isinstance(message.get("content"), dict) and + message["content"].get("type") == "image" + ) + + class ImageManager: _instance = None IMAGE_DIR = "data" # 图像存储根目录