# Needed to use PSC build import exec_anaconda exec_anaconda.exec_anaconda_or_die() # Needed to import libraries in /lib folder import sys, os sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "lib")) from splunklib.searchcommands import dispatch, GeneratingCommand, Configuration, Option from splunklib.client import connect from splunklib.binding import handler import setup_logging logger = setup_logging.get_logger() @Configuration() class SPLGenFeedbackCommand(GeneratingCommand): """ Generating command that submit feedback information """ sessionId = Option(require=True) # Required plain English description of a query prompt = Option(require=True) # Required returned query string response = Option(require=True) # Required correct/incorrect boolean correct = Option(require=True) def generate(self): try: service = connect( token=self._metadata.searchinfo.session_key, handler=handler(timeout=1), host="127.0.0.1", ) except Exception as e: service = None # Retrieve the index for the data feedback_indx = service.indexes["splgen_fb"] # Submit an event over HTTP feedback_indx.submit( f"session_id='{self.sessionId}' query='{self.prompt}',response='{self.response}',correct={self.correct}", sourcetype="splgen_feedback", host="local", ) yield self.gen_record( query=self.prompt, response=self.response, correct=self.correct ) dispatch(command_class=SPLGenFeedbackCommand)