code: def test_delete_from_kb(self):
      # create the knowledge base
      sql = f"""
              CREATE KNOWLEDGE BASE test_kb
              USING
              MODEL = {self.embedding_model_name},
              STORAGE = {self.vector_database_name}.{self.vector_database_table_name}
          """
  
      self.run_sql(sql)
  
      # delete with id filter
      sql = """
              DELETE FROM test_kb
              WHERE id = 'id1'
          """
      self.run_sql(sql)
  
      # verify the knowledge base is updated
      sql = """
              SELECT *
              FROM test_kb
              WHERE id = 'id1'
          """
      df = self.run_sql(sql)
      assert df.shape[0] == 0
  
      # delete with metadata filter
      sql = """
              DELETE FROM test_kb
              WHERE `metadata.datasource` = 'web'
          """
      self.run_sql(sql)
  
      # verify the knowledge base is updated
      sql = """
              SELECT *
              FROM test_kb
              WHERE id = 'id2'
          """
      df = self.run_sql(sql)
      assert df.shape[0] == 0
  
      # delete from the knowledge base without any filters is not allowed
      sql = """
              DELETE FROM test_kb
          """
      with pytest.raises(Exception):
          self.run_sql(sql)
  
imports: import tempfile
  import time
  from unittest.mock import patch
  import pandas
  import pytest
  from mindsdb_sql import parse_sql
  from mindsdb.interfaces.storage.db import KnowledgeBase
  from .executor_test_base import BaseExecutorTest
label_desc: Use image node_id 10 for calling the TestKnowledgeBase obj's underlying member method code with example usage: obj.test_delete_from_kb() without return types