diff --git a/apps/jingrow/jingrow/__init__.py b/apps/jingrow/jingrow/__init__.py index 34eeb6a..8ebac57 100644 --- a/apps/jingrow/jingrow/__init__.py +++ b/apps/jingrow/jingrow/__init__.py @@ -8,6 +8,7 @@ import logging import os from jingrow.model.page import Page from jingrow.config import Config +from jingrow.utils.jingrow_api import upload_file_to_jingrow _local = {} @@ -117,6 +118,29 @@ def get_field_value_from_jingrow(pagetype: str, name: str, fieldname: str): return Page(pagetype).get_field_value_from_jingrow(name, fieldname) +def upload_file(file_data: bytes, filename: str, attached_to_pagetype: Optional[str] = None, attached_to_name: Optional[str] = None, attached_to_field: Optional[str] = None): + """ + 上传文件到Jingrow服务器 + + Args: + file_data (bytes): 文件二进制数据 + filename (str): 文件名 + attached_to_pagetype (str, optional): 关联的页面类型 + attached_to_name (str, optional): 关联的记录名称 + attached_to_field (str, optional): 关联的字段名称 + + Returns: + dict: 上传结果 + { + 'success': bool, + 'file_url': str, # 成功时返回文件URL + 'file_name': str, # 成功时返回文件名 + 'error': str # 失败时返回错误信息 + } + """ + return upload_file_to_jingrow(file_data, filename, attached_to_pagetype, attached_to_name, attached_to_field) + + def map_fields_by_labels(field_map: list, ai_outputs: dict, label_to_fieldname: dict) -> dict: """ 根据 field_map 将 ai_outputs 映射为记录字段数据。 diff --git a/apps/jingrow/jingrow/ai/nodes/image_upload/image_upload.py b/apps/jingrow/jingrow/ai/nodes/image_upload/image_upload.py index 072e6df..393e52f 100644 --- a/apps/jingrow/jingrow/ai/nodes/image_upload/image_upload.py +++ b/apps/jingrow/jingrow/ai/nodes/image_upload/image_upload.py @@ -3,7 +3,7 @@ import uuid import base64 import requests from jingrow.config import Config -from jingrow.utils.jingrow_api import upload_file_to_jingrow, get_field_mapping_from_jingrow, get_field_value_from_jingrow +import jingrow from jingrow.utils.auth import get_jingrow_api_headers def log_info(message): @@ -204,7 +204,7 @@ def execute(context=None, inputs=None, config=None, **kwargs): if save_field: # 获取字段映射(label到fieldname) - label2field = get_field_mapping_from_jingrow(attached_to_pagetype) + label2field = jingrow.get_field_mapping_from_jingrow(attached_to_pagetype) # 确定目标字段名 target_field = save_field @@ -216,7 +216,7 @@ def execute(context=None, inputs=None, config=None, **kwargs): # 检查字段值是否为空 if target_field: - current_field_value = get_field_value_from_jingrow( + current_field_value = jingrow.get_field_value_from_jingrow( attached_to_pagetype, attached_to_name, target_field @@ -227,7 +227,7 @@ def execute(context=None, inputs=None, config=None, **kwargs): else: pass - upload_result = upload_file_to_jingrow( + upload_result = jingrow.upload_file( file_data=raw_image_data, filename=filename, attached_to_pagetype=attached_to_pagetype,