code: import asyncio
  
  from llama_index.core.llama_dataset import download_llama_dataset
  from llama_index.core.llama_pack import download_llama_pack
  from llama_index.core import VectorStoreIndex
  
  
  async def main():
      # DOWNLOAD LLAMADATASET
      rag_dataset, documents = download_llama_dataset("MiniCovidQaDataset", "./data")
  
      # BUILD BASIC RAG PIPELINE
      index = VectorStoreIndex.from_documents(documents=documents)
      query_engine = index.as_query_engine()
  
      # EVALUATE WITH PACK
      RagEvaluatorPack = download_llama_pack("RagEvaluatorPack", "./pack")
      rag_evaluator = RagEvaluatorPack(query_engine=query_engine, rag_dataset=rag_dataset)
  
      ############################################################################
      # NOTE: If have a lower tier subscription for OpenAI API like Usage Tier 1 #
      # then you'll need to use different batch_size and sleep_time_in_seconds.  #
      # For Usage Tier 1, settings that seemed to work well were batch_size=5,   #
      # and sleep_time_in_seconds=15 (as of December 2023.)                      #
      ############################################################################
      benchmark_df = await rag_evaluator.arun(
          batch_size=40,  # batches the number of openai api calls to make
          sleep_time_in_seconds=1,  # number of seconds sleep before making an api call
      )
      print(benchmark_df)
  
  
  if __name__ == "__main__":
      loop = asyncio.get_event_loop()
      loop.run_until_complete(main)
  
apis: llama_index.core.llama_dataset.download_llama_dataset llama_index.core.llama_pack.download_llama_pack llama_index.core.VectorStoreIndex.from_documents
extract_api: [((265, 319), 'llama_index.core.llama_dataset.download_llama_dataset', 'download_llama_dataset', (['"""MiniCovidQaDataset"""', '"""./data"""'], {}), "('MiniCovidQaDataset', './data')\n", (287, 319), False, 'from llama_index.core.llama_dataset import download_llama_dataset\n'), ((364, 416), 'llama_index.core.VectorStoreIndex.from_documents', 'VectorStoreIndex.from_documents', ([], {'documents': 'documents'}), '(documents=documents)\n', (395, 416), False, 'from llama_index.core import VectorStoreIndex\n'), ((509, 558), 'llama_index.core.llama_pack.download_llama_pack', 'download_llama_pack', (['"""RagEvaluatorPack"""', '"""./pack"""'], {}), "('RagEvaluatorPack', './pack')\n", (528, 558), False, 'from llama_index.core.llama_pack import download_llama_pack\n'), ((1409, 1433), 'asyncio.get_event_loop', 'asyncio.get_event_loop', ([], {}), '()\n', (1431, 1433), False, 'import asyncio\n')]