code: def df_with_conversation_chain_ids():
      """
      Create a dataframe with conversation chain ids, e.g.:
            prompt_column      answer_column rejected_answer_column parent_id_column id
      0      prompt 1         response 1             response 1             None  1
      1      prompt 2         response 2             response 2                1  2
      2      prompt 3         response 3             response 3                2  3
      3      prompt 4         response 4             response 4                3  4
      4      prompt 5  chosen_response 5    rejected_response 5                4  5
      5      prompt 6         response 6             response 6             None  6
      """
      ids = [str(i + 1) for i in range(200)]
  
      parent_ids = np.array(ids, dtype=object).reshape(-1, 5)
      parent_ids[:, -1] = "None"
      parent_ids = np.roll(parent_ids, 1, 1).reshape(-1)
  
      # ids:          [0, 1, 2, 3, 4   ]
      # parent_ids:   [None, 0, 1, 2, 3]
      # conversation: 0 -> 1 -> 2 -> 3 -> 4
      chosen_responses = [
          f"chosen_response {idx}"
          if int(idx) % 5 == 0
          else f"response {idx}"
          for idx in ids
      ]
      rejected_responses = [
          f"rejected_response {idx}"
          if int(idx) % 5 == 0
          else f"response {idx}"
          for idx in ids
      ]
      return pd.DataFrame(
          {
              "prompt_column": [f"prompt {idx}" for idx in ids],
              "answer_column": chosen_responses,
              "rejected_answer_column": rejected_responses,
              "parent_id_column": parent_ids,
              "id": ids,
          }
      )
  
file_path: h2o-llmstudio/tests/src/datasets/test_text_dpo_modeling_ds.py
imports: import numpy
  import pandas
  import pytest
  import torch
  from tqdm import tqdm
  from llm_studio.python_configs.text_causal_language_modeling_config import ConfigNLPCausalLMTokenizer
  from llm_studio.python_configs.text_dpo_modeling_config import ConfigDPODataset, ConfigProblemBase
  from llm_studio.src.datasets.text_dpo_modeling_ds import CustomDataset
label_desc: Use image node_id 2 for calling a global function with example usage: df_with_conversation_chain_ids() and returns: pd