class_docstr: Queries a server (eg, search engine) for a set of documents.
  
  This module relies on a running HTTP server. For each retrieval it sends the query
  to this server and receives a JSON; it parses the JSON to create the response.
class_docstr_tok: ["Queries","a","server","(","eg",",","search","engine",")","for","a","set","of","documents",".","This","module","relies","on","a","running","HTTP","server",".","For","each","retrieval","it","sends","the","query","to","this","server","and","receives","a","JSON",";","it","parses","the","JSON","to","create","the","response","."]
code: def __init__(self, opt: Opt):
      super().__init__(opt=opt)
      self.server_address = self._validate_server(
          opt.get("search_server")
      )
      self._server_timeout = (
          opt["search_server_timeout"]
          if opt.get("search_server_timeout", 0) > 0
          else None
      )
      self._max_num_retries = opt.get("max_num_retries", 0)
  
file_path: ParlAI/parlai/agents/rag/retrieve_api.py
imports: from abc import ABC, abstractmethod
  import requests
  from typing import Any, Dict, List
  from parlai.core.opt import Opt
  from parlai.utils import logging
label_desc: Use image node_id 1 to create a new SearchEngineRetriever object from inherited base classes: RetrieverAPI with example: obj = SearchEngineRetriever(opt)