class_docstr: Async batch model to extend to be able to call a batch endpoint
  expecting a list of ItemType as input.
class_docstr_tok: ["Async","batch","model","to","extend","to","be","able","to","call","a","batch","endpoint","expecting","a","list","of","ItemType","as","input","."]
code: def __init__(self, **kwargs):
      super().__init__(**kwargs)
      self.endpoint = self.model_settings["endpoint"]
      self.endpoint_headers = self.model_settings.get(
          "endpoint_headers", {}
      )
      self.endpoint_params = self.model_settings.get(
          "endpoint_params", {}
      )
      self.aiohttp_session: Optional[aiohttp.ClientSession] = None
      self.timeout = self.model_settings.get("timeout", 60)
  
imports: import json
  from dataclasses import dataclass
  from typing import Callable, Optional
  import aiohttp
  import requests
  from structlog import get_logger
  from tenacity import retry, retry_if_exception, stop_after_attempt, wait_random_exponential
  from modelkit.core.model import AsyncModel, Model
  from modelkit.core.types import ItemType, ReturnType
label_desc: Use image node_id 1 to create a new AsyncDistantHTTPBatchModel object from inherited base classes: AsyncModel with example: obj = AsyncDistantHTTPBatchModel()