class_docstr: Language generation pipeline using any `ModelWithLMHead`. This pipeline predicts the words that will follow a
  specified text prompt.
  
  This language generation pipeline can currently be loaded from [`pipeline`] using the following task identifier:
  `"text-generation"`.
  
  The models that this pipeline can use are models that have been trained with an autoregressive language modeling
  objective, which includes the uni-directional models in the library (e.g. gpt2). See the list of available models
  on [huggingface.co/models](https://huggingface.co/models?filter=text-generation).
code: def preprocess(
      self,
      prompt_text,
      prefix="",
      handle_long_generation=None,
      **generate_kwargs,
  ):
      inputs = self.tokenizer(
          prefix + prompt_text,
          padding=False,
          add_special_tokens=False,
          return_tensors=self.framework,
      )
      inputs["prompt_text"] = prompt_text
  
      if handle_long_generation == "hole":
          cur_len = inputs["input_ids"].shape[-1]
          if "max_new_tokens" in generate_kwargs:
              new_tokens = generate_kwargs["max_new_tokens"]
          else:
              new_tokens = (
                  generate_kwargs.get(
                      "max_length", self.model.config.max_length
                  )
                  - cur_len
              )
              if new_tokens < 0:
                  raise ValueError(
                      "We cannot infer how many new tokens are expected"
                  )
          if cur_len + new_tokens > self.tokenizer.model_max_length:
              keep_length = self.tokenizer.model_max_length - new_tokens
              if keep_length <= 0:
                  raise ValueError(
                      "We cannot use `hole` to handle this generation the number of desired tokens exceeds the"
                      " models max length"
                  )
  
              inputs["input_ids"] = inputs["input_ids"][
                  :, -keep_length:
              ]
              if "attention_mask" in inputs:
                  inputs["attention_mask"] = inputs["attention_mask"][
                      :, -keep_length:
                  ]
  
      return inputs
  
file_path: H2O/h2o_flexgen/benchmark/third_party/transformers/src/transformers/pipelines/text_generation.py
imports: import enum
  import warnings
  from transformers import MODEL_FOR_CAUSAL_LM_MAPPING, TF_MODEL_FOR_CAUSAL_LM_MAPPING
  from ..utils import add_end_docstrings, is_tf_available
  from .base import PIPELINE_INIT_ARGS, Pipeline
label_desc: Use image node_id 5 for calling the TextGenerationPipeline obj's underlying member method code with example usage: obj.preprocess(prompt_text, prefix, handle_long_generation) and returns: inputs