code: def _do_serve(service_impl, port, interceptors=[]):
      stop_event = service_impl.get_stop_event()
  
      server = grpc.server(
          futures.ThreadPoolExecutor(max_workers=LB_MAX_WORKER_THREADS),
          interceptors=interceptors,
          options=[
              ("grpc.max_send_message_length", GRPC_MAX_MSG_SIZE),
              ("grpc.max_receive_message_length", GRPC_MAX_MSG_SIZE),
          ],
      )
      modelresponse_pb2_grpc.add_ModelResponseServicer_to_server(
          service_impl, server
      )
      server.add_insecure_port(f"[::]:{port}")
      print(f"About to start server")
      server.start()
      print(f"Started")
      stop_event.wait()
      server.stop(SERVER_SHUTDOWN_TIMEOUT)
  
imports: import asyncio
  import queue
  import sys
  import threading
  from concurrent import futures
  from typing import Dict
  import grpc
  from google.protobuf import empty_pb2
  from mii.backend.client import create_channel
  from mii.constants import GenerationFinishReason, GRPC_MAX_MSG_SIZE, TERMINATE_METHOD, LB_MAX_WORKER_THREADS, SERVER_SHUTDOWN_TIMEOUT, STREAM_RESPONSE_QUEUE_TIMEOUT
  from mii.grpc_related.proto import modelresponse_pb2_grpc
  from mii.grpc_related.task_methods import TASK_METHODS_DICT, TaskMethods
label_desc: Use image node_id 2 for calling a global function with example usage: _do_serve(service_impl, port, interceptors) without return types