code: def main(cfg: DictConfig, restore: bool):
      """
      Loads faiss index and allows commandline queries
      to the index. Builds new index if one hasn't been built yet.
  
      Args:
          cfg: Config file specifying index parameters
          restore: Whether to restore model weights trained
                   by the user. Otherwise will load weights
                   used before self alignment pretraining.
      """
  
      if not os.path.isfile(cfg.index.index_save_name) or (
          cfg.apply_pca
          and not os.path.isfile(cfg.index.pca.pca_save_name)
          or not os.path.isfile(cfg.index.idx_to_id)
      ):
          logging.warning(
              "Either no index and/or no mapping from entity idx to ids exists. Please run `build_index.py`"
          )
          return
  
      logging.info("Loading entity linking encoder model")
      model = load_model(cfg.model, restore)
  
      logging.info("Loading index and associated files")
      index = faiss.read_index(cfg.index.index_save_name)
      idx2id = pkl.load(open(cfg.index.idx_to_id, "rb"))
      id2string = pkl.load(
          open(cfg.index.id_to_string, "rb")
      )  # Should be created during dataset prep
  
      if cfg.index.apply_pca:
          pca = pkl.load(open(cfg.index.pca.pca_save_name, "rb"))
  
      while True:
          query = input("enter index query: ")
          output = query_index(
              query,
              cfg.top_n,
              cfg.index,
              model,
              index,
              pca,
              idx2id,
              id2string,
          )
  
          if query == "exit":
              break
  
          for concept_id in output:
              concept_details = output[concept_id]
              concept_id = "C" + str(concept_id).zfill(7)
              print(concept_id, concept_details)
  
          print("----------------\n")
  
file_path: NeMo/examples/nlp/entity_linking/query_index.py
imports: import os
  import pickle
  from argparse import ArgumentParser
  from collections import OrderedDict
  from typing import Dict
  import numpy
  import torch
  from build_index import load_model
  from omegaconf import DictConfig, OmegaConf
  from nemo.utils import logging
label_desc: Use image node_id 3 for calling a global function with example usage: main(cfg, restore) without return types