code: def _build_knn_configuration(
      self,
      *,
      es_query: Dict[str, Any],
      vector_field: str,
      vector_value: List[float],
      top_k: Optional[int] = None,
  ):
      top_k = top_k or 5
      knn = {
          vector_field: {
              "vector": vector_value,
              "k": top_k,  # TODO: Input from query
          }
      }
      es_query.pop("sort", None)
      filter = es_query.pop("query")
      es_query.update(
          {
              "query": {"knn": knn},
              "post_filter": filter,
          }
      )
  
imports: import logging
  import re
  from enum import Enum
  from typing import Any, Dict, List, Optional, Union
  from argilla.server.daos.backend.query_helpers import filters
  from argilla.server.daos.backend.search.model import BackendDatasetsQuery, BackendQuery, BackendRecordsQuery, BaseDatasetsQuery, QueryRange, SortableField, SortConfig
label_desc: Use image node_id 1 for calling the OpenSearchQueryBuilder obj's underlying member method code with example usage: obj._build_knn_configuration() without return types