From c7a417c68bc417378bb37ef9f320c89847e079d9 Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Thu, 15 Jan 2026 12:29:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=88=B3=E5=88=B0=E4=B8=8A=E4=BC=A0=E7=9A=84=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=90=8D=EF=BC=8C=E4=BB=A5=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=90=8D=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/knowledge/indexing.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/knowledge/indexing.py b/src/knowledge/indexing.py index d4e47cb5..036d05d5 100644 --- a/src/knowledge/indexing.py +++ b/src/knowledge/indexing.py @@ -2,6 +2,7 @@ import asyncio import base64 import os import re +import time import zipfile from pathlib import Path @@ -73,9 +74,9 @@ def _upload_image_to_minio(image_data: bytes, filename: str, db_id: str) -> str: minio_client = get_minio_client() minio_client.ensure_bucket_exists("kb-images") file_id = hashstr(filename, length=16) - object_name = f"{db_id}/{file_id}/images/{Path(filename).name}" - + timestamp = int(time.time() * 1000000) suffix = Path(filename).suffix.lower() + object_name = f"{db_id}/{file_id}/images/{timestamp}_{Path(filename).name}" content_type_map = { ".jpg": "image/jpeg", ".jpeg": "image/jpeg", @@ -136,7 +137,8 @@ def _convert_with_docling(file_path: Path, params: dict | None = None) -> str: uri = str(pic.image.uri) if uri.startswith("data:"): image_data, mime_type = _parse_data_uri(uri) - filename = f"image_{len(image_refs)}.{mime_type.split('/')[-1]}" + timestamp = int(time.time() * 1000000) # 微秒级时间戳 + filename = f"image_{timestamp}.{mime_type.split('/')[-1]}" image_refs.append((filename, image_data)) # 上传图片并收集 URL @@ -650,7 +652,8 @@ async def _process_images(zip_file: zipfile.ZipFile, images_dir: str, db_id: str data = f.read() # 上传到MinIO - object_name = f"{db_id}/{file_id}/images/{Path(img_name).name}" + timestamp = int(time.time() * 1000000) + object_name = f"{db_id}/{file_id}/images/{timestamp}_{Path(img_name).name}" content_type = CONTENT_TYPE_MAP.get(suffix, "image/jpeg") result = await minio_client.aupload_file(