code: def test_caching_with_models_v2():
      messages = [
          {
              "role": "user",
              "content": "who is ishaan CTO of litellm from litellm 2023",
          }
      ]
      litellm.cache = Cache()
      print("test2 for caching")
      response1 = completion(
          model="gpt-3.5-turbo", messages=messages, caching=True
      )
      response2 = completion(
          model="gpt-3.5-turbo", messages=messages, caching=True
      )
      response3 = completion(
          model="command-nightly", messages=messages, caching=True
      )
      print(f"response1: {response1}")
      print(f"response2: {response2}")
      print(f"response3: {response3}")
      litellm.cache = None
      litellm.success_callback = []
      litellm._async_success_callback = []
      if (
          response3["choices"][0]["message"]["content"]
          == response2["choices"][0]["message"]["content"]
      ):
          # if models are different, it should not return cached response
          print(f"response2: {response2}")
          print(f"response3: {response3}")
          pytest.fail(f"Error occurred:")
      if (
          response1["choices"][0]["message"]["content"]
          != response2["choices"][0]["message"]["content"]
      ):
          print(f"response1: {response1}")
          print(f"response2: {response2}")
          pytest.fail(f"Error occurred:")
  
imports: import sys, os, uuid
  import time
  import traceback
  from dotenv import load_dotenv
  import os
  import pytest
  import litellm
  from litellm import embedding, completion
  from litellm.caching import Cache
  import random
  import hashlib
  import random
  import string
label_desc: Use image node_id 5 for calling a global function with example usage: test_caching_with_models_v2() without return types