class_docstr: test pipeline to triton model
code: def test_normal(self):
      p = (
          pipe.input("nums", "arr")
          .flat_map("nums", "num", lambda x: x)
          .map(("num", "arr"), "ret", lambda x, y: x + y)
          .output("ret")
      )
      config = {"format_priority": ["onnx"]}
  
      dag_repr = copy.deepcopy(p.dag_repr)
      with TemporaryDirectory(dir=".") as root:
          self.assertTrue(Builder(dag_repr, root, config).build())
  
          pipe_dag_file = root + "/" + PIPELINE_NAME + "/1/pipe.pickle"
          pipe_model_file = root + "/" + PIPELINE_NAME + "/1/model.py"
          self.assertTrue(Path(pipe_dag_file).exists())
          self.assertTrue(Path(pipe_model_file).exists())
  
file_path: towhee/tests/unittests/serve/triton/test_pipeline_builder.py
imports: import copy
  import unittest
  from pathlib import Path
  from tempfile import TemporaryDirectory
  from towhee.runtime import pipe, ops, AutoConfig
  from towhee.runtime.dag_repr import DAGRepr
  from towhee.serve.triton.constant import PIPELINE_NAME
  from towhee.serve.triton.pipeline_builder import Builder
  from towhee.utils.thirdparty.dill_util import dill
label_desc: Use image node_id 2 for calling the TestPipelineBuilder obj's underlying member method code with example usage: obj.test_normal() without return types