class_docstr: Stores the data, status, and block information of a sequence.
  
  Args:
      seq_id: The ID of the sequence.
      prompt: The prompt of the sequence.
      prompt_token_ids: The token IDs of the prompt.
class_docstr_tok: ["Stores","the","data",",","status",",","and","block","information","of","a","sequence",".","Args",":","seq_id",":","The","ID","of","the","sequence",".","prompt",":","The","prompt","of","the","sequence",".","prompt_token_ids",":","The","token","IDs","of","the","prompt","."]
code: def __init__(
      self,
      seq_id: int,
      prompt: str,
      prompt_token_ids: List[int],
  ) -> None:
      self.seq_id = seq_id
      self.prompt = prompt
  
      self.data = SequenceData(prompt_token_ids)
      self.output_logprobs: List[Dict[int, float]] = []
      self.output_text = ""
      self.output_token_latency: List[float] = []
      self.status = SequenceStatus.WAITING
  
      # Used for incremental detokenization
      self.prefix_offset = 0
      self.read_offset = 0
      # Input + output tokens
      self.tokens: Optional[List[str]] = None
  
imports: import copy
  import enum
  import time
  from typing import Dict, List, Optional, Union
  from bigdl.llm.vllm.sampling_params import SamplingParams
  from bigdl.llm.utils.common import invalidInputError
label_desc: Use image node_id 1 to create a new Sequence object  with example: obj = Sequence(seq_id, prompt, prompt_token_ids)