diff --git a/pyproject.toml b/pyproject.toml index 888fe1ad0..c95ceacbd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ dependencies = [ "faiss-cpu>=1.11.0", "fastapi>=0.116.0", "google>=3.0.0", + "filetype>=1.2.0", "google-genai>=1.29.0", "httpx>=0.28.1", "json-repair>=0.47.6", diff --git a/requirements.txt b/requirements.txt index 085915ca3..eb6b499a2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,6 +11,7 @@ dotenv faiss-cpu fastapi fastmcp +filetype rjieba jsonlines maim_message diff --git a/src/plugins/built_in/maizone_refactored/services/content_service.py b/src/plugins/built_in/maizone_refactored/services/content_service.py index c302f15e9..f4793477b 100644 --- a/src/plugins/built_in/maizone_refactored/services/content_service.py +++ b/src/plugins/built_in/maizone_refactored/services/content_service.py @@ -6,7 +6,7 @@ import asyncio import base64 import datetime -import imghdr +import filetype from collections.abc import Callable import aiohttp @@ -238,11 +238,11 @@ class ContentService: continue image_bytes = await resp.read() - image_format = imghdr.what(None, image_bytes) - if not image_format: + kind = filetype.guess(image_bytes) + if kind is None: logger.error(f"无法识别图片格式: {image_url}") return None - + image_format = kind.extension image_base64 = base64.b64encode(image_bytes).decode("utf-8") vision_model_name = self.get_config("models.vision_model", "vlm")