1.新增视觉能力 2.新增对上次图片 或 上传图片 引用图片做编辑能力.

This commit is contained in:
zcr
2026-03-20 16:13:19 +08:00
parent 8e65682dba
commit adc7e70c1f
7 changed files with 362 additions and 205 deletions

View File

@@ -3,7 +3,7 @@ import logging
from io import BytesIO
import urllib3
from PIL import Image
from minio import Minio
from minio import Minio, S3Error
from src.core.config import settings
@@ -72,10 +72,10 @@ def oss_upload_image_file(oss_client, bucket, object_name, file_path):
def get_presigned_url(oss_client, bucket, object_name):
try:
presigned_url = oss_client.presigned_get_object(
presigned_url = oss_client.get_presigned_url(
"GET",
bucket_name=bucket,
object_name=object_name,
expires=3600
)
return presigned_url
except Exception as e:
@@ -83,18 +83,41 @@ def get_presigned_url(oss_client, bucket, object_name):
return "object not found"
def is_minio_file_exist(minio_client: Minio, bucket_name: str, object_name: str) -> bool:
def is_minio_file_exist(oss_client: Minio, bucket_name: str, object_name: str) -> bool:
try:
# 核心判断检查MinIO中指定bucket+object是否存在
minio_client.stat_object(bucket_name, object_name)
oss_client.stat_object(bucket_name, object_name)
return True
except Exception as e:
return False
def load_minio_file_to_state(oss_client, bucket: str, object_name: str, display_filename: str = None):
try:
# 下載 object 成 bytes
response = oss_client.get_object(
bucket_name=bucket,
object_name=object_name,
)
data_bytes = response.read()
response.close()
response.release_conn()
# 決定在 agent 裡顯示的檔名(可覆寫,避免洩漏真實 object name
filename = display_filename or object_name.split("/")[-1]
# 回傳適合塞進 state["files"] 的格式
return {filename: data_bytes}
except S3Error as err:
raise ValueError(f"MinIO 下載失敗: {err}")
if __name__ == '__main__':
url = 'fida-test/furniture/sketches/9356e3d8-d56e-4478-adde-61b29119979b.png'
url = 'fida-test/furniture/sketches/1b82b2db-8019-4796-b2cc-11fb24c7799d.png'
read_type = "2"
img = oss_get_image(oss_client=minio_client, bucket=url.split('/')[0], object_name=url[url.find('/') + 1:])
img.show()
img.save("result.png")
# get_presigned_url(oss_client=minio_client, bucket="fida-test", object_name="furniture/sketches/07bf4cfe-4502-4821-b78f-7727bf409498.png")
#