crl-demo / shared_streamlit_funcs.py
bryan-stearns
Generalizing jar path to also work on local machine
49dd4ec
raw
history blame contribute delete
No virus
1.79 kB
import streamlit as st
import jnius_config
if not jnius_config.vm_running:
jnius_config.set_classpath("./CognitiveReasonerLite.jar")
from jnius import autoclass # For running Java. See https://pyjnius.readthedocs.io/en/latest/ for documentation.
CRL_PACKAGE = "com.optum.cogtech.crl."
def make_agent(config_name="agent_demo"):
# Start the CRL engine
st.session_state["agent"] = st.session_state.Java_Agent()
# Configure the decision making
decConfig = st.session_state.Java_DecisionConfig(config_name)
decConfig.selectAll()
st.session_state.agent.addSettings(decConfig)
# Configure debug printing
st.session_state.agent.logger.disable()
st.session_state.agent.logger.setWriteToFile(False)
# st.session_state.agent.logger.setEnableLogCycles(True)
# st.session_state.agent.logger.setEnableLogContexts(True)
# st.session_state.agent.logger.setEnableLogOperators(True)
# st.session_state.agent.logger.setEnableLogActivation(True)
return decConfig
def init():
# Define the Java<->Python interface needed to run the CRL jar
st.session_state["Java_ArrayList"] = autoclass('java.util.ArrayList')
st.session_state["Java_Agent"] = autoclass(CRL_PACKAGE+"Agent")
st.session_state["Java_DecisionConfig"] = autoclass(CRL_PACKAGE+"DecisionConfig")
st.session_state["Java_Concept"] = autoclass(CRL_PACKAGE+"Concept")
st.session_state["Java_ActionReportActiveConcept"] = autoclass(CRL_PACKAGE+"ActionReportActiveConcept")
make_agent()
def ReportActiveConceptActionInList(outputAttribute, attributeForReportValue):
collection = st.session_state.Java_ArrayList()
collection.add(st.session_state.Java_ActionReportActiveConcept(outputAttribute, attributeForReportValue))
return collection