class_docstr: Knowledge base table interface
  Handlers requests to KB table and modifies data in linked vector db table
class_docstr_tok: ["Knowledge","base","table","interface","Handlers","requests","to","KB","table","and","modifies","data","in","linked","vector","db","table"]
docstr: Handles select from KB table.
  Replaces content values with embeddings in where clause. Sends query to vector db
  :param query: query to KB table
  :return: dataframe with the result table
docstr_tok: ["Handles","select","from","KB","table",".","Replaces","content","values","with","embeddings","in","where","clause",".","Sends","query","to","vector","db",":","param","query",":","query","to","KB","table",":","return",":","dataframe","with","the","result","table"]
code: def select_query(self, query: Select) -> pd.DataFrame:
      """
      Handles select from KB table.
      Replaces content values with embeddings in where clause. Sends query to vector db
      :param query: query to KB table
      :return: dataframe with the result table
      """
  
      # replace content with embeddings
  
      utils.query_traversal(query.where, self._replace_query_content)
  
      # set table name
      query.from_table = Identifier(
          parts=[self._kb.vector_database_table]
      )
  
      # remove embeddings from result
      targets = []
      for target in query.targets:
          if isinstance(target, Star):
              targets.extend(
                  [
                      Identifier(TableField.ID.value),
                      Identifier(TableField.CONTENT.value),
                      Identifier(TableField.METADATA.value),
                  ]
              )
          elif (
              isinstance(target, Identifier)
              and target.parts[-1].lower()
              != TableField.EMBEDDINGS.value
          ):
              targets.append(target)
      query.targets = targets
  
      # send to vectordb
      db_handler = self._get_vector_db()
      resp = db_handler.query(query)
      return resp.data_frame
  
imports: import copy
  from typing import List
  import pandas
  import mindsdb_sql.planner.utils
  from mindsdb_sql.parser.ast import BinaryOperation, Constant, Identifier, Select, Update, Delete, Star
  from mindsdb_sql.parser.dialects.mindsdb import CreatePredictor
  import mindsdb.interfaces.storage.db
  from mindsdb.integrations.libs.vectordatabase_handler import TableField
  from mindsdb.utilities.exception import EntityExistsError, EntityNotExistsError
label_desc: Use image node_id 2 for calling the KnowledgeBaseTable obj's underlying member method code with example usage: obj.select_query(query) and returns: resp