code: def generate_script(
      cursor: evadb.EvaDBCursor, df: pd.DataFrame, question: str
  ) -> str:
      """Generates script with llm.
  
      Args:
          cursor (EVADBCursor): evadb api cursor.
          question (str): question to ask to llm.
  
      Returns
          str: script generated by llm.
      """
      # generate summary
      all_columns = list(df)  # Creates list of all column headers
      df[all_columns] = df[all_columns].astype(str)
  
      prompt = f"""There is a dataframe in pandas (python). The name of the
              dataframe is df. This is the result of print(df.head()):
              {str(df.head())}. Return a python script with comments to get the answer to the following question: {question}. Do not write code to load the CSV file."""
  
      question_df = pd.DataFrame([{"prompt": prompt}])
      question_df.to_csv(QUESTION_PATH)
  
      cursor.drop_table("Question", if_exists=True).execute()
      cursor.query(
          """CREATE TABLE IF NOT EXISTS Question (prompt TEXT(50));"""
      ).execute()
      cursor.load(QUESTION_PATH, "Question", "csv").execute()
  
      pd.set_option("display.max_colwidth", None)
  
      query = cursor.table("Question").select("ChatGPT(prompt)")
      script_body = query.df()["chatgpt.response"][0]
  
      return script_body
  
file_path: evadb/apps/pandas_qa/pandas_qa.py
imports: import os
  import shutil
  import subprocess
  from typing import Dict
  import pandas
  import evadb
label_desc: Use image node_id 2 for calling a global function with example usage: generate_script(cursor, df, question) and returns: script_body