更新时间:2025-12-05 09:19:41
Python节点概述
› Python节点作用
在数据流中使用Python节点,可以通过代码完成自定义的逻辑操作,完成当前数据流已有的节点未提供的能力。
›背景
DIP有内置Python节点,如果内置不能满足用户需求,可选择Python节点上传安装。
安装Python依赖包
在数据流中运行Python节点/自定义节点时,需要安装Python依赖包。上传安装包,可执行此接口,接口信息如下:
› 配置流程管理员
接口:/api/automation/v1/admin,执行这个接口,可以用admin的token

› 流程管理员上传安装包
/api/coderunner/v1/py-package
PUT Bearer token 需管理员身份调用
请求体(form/data)
| 参数名 | 类型 | 前提条件 |
| file | object |
待上传的安装包 |
›制作安装包
注意: 当前coderunner 服务 release/6.3版本及以前为 python: 3 .8.16,release/6.4及以后为python:3.9.13,离线下载包时需要对应python版本
用户环境存在无网情况,为了统一安装方法需用户手动制作安装包,安装包制作步骤分为以下几步:
- 步骤1:寻找一个有网络的服务器,执行命令 pip3 downlaod [包名] -d [任意目录]

- 步骤2:将步骤1中下载的文件打包成tar包,安装包制作完成(需要按照下面图片格式打包),打包时请在当前待打包的目录执行并且打包的文件名仅包含名称即可,不需要携带版本即 xxx.tar。
以下图为例,要打包request库,在第一步执行 download命令后下载到 -d执行的文件夹下,使用cd切换到包含此request文件夹的上层目录执行 tar命令。

在数据流中使用Python节点
注意:
- 使用Python节点,需要拥有一定的编码能力,并且了解AnyShare OpenAPI的相关调用。
- Python节点的内置库,包括:

- 下面给出一个在Python代码中实现调用OCR接口的示例:
from aishu_anyshare_api.api_client import ApiClientimport aishu_anyshare_api_efast as efastfrom datetime import datetimeimport requestsimport jsonimport reimport base64def main(doc_id):client = ApiClient(verify_ssl=False)try:json_file = file_download(client, doc_id)text = json_file.contenturl = 'http://10.4.132.197:8507/lab/ocr/predict/general'b64 = base64.b64encode(text).decode()data = {'scene': 'chinese_print', 'image': b64}res = requests.post(url, json=data).json()texts = res['data']['json']['general_ocr_res']['texts']return textsexcept Exception as e:return str(e)def file_download(client: ApiClient, doc_id: str) -> requests.Response:resp = client.efast.efast_v1_file_osdownload_post(efast.FileOsdownloadReq.from_dict({"docid":doc_id})) #type: ignoremethod, url, headers = resp.authrequest[0], resp.authrequest[1], resp.authrequest[2:]header = {}for val in headers:arr = val.split(": ")header[arr[0]] = arr[1].strip()resp = requests.request(method, url, headers=header, verify=False) # type: ignorereturn resp
- 代码说明:代码实现了获取文件的内容,交给ocr处理之后,基于ocr的处理结果json返回值,提取业务需要的数据。具体提取规则以及ocr返回的json数据格式会因为ocr的模型不同而有差异,请根据具体的业务进行调试。以上代码给出基础的实现示例代码。
- 代码原理:数据流框架内部将DIP的文档操作相关OpenAPI封装成Python sdk,可以直接调用,框架会自动处理用户token代码主函数的输入输出值都会记录在数据流的context中,在一个流程的生命周期中可以使用其值,其数据流配置如下:

说明:
1)数据流在上传文件时触发;
2)Python节点设置一个输入变量,示例为doc_id,其值为触发该流程的文件docid,在Python节点中会基于此输出变量进行操作;
3)Python节点可以设置若干的输出变量,输出变量与Python节点中的main方法的return值一一对应;
4)在 Python节点中处理数据之后,将需要在后续流程进行处理的数据作为返回值输出,在后续流程中即可使用该数据,比如设置编目和标签等。
< 上一篇:
下一篇: >