code: def test_no_input_columns(self, mock_handler):
      self.run_sql("create database proj")
  
      df = pd.DataFrame(
          {
              "id": [1, 2, 3, 4],
              "content1": ["hello", "world", "foo", "bar"],
              "content2": ["world", "hello", "bar", "foo"],
          }
      )
      self.save_file("df", df)
  
      # create the model with no input columns specified should use
      # all columns when embedding the documents
      self.run_sql(
          """
              CREATE MODEL proj.test_dummy_no_input_columns
              PREDICT embeddings
              USING
                  engine='langchain_embedding',
                  class = 'fake', -- a more user friendly name
                  size = 512
              """
      )
  
      self.wait_predictor("proj", "test_dummy_no_input_columns")
  
      # predictions
      # one line
      ret = self.run_sql(
          """
              SELECT * FROM proj.test_dummy_no_input_columns
              WHERE content1='hello'
              AND content2='world'
              AND id = 1
              """
      )
  
      assert "content1" in ret.columns
      assert "content2" in ret.columns
      assert "id" in ret.columns or "`id`" in ret.columns
      assert "embeddings" in ret.columns
  
      # multiple lines
      ret = self.run_sql(
          """
              SELECT * FROM proj.test_dummy_no_input_columns
              JOIN files.df
              """
      )
  
      assert "content1" in ret.columns
      assert "content2" in ret.columns
      assert ret.shape[0] == 4
  
      # create the model with no input columns specified,
      # but with a given from dataframe should use all the columns
      # from the dataframe when embedding the documents
      ret = self.run_sql(
          """
              CREATE MODEL proj.test_dummy_no_input_columns_from_df
              FROM files (
                  SELECT *, NULL as embeddings FROM df  -- this requires an empty column called embeddings
              )
              PREDICT embeddings
              USING
                  engine='langchain_embedding',
                  class = 'fake', -- a more user friendly name
                  size = 512
              """
      )
  
      self.wait_predictor("proj", "test_dummy_no_input_columns_from_df")
  
      # input columns == ['id', 'content1', 'content2']
      # predictions
      # one line
      ret = self.run_sql(
          """
              SELECT * FROM proj.test_dummy_no_input_columns_from_df
              WHERE content1='hello'
              AND content2='world'
              AND id = 1  -- looks like 'id' will be quoted
              """
      )
  
      # missing columns id
      with pytest.raises(Exception):
          self.run_sql(
              """
                  SELECT * FROM proj.test_dummy_no_input_columns_from_df
                  WHERE content1='hello'
                  AND content2='world'
                  """
          )
  
file_path: mindsdb/tests/unit/ml_handlers/test_langchain_embedding.py
imports: import os
  import time
  from unittest.mock import patch
  import pandas
  import pytest
  from mindsdb_sql import parse_sql
  from ..executor_test_base import BaseExecutorTest
label_desc: Use image node_id 5 for calling the TestLangchainEmbedding obj's underlying member method code with example usage: obj.test_no_input_columns(mock_handler) without return types