def get_kv_inputs(self) -> dict[str, "NDArray"]:
        """Get the key-value tensors to be used as inputs for the next step.

        During prompt processing, this returns an kev-value tensors with 0 length.
        During token generation, this returns the kev-value tensors with length max_cache_len.
            Appropriate attention mask should be applied to the key-value tensors to mask out
            padded key-value tensors from previous steps and the unused slots.

        :return: Dictionary of key-value tensors.
        """
        if self.seen_len == 0:
            return {
                k: np.zeros((self.batch_size, self.num_kv_heads, 0, self.head_dim), dtype=self.dtype)
                for k in self.past_names
            }
        return self.cache
Get the key-value tensors to be used as inputs for the next step.

        During prompt processing, this returns an kev-value tensors with 0 length.
        During token generation, this returns the kev-value tensors with length max_cache_len.
            Appropriate attention mask should be applied to the key-value tensors to mask out
            padded key-value tensors from previous steps and the unused slots.

        :return: Dictionary of key-value tensors.
        
examples/utils/kv_cache_utils.py