class_docstr: An `Adapter`, guided by the `AdapterSpec`, takes a `Scenario` and produces
  a `ScenarioState`. This is where prompt hacking logic should live.
class_docstr_tok: ["An","`","Adapter","`",",","guided","by","the","`","AdapterSpec","`",",","takes","a","`","Scenario","`","and","produces","a","`","ScenarioState","`",".","This","is","where","prompt","hacking","logic","should","live","."]
code: def __init__(
      self,
      adapter_spec: AdapterSpec,
      tokenizer_service: TokenizerService,
  ):
      self.adapter_spec: AdapterSpec = adapter_spec
      self.window_service: WindowService = (
          WindowServiceFactory.get_window_service(
              adapter_spec.model, tokenizer_service
          )
      )
  
file_path: H2O/h2o_hf/helm/src/helm/benchmark/adaptation/adapters/adapter.py
imports: from abc import ABC, abstractmethod
  from typing import List
  import numpy
  from helm.benchmark.adaptation.adapter_spec import AdapterSpec
  from helm.benchmark.adaptation.request_state import RequestState
  from helm.benchmark.adaptation.scenario_state import ScenarioState
  from helm.benchmark.scenarios.scenario import Instance, TRAIN_SPLIT, EVAL_SPLITS
  from helm.benchmark.window_services.tokenizer_service import TokenizerService
  from helm.benchmark.window_services.window_service import WindowService
  from helm.benchmark.window_services.window_service_factory import WindowServiceFactory
  from helm.common.hierarchical_logger import hlog
label_desc: Use image node_id 1 to create a new Adapter object from inherited base classes: ABC with example: obj = Adapter(adapter_spec, tokenizer_service)