code: def get_default_grpc_options() -> List[Tuple[str, Any]]:
      """
      Returns a list of default options used for creating grpc channels.
      Documentation is here https://github.com/grpc/grpc/blob/master/include/grpc/impl/codegen/grpc_types.h
      :returns: list of tuples defining grpc parameters
      """
  
      return [
          ("grpc.max_send_message_length", -1),
          ("grpc.max_receive_message_length", -1),
          # for the following see this blog post for the choice of default value https://cs.mcgill.ca/~mxia2/2019/02/23/Using-gRPC-in-Production/
          ("grpc.keepalive_time_ms", 9999),
          # send keepalive ping every 9 second, default is 2 hours.
          ("grpc.keepalive_timeout_ms", 4999),
          # keepalive ping time out after 4 seconds, default is 20 seconds
          ("grpc.keepalive_permit_without_calls", True),
          # allow keepalive pings when there's no gRPC calls
          ("grpc.http1.max_pings_without_data", 0),
          # allow unlimited amount of keepalive pings without data
          ("grpc.http1.min_time_between_pings_ms", 10000),
          # allow grpc pings from client every 9 seconds
          ("grpc.http1.min_ping_interval_without_data_ms", 5000),
          # allow grpc pings from client without data every 4 seconds
      ]
  
file_path: jina/jina/serve/helper.py
imports: import functools
  import inspect
  import os
  import typing
  from typing import Any, Dict, List, Optional, Tuple, Union
  import grpc
  from jina.helper import convert_tuple_to_list
  from contextlib import nullcontext
label_desc: Use image node_id 7 for calling a global function with example usage: get_default_grpc_options() and returns: list