imProving Agent is Autonomous Reasoning Agent built on top of Scalable Precision Medicine Oriented Knowledge Engine (SPOKE) and is part of the NCATS Biomedical Data Translator Network. It aims to improve user queries by utilizing EHR and multi-omic cohorts to extract the best knowledge for a given concept. Use these links to find out more about imProving Agents's Data, its algorithms, or some of its multi-omic cohort data.
Find a Jupyter notebook with some basic examples of appropriate Translator Reasoner API queries here.
imProving Agent relies on a bolt connection to a Neo4j instance of SPOKE
For ranking, imProving Agent relies on PSEVs. PSEVs are accessed via the psev-service
Depending on the environment in which imProving Agent is to be run, a number of environment variables must be set.
The following variables must be set for deployment in the ITRB test, staging, and production environments:
APP_ENV_IA
should be set to itrb
AWS_REGION
should be set to the AWS region in which the secrets
noted below are stored.NEO4J_SPOKE_HOSTNAME
should be set to the environment-specific (CI,
Production, Test) hostname of the instance hosting SPOKENEO4J_SECRETS_NAME
should be set to the environment-specific name
of the secret that contains the authentication credentials for SPOKEPSEV_SECRETS_NAME
should be set to the environment-specific name of
the secrets that will be used to authenticate with the psev-servicePSEV_SERVICE_HOSTNAME
the environment-specific hostname of the
instance hosting the psev-service. In most cases, this should be set to
the same value as the NEO4J hostname aboveAPP_ENV_IA
should be set to local
or dev
NEO4J_SPOKE_HOSTNAME
should be set to the docker network name of
the SPOKE instance to which imProving Agent will connect. In some cases,
e.g. when running against remote databases, this can be set to the
remote hostnameNEO4J_SPOKE_PASS
should be set to the password of the local SPOKE
Neo4j instanceNEO4J_SPOKE_USER
should be set to the user of the local SPOKE Neo4j
instancePSEV_API_KEY
should be set to the value of the key that will be
used to connect with the local psev-service instancePSEV_SERVICE_HOSTNAME
should be set to the docker network name of
the psev-service to which imProving Agent will connectAWS_SHARED_CREDENTIALS_FILE
if running locally against remote
resources in AWS, this should be set to the location where boto3
can
find your AWS credentialsThe imProving Agent HTTP service will be exposed on port 3031 and uwsgi stats will be exposed on port 3032. When running locally via docker-compose, these ports are bound to host ports 3033 and 3034, respectively.
Given the depedencies described above, start the service with
docker-compose up web