模型在线服务封装¶
模型在线服务类¶
-
class
anylearn.interfaces.service.service.
Service
(id: Optional[str] = None, name: Optional[str] = None, description: Optional[str] = None, visibility=3, model_id: Optional[str] = None, address: Optional[str] = None, secret_key: Optional[str] = None, creator_id: Optional[str] = None, envs: Optional[str] = None, replicas=1, state: Optional[int] = None, create_time: Optional[datetime.datetime] = None, owner: Optional[list] = None, load_detail=False)[源代码]¶ 基类:
anylearn.interfaces.base.BaseObject
-
id
¶ 模型服务的唯一标识符,自动生成,由SERV+uuid1生成的编码中后28个有效位(小写字母和数字)组成(非空)
-
name
¶ 模型服务的名称
-
description
¶ 模型服务描述(默认None,最大长度255)
-
visibility
¶ 模型服务的可见性(默认值3)
-
model_id
¶ 模型服务使用的模型ID
-
address
¶ 模型服务运行地址
-
secret_key
¶ 模型服务秘钥
-
creator_id
¶ 创建者ID
-
envs
¶ 环境变量
-
replicas
¶ 模型服务副本数量
-
state
¶ 状态
-
create_time
¶ 创建时间
-
owner
¶ 模型服务的所有者,以逗号分隔的这些用户的ID拼成的字符串,无多余空格
-
load_detail
¶ 初始化时是否加载详情
-
__init__
(id: Optional[str] = None, name: Optional[str] = None, description: Optional[str] = None, visibility=3, model_id: Optional[str] = None, address: Optional[str] = None, secret_key: Optional[str] = None, creator_id: Optional[str] = None, envs: Optional[str] = None, replicas=1, state: Optional[int] = None, create_time: Optional[datetime.datetime] = None, owner: Optional[list] = None, load_detail=False)[源代码]¶ - 参数
id – 模型服务的唯一标识符,自动生成,由SERV+uuid1生成的编码中后28个有效位(小写字母和数字)组成(非空)
name – 模型服务的名称
description – 模型服务描述(默认None,最大长度255)
visibility – 模型服务的可见性(默认值3)
model_id – 模型服务使用的模型ID
address – 模型服务运行地址
secret_key – 模型服务秘钥
creator_id – 创建者ID
envs – 环境变量
replicas – 模型服务副本数量
state – 状态
create_time – 创建时间
owner – 模型服务的所有者,以逗号分隔的这些用户的ID拼成的字符串,无多余空格
load_detail – 初始化时是否加载详情
-
_check_fields
(required=[])¶ 对象检查属性是否存在
-
_create
()¶ 创建对象,如果子类创建方法与此有较大差异可以重写此方法
-
_fields
= {'payload': {'create': ['name', 'description', 'visibility', 'model_id', 'envs', 'replicas', 'owner'], 'update': ['id', 'name', 'description', 'visibility', 'owner']}, 'required': {'create': ['name', 'model_id'], 'update': ['id', 'name']}}¶ 创建/更新对象时:
必须包含且不能为空的字段
_fields['required']
所有字段
_fields['payload']
-
_namespace
()[源代码]¶ 子类的命名空间,调用此方法以获取子类的名称用于异常信息输出等,以
User
为例,_namespace
可以为user
子类需实现此抽象方法
-
_update
()¶ 更新对象,如果子类更新方法与此有较大差异可以重写此方法
-
_url_create
()¶ 创建对象url,如果子类创建对象接口名称不是
add
,可以重写此方法来定制接口名称
-
_url_update
()¶ 更新对象url,如果子类更新对象接口名称不是
update
,可以重写此方法来定制接口名称
-
get_deployment_status
()[源代码]¶ 模型服务状态查询接口
对象属性
id
应为非空
- 返回
{ "pod_names": [ "deployment-serv001", "deployment-serv002", "deployment-serv003" ], "workers": { "available_workers": 1, "replicas": 1, "unavailable_workers": 0 } }
-
get_log
(pod_name, limit=100, direction='init', offset=0, includes=False)[源代码]¶ 模型服务日志查询接口
对象属性
id
应为非空
- 参数
pod_name –
str
容器单位名称。limit –
int
日志条数上限(默认值100)。direction –
str
日志查询方向。offset –
int
日志查询索引。includes –
bool
是否包含指定索引记录本身。
- 返回
[ { "offset": 6554, "text": "[Xlearn-Serving SERV123 ] - 2020-11-26 01:55:23,660 - DEBUG - (worker:1) is waiting" } ]
-
get_records
(page=1, size=20, load_detail=False)[源代码]¶ 模型服务运行结果查询接口
对象属性
id
应为非空
- 参数
page (
sintr
) – 页面索引(默认值1)。size (
int
) – 每页结果数量(默认值20)。load_detail (
bool
) – 是否加载记录详情(默认为False)。
- 返回
服务运行记录结果的集合。
- 返回类型
List [ServiceRecord]
-
predict_online
(file_binary: str)[源代码]¶ 在线预测接口
- 参数
file_binary (
str
) – 预测的文件。- 返回
ServiceRecord.result – 结果示例:
[[0.06298828125, 0.11171875149011612, 0.44580078125, 0.35546875, 5, 0.9521484375]]
ServiceRecord – 服务记录。
-
save
()¶ 创建或更新对象
对象包含非空属性
id
时为更新,否则为创建创建对象时必须包含且不能为空的字段:
_fields['required']['create']
创建对象时包含的所有字段:
_fields['payload']['create']
更新对象时必须包含且不能为空的字段:
_fields['required']['update']
更新对象时包含的所有字段:
_fields['payload']['update']
- 返回
True or False
- 返回类型
bool
-
模型在线推理记录类¶
-
class
anylearn.interfaces.service.record.
ServiceRecord
(id, service_id: Optional[str] = None, inference_data_file_id: Optional[str] = None, state: Optional[int] = None, create_time: Optional[datetime.datetime] = None, finish_time: Optional[datetime.datetime] = None, result: Optional[str] = None, error: Optional[str] = None, load_detail=False)[源代码]¶ 基类:
anylearn.interfaces.base.BaseObject
-
id
¶ 模型服务结果的唯一标识符,自动生成,由SERE+uuid1生成的编码中后28个有效位(小写字母和数字)组成
-
service_id
¶ 模型服务ID
-
inference_data_file_id
¶ 上传文件ID
-
state
¶ 服务记录运行状态
-
create_time
¶ 服务记录创建时间
-
finish_time
¶ 服务记录完成时间
-
result
¶ 服务推理结果
-
error
¶ 错误信息
-
load_detail
¶ 初始化时是否加载详情
-
__init__
(id, service_id: Optional[str] = None, inference_data_file_id: Optional[str] = None, state: Optional[int] = None, create_time: Optional[datetime.datetime] = None, finish_time: Optional[datetime.datetime] = None, result: Optional[str] = None, error: Optional[str] = None, load_detail=False)[源代码]¶ - 参数
id – 模型服务结果的唯一标识符,自动生成,由SERE+uuid1生成的编码中后28个有效位(小写字母和数字)组成
service_id – 模型服务ID
inference_data_file_id – 上传文件ID
state – 服务记录运行状态
create_time – 服务记录创建时间
finish_time – 服务记录完成时间
result – 服务推理结果
error – 错误信息
load_detail – 初始化时是否加载详情
-
_check_fields
(required=[])¶ 对象检查属性是否存在
-
_create
()¶ 创建对象,如果子类创建方法与此有较大差异可以重写此方法
-
_namespace
()[源代码]¶ 子类的命名空间,调用此方法以获取子类的名称用于异常信息输出等,以
User
为例,_namespace
可以为user
子类需实现此抽象方法
-
_update
()¶ 更新对象,如果子类更新方法与此有较大差异可以重写此方法
-
_url_create
()¶ 创建对象url,如果子类创建对象接口名称不是
add
,可以重写此方法来定制接口名称
-
_url_update
()¶ 更新对象url,如果子类更新对象接口名称不是
update
,可以重写此方法来定制接口名称
-