
prerna.engine.impl.model.EmbeddedModelEngine Maven / Gradle / Ivy
The newest version!
package prerna.engine.impl.model;
import java.time.ZonedDateTime;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import prerna.ds.py.PyUtils;
import prerna.engine.api.ModelTypeEnum;
import prerna.engine.impl.model.workers.ModelEngineInferenceLogsWorker;
import prerna.om.Insight;
public class EmbeddedModelEngine extends AbstractPythonModelEngine {
@Override
public ModelTypeEnum getModelType() {
return ModelTypeEnum.EMBEDDED;
}
protected List keywordExtractionCall(Object input, Insight insight, Map parameters) {
checkSocketStatus();
StringBuilder callMaker = new StringBuilder(varName);
String inputAsString = PyUtils.determineStringType(input);
callMaker.append(".keyword_extraction(input = ").append(inputAsString);
if (parameters != null && !parameters.isEmpty()) {
callMaker.append(", **").append(PyUtils.determineStringType(parameters));
}
callMaker.append(")");
List output = (List) pyt.runSmssWrapperEval(callMaker.toString(), insight);
return output;
}
public List keywordExtraction(Object input, Insight insight, Map parameters) {
ZonedDateTime inputTime = ZonedDateTime.now();
List keywordExtractionResponse = keywordExtractionCall(input, insight, parameters);
ZonedDateTime outputTime = ZonedDateTime.now();
if (inferenceLogsEnbaled) {
String messageId = UUID.randomUUID().toString();
Thread inferenceRecorder = new Thread(new ModelEngineInferenceLogsWorker (
/*messageId*/messageId,
/*messageMethod*/"textKeywords",
/*engine*/this,
/*insight*/insight,
/*context*/null,
/*prompt*/input + "",
/*fullPrompt*/null,
/*promptTokens*/null,
/*inputTime*/inputTime,
/*response*/PyUtils.determineStringType(keywordExtractionResponse),
/*responseTokens*/null,
/*outputTime*/outputTime
));
inferenceRecorder.start();
}
return keywordExtractionResponse;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy