code: import time  #← 実行時間を計測するためにtimeモジュールをインポート
  import langchain
  from langchain.cache import InMemoryCache  #← InMemoryCacheをインポート
  from langchain.chat_models import ChatOpenAI
  from langchain.schema import HumanMessage
  
  langchain.llm_cache = InMemoryCache() #← llm_cacheにInMemoryCacheを設定
  
  chat = ChatOpenAI()
  start = time.time() #← 実行開始時間を記録
  result = chat([ #← 一度目の実行を行う
      HumanMessage(content="こんにちは！")
  ])
  
  end = time.time() #← 実行終了時間を記録
  print(result.content)
  print(f"実行時間: {end - start}秒")
  
  start = time.time() #← 実行開始時間を記録
  result = chat([ #← 同じ内容で二度目の実行を行うことでキャッシュが利用され、即時に実行完了している
      HumanMessage(content="こんにちは！")
  ])
  
  end = time.time() #← 実行終了時間を記録
  print(result.content)
  print(f"実行時間: {end - start}秒")
  
apis: langchain.schema.HumanMessage langchain.chat_models.ChatOpenAI langchain.cache.InMemoryCache
extract_api: [((237, 252), 'langchain.cache.InMemoryCache', 'InMemoryCache', ([], {}), '()\n', (250, 252), False, 'from langchain.cache import InMemoryCache\n'), ((291, 303), 'langchain.chat_models.ChatOpenAI', 'ChatOpenAI', ([], {}), '()\n', (301, 303), False, 'from langchain.chat_models import ChatOpenAI\n'), ((312, 323), 'time.time', 'time.time', ([], {}), '()\n', (321, 323), False, 'import time\n'), ((411, 422), 'time.time', 'time.time', ([], {}), '()\n', (420, 422), False, 'import time\n'), ((498, 509), 'time.time', 'time.time', ([], {}), '()\n', (507, 509), False, 'import time\n'), ((627, 638), 'time.time', 'time.time', ([], {}), '()\n', (636, 638), False, 'import time\n'), ((370, 400), 'langchain.schema.HumanMessage', 'HumanMessage', ([], {'content': '"""こんにちは！"""'}), "(content='こんにちは！')\n", (382, 400), False, 'from langchain.schema import HumanMessage\n'), ((586, 616), 'langchain.schema.HumanMessage', 'HumanMessage', ([], {'content': '"""こんにちは！"""'}), "(content='こんにちは！')\n", (598, 616), False, 'from langchain.schema import HumanMessage\n')]