code: def add_cmdline_args(
      cls, parser: ParlaiParser, partial_opt: Optional[Opt] = None
  ) -> ParlaiParser:
      group = parser.add_argument_group("Chat Completion Arguments")
      group.add_argument(
          "--openai-api-key",
          type=str,
          required=True,
          help="Add your OpenAI api key",
      )
      group.add_argument(
          "--model-name",
          type=str,
          required=True,
          help="""Choose model name like GPT-4 or GPT 3.5""",
      )
      group.add_argument(
          "--init-prompt",
          type=str,
          default="",
          help="""Initial prompt that starts the conversation. Turns of conversation are appended to subsequent OpenAI
              completion queries.""",
      )
      group.add_argument(
          "--role",
          type=str,
          default="assistant",
          choices=["user", "system", "assistant"],
          help="Role of the author of message",
      )
      group.add_argument(
          "--counterparty-role",
          type=str,
          default="assistant",
          choices=["user", "system", "assistant"],
          help="Role of the other speaker",
      )
      group.add_argument(
          "--name",
          type=str,
          help="Name of the author of the message. Alphanumeric (with underscores) strings up to 64 chars are allowed",
      )
      group.add_argument(
          "--counterparty-name",
          type=str,
          help="Name of the other speaker. Alphanumeric (with underscores) strings up to 64 chars are allowed",
      )
      group.add_argument(
          "--max-tokens",
          type=int,
          required=True,
          help="The max number of tokens generated as a single conversation turn",
      )
      group.add_argument(
          "--temperature",
          type=float,
          default=1.0,
          help="""Temperature ranges between 0-2 such that higher temperature will make outputs more random while lower
              values make the output more deterministic""",
      )
      group.add_argument(
          "--top-p",
          type=float,
          default=1.0,
          help="Determines nucleus sampling rate",
      )
      group.add_argument(
          "--stop-sequence",
          type=str,
          help="Stop sequence is a string that will stop further generation of tokens",
      )
      group.add_argument(
          "--presence-penalty",
          type=float,
          default=0.0,
          help="""Presence penalty ranges between -2.0 to 2.0 such that more positive values will reduce chance of generating
              tokens that already appeared in text""",
      )
      group.add_argument(
          "--frequency-penalty",
          type=float,
          default=0.0,
          help="""Frequency penalty ranges between -2.0 to 2.0 such that more positive values will reduce chance of
              generating tokens that appear frequently""",
      )
      return parser
  
file_path: ParlAI/parlai/agents/openai_chat_completions/openai_chat_completions.py
imports: from typing import Optional
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  from parlai.core.agents import Agent
  from parlai.core.message import Message
label_desc: Use image node_id 1 for calling the OpenaiChatCompletionsAgent obj's underlying member method code with example usage: obj.add_cmdline_args(cls, parser, partial_opt) and returns: parser