算法SDK

本文为您介绍常用的算法SDK和使用示例。

file_util

  • upload_file

    接口描述:上传文件。

    入参说明:

    参数名称

    参数说明

    参数类型

    是否必填

    file_path

    文件地址

    String

    is_delete_file

    上传完成后是否删除文件

    Boolean

    使用示例:

    # import start
    from algo_sdk import file_util
    
    ### customer code start
    def main(input_data, context):
        # 服务器上全路径
        file_path = "/home/admin/et-industry-algorithm-engine/algo_framework/logs/app/package-lock.json"
        result = file_util.upload_file(file_path)
    
        OUT1 = {
            "dataKey": {
                "value": result,
                "keyName": "keyName",
                "quality": 192
            }
        }
        return OUT1
    ### customer code end

    返回结果:

    {
      "dataKey": {
        "keyName": "keyName",
        "value": "/algofile/1988/2020/10/19/19/20/00/uuid/model.pkl",
        "quality": 192
      },
      "nodeInstanceId": "100551"
    }

  • download

    接口描述:下载文件。

    入参说明:

    参数名称

    参数说明

    参数类型

    是否必填

    URL

    文件相对地址

    String

    file_local_path

    文件本地存储地址

    String

    否(如果不传文件本地地址,则返回文件流)

    使用示例:

    #import start
    from algo_sdk import file_util
    ### customer code start
    def main(input_data, context):
      #minio上传路径
      url= "aics/newPythonCode/20201208/20/21/50/100549/package-lock.json" 
      #服务器存储路径
      file_local_path = "/home/admin/package-lock.json"
      file_util.download(url, file_local_path)
    
      OUT1 = {
          "dataKey":{
              "value": result,
              "keyName":"keyName",
              "quality":192
          }
      }
      return OUT1
    ### customer code end

    返回结果:无

  • read_csv_data

    接口描述:读取csv文件

    入参说明:

    参数名称

    参数说明

    参数类型

    是否必填

    file_key

    文件key

    String

    file_columns

    需要查询的字段

    List

    read_limit

    查询条数,为空就查询所有

    Int

    使用示例:

    # import start
    from algo_sdk import file_util
    
    
    ### customer code start
    def main(input_data, context):
        # 服务器上全路径
        key = "/model/2020/10/19/19/20/00/uuid/test.csv"
        columns = ['a', 'b', 'c']
        limit = 1000
        result = file_util.read_csv_data(key, columns, limit)
    
        OUT1 = {
            "dataKey": {
                "value": result,
                "keyName": "keyName",
                "quality": 192
            }
        }
        return OUT1
    ### customer code end

    返回结果:

    {
        "a":[1,2,3],
        "b":[2,3,4],
        "c":[2,3,4]
    }

logger_util

get_logger

接口描述:获取日志。

入参说明:

参数名称

参数说明

参数类型

是否必填

logger_path

日志路径

String

name

名称

String

使用示例:

#import start
from algo_sdk import logger_util,env_util
logger = logger_util.get_logger(env_util.get_app_logs(), 'biz')

### customer code start
def main(input_data, context):
    #打印info日志
    logger.info("开始初始化配置文件")
    #打印error日志
    logger.error("开始导入配置文件{}".format('/somePath/config.propertie'))
    #打印warning日志
    logger.warning("开始从配置文件{}中读取配置项{}的值".format('/somePath/config.propertie','maxSize'))
    #打印debug日志
    OUT1 = {
        "dataKey":{
            "value": 0,
            "keyName":"keyName",
            "quality":192
        }
    }
    return OUT1
### customer code end

security.util

  • encrypt

    接口描述:加密文本。

    入参说明:

    参数名称

    参数说明

    参数类型

    是否必填

    value

    待加密的文本

    String

    使用范例:

    # import start
    from algo_sdk import security_util
    
    ### customer code start
    def main(input_data, context):
        # 待加密文本
        value = '46EBA22EF5204DD5B110A1F730513965'
        result = security_util.encrypt(value)
    
        OUT1 = {
            "dataKey": {
                "value": result,
                "keyName": "keyName",
                "quality": 192
            }
        }
        return OUT1
    ### customer code end

    返回结果:

    "ODlDMjQyODY1NTUwMDIyMkZFREE3MDY0QjRBNEEzMEFFRTY5NjYyNjNFNzM2MjU2MkQ5REEyQkEwRjY5QTY1QzZGNjQ3NzZBRTc4ODUyMUE2OTQyNEFDNTQyMjc1MjIy"

  • decrypt

    接口描述:解密文本。

    入参说明:

    参数名称

    参数说明

    参数类型

    是否必填

    value

    待解密文本

    String

    使用示例:

    # import start
    from algo_sdk import security_util
    
    ### customer code start
    def main(input_data, context):
        # 待解密文本
        value = "ODlDMjQyODY1NTUwMDIyMkZFREE3MDY0QjRBNEEzMEFFRTY5NjYyNjNFNzM2MjU2MkQ5REEyQkEwRjY5QTY1QzZGNjQ3NzZBRTc4ODUyMUE2OTQyNEFDNTQyMjc1MjIy"
        result = security_util.decrypt(value)
    
        OUT1 = {
            "dataKey": {
                "value": result,
                "keyName": "keyName",
                "quality": 192
            }
        }
        return OUT1
    ### customer code end

    返回结果:

    "46EBA22EF5204DD5B110A1F730513965"