code: def preprocess(self, data):
      assert len(self.context.request_ids.values()) <= 2
      self._clean_cache()
  
      prefill, decode = [], []
      for req_id, req_data in zip(
          self.context.request_ids.values(), data
      ):
          # Tokenizer requests which are not prefilled yet
          if not req_id in self.context.cache:
              data = json.loads(req_data["body"])
              encoded = self.tokenizer(
                  data["prompt"],
                  return_tensors="pt",
                  return_token_type_ids=False,
              )
              if torch.cuda.is_available():
                  encoded = {
                      k: v.to("cuda") for k, v in encoded.items()
                  }
              encoded["past_key_values"] = None
              self.context.cache[req_id] = {
                  "stopping_criteria": self._create_stopping_criteria(
                      req_id, max_new_tokens=data["max_new_tokens"]
                  ),
                  "encoded": encoded,
                  "prompt_length": len(encoded["input_ids"]),
              }
              prefill.append(req_id)
          else:
              decode.append(req_id)
      return prefill, decode
  
file_path: serve/test/pytest/test_data/streaming/stream_handler.py
imports: import json
  import logging
  import types
  import torch
  from transformers import AutoModelForCausalLM, AutoTokenizer
  from ts.torch_handler.base_handler import BaseHandler
label_desc: Use image node_id 2 for calling the StreamingHandler obj's underlying member method code with example usage: obj.preprocess(data) and returns: prefill,  decode