| 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 |