code: def test_should_run_privategpt(self):
      ##################
      # INGEST
      ##################
      print("INGEST")
  
      source_directory = "source_documents"
      if shutil.os.path.exists(source_directory):
          shutil.rmtree(source_directory)
  
      url = "https://www.eisenhowerlibrary.gov/sites/default/files/file/1953_state_of_the_union.pdf"
      pdf_destination = "state_of_the_union.pdf"
      response = requests.get(url)
      if response.status_code == 200:
          with open(pdf_destination, "wb") as file:
              file.write(response.content)
  
      os.makedirs(source_directory, exist_ok=True)
      shutil.move(pdf_destination, source_directory)
  
      app_path = Path("apps", "privategpt", "ingest.py")
      inputs = ""
      command = ["python", app_path, "--directory", "source_documents"]
  
      process = subprocess.Popen(
          command,
          stdin=subprocess.PIPE,
          stdout=subprocess.PIPE,
          stderr=subprocess.PIPE,
      )
      stdout, stderr = process.communicate(inputs.encode())
  
      decoded_stdout = stdout.decode()
      assert "Data ingestion complete" in decoded_stdout
      decoded_stderr = stderr.decode()
      assert "Ray" in decoded_stderr
  
      ##################
      # PRIVATE GPT
      ##################
  
      inputs = "When was NATO created?\nexit\n"
  
      app_path = Path("apps", "privategpt", "privateGPT.py")
  
      command = ["python", app_path]
  
      process = subprocess.Popen(
          command,
          stdin=subprocess.PIPE,
          stdout=subprocess.PIPE,
          stderr=subprocess.PIPE,
      )
      stdout, stderr = process.communicate(inputs.encode())
  
      decoded_stdout = stdout.decode()
      assert "April 4, 1949" in decoded_stdout
  
file_path: evadb/test/app_tests/test_privategpt.py
imports: import os
  import shutil
  import subprocess
  import unittest
  from pathlib import Path
  from test.util import get_evadb_for_testing, shutdown_ray
  import pytest
  import requests
label_desc: Use image node_id 5 for calling the PrivateGPTTest obj's underlying member method code with example usage: obj.test_should_run_privategpt() without return types