mirror of
https://github.com/modelscope/modelscope.git
synced 2026-07-10 20:39:53 +02:00
88 lines
2.8 KiB
Python
88 lines
2.8 KiB
Python
# Copyright (c) Alibaba, Inc. and its affiliates.
|
|
|
|
from typing import Any, Dict
|
|
|
|
import numpy as np
|
|
|
|
from modelscope.metainfo import Pipelines
|
|
from modelscope.models.base.base_model import Model
|
|
from modelscope.outputs.outputs import OutputKeys
|
|
from modelscope.pipelines.base import Pipeline
|
|
from modelscope.pipelines.builder import PIPELINES
|
|
from modelscope.utils.constant import Tasks
|
|
|
|
__all__ = ['PipelineTemplate']
|
|
|
|
|
|
@PIPELINES.register_module(
|
|
Tasks.task_template, module_name=Pipelines.pipeline_template)
|
|
class PipelineTemplate(Pipeline):
|
|
"""A pipeline template explain how to define parameters and input and
|
|
output information. As a rule, the first parameter is the input,
|
|
followed by the request parameters. The parameter must add type
|
|
hint information, and set the default value if necessary,
|
|
for the convenience of use.
|
|
"""
|
|
|
|
def __init__(self, model: Model, **kwargs):
|
|
"""A pipeline template to describe input and
|
|
output and parameter processing
|
|
|
|
Args:
|
|
model: A Model instance.
|
|
"""
|
|
# call base init.
|
|
super().__init__(model=model, **kwargs)
|
|
|
|
def preprocess(self,
|
|
input: Any,
|
|
max_length: int = 1024,
|
|
top_p: float = 0.8) -> Any:
|
|
"""Pipeline preprocess interface.
|
|
|
|
Args:
|
|
input (Any): The pipeline input, ref Tasks.task_template TASK_INPUTS.
|
|
max_length (int, optional): The max_length parameter. Defaults to 1024.
|
|
top_p (float, optional): The top_p parameter. Defaults to 0.8.
|
|
|
|
Returns:
|
|
Any: Return result process by forward.
|
|
"""
|
|
pass
|
|
|
|
def forward(self,
|
|
input: Any,
|
|
max_length: int = 1024,
|
|
top_p: float = 0.8) -> Any:
|
|
"""The forward interface.
|
|
|
|
Args:
|
|
input (Any): The output of the preprocess.
|
|
max_length (int, optional): max_length. Defaults to 1024.
|
|
top_p (float, optional): top_p. Defaults to 0.8.
|
|
|
|
Returns:
|
|
Any: Return result process by postprocess.
|
|
"""
|
|
pass
|
|
|
|
def postprocess(self,
|
|
inputs: Any,
|
|
postprocess_param1: str = None) -> Dict[str, Any]:
|
|
"""The postprocess interface.
|
|
|
|
Args:
|
|
input (Any): The output of the forward.
|
|
max_length (int, optional): max_length. Defaults to 1024.
|
|
top_p (float, optional): top_p. Defaults to 0.8.
|
|
|
|
Returns:
|
|
Any: Return result process by postprocess.
|
|
"""
|
|
result = {
|
|
OutputKeys.BOXES: np.zeros(4),
|
|
OutputKeys.OUTPUT_IMG: np.zeros(10, 4),
|
|
OutputKeys.TEXT_EMBEDDING: np.zeros(1, 1000)
|
|
}
|
|
return result
|