ecosystem.Ai runtime release history
0.9.6.0
New functionality
- JIT java compilation. Generation of required class files from java source files. Removes the need for a build pipeline when using customer pre and post scoring logic.
- Split runtime into with and without deeplearning. By default deeplearning functionality will not be applied.
- Threading updates to improve performance
- Further OpenApi updates
- Rewards Strategy enables initial implementation of configurable reward functions for the online learning algorithms.
- Localbuild repo changes pending
Updated dependencies
- org.springframework.boot: 3.4.4
- mongodb.version: 6.0.20
- djl.version: 0.32.0
- org.springframework.cloud: 4.2.1
- apache.httpcomponents.client5
- presto: 0.291
- org.apache.commons: 2.11.0
- org.springframework.boot.spring-boot-loader
- org.springdoc.springdoc-openapi-starter-webmvc-ui: 2.8.5
- org.apache.maven.plugins.maven-compiler-plugin: 3.10.1
0.9.5.0
New functionality
- Runtime details output
- /config API displays extensive details of current runtime configuration. This is an ongoing activity to enhance the resilience capabilities.
- Allow Q-learning reward function to use logging data for state calculations
- Add uniform as an approach for handling missing offers in the Bayesian Dynamic interaction algorithm. This will score missing offers by smapling from a random distribution in order to add exploration rather than the default approach of ignoring missing offers
- Threading updates to improve performance
- Reviewed mongoDB connection strategy to better cater for new mongoDB drivers
- Dynamic Eligibility Enhancements
- Added support for conditional variables, whose value varies based on a condition, and conditional rules, which are applied when a condition is met.
- Added support for looking up values from any data structure available in the scoring process
- LocalBuild repo updates
- RuntimeApplication
- Added import of:
- com.ecosystem.plugin.PluginLoader
- com.ecosystem.utils.EnvironmentalVariables
- com.ecosystem.worker.license.ValidationService
- com.ecosystem.utils.log.LogManager
- com.ecosystem.utils.log.Logger
- org.springdoc.core.models.GroupedOpenApi
- org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration
- org.springframework.context.ConfigurableApplicationContext
- org.springframework.security.config.Customizer
- org.springframework.security.web.SecurityFilterChain
- com.ecosystem.worker.license.ValidationService.getEnvKey
- com.ecosystem.worker.license.ValidationService.setEnvKey
- java.io.IOException
- java.util.*
- Added import of:
- ProductMaster
- Add tracking of UPDATE for refreshing of Virtual Variables
- Add mongoClient to getPredictionResult in /invocations
- Migration from swagger to OpenApi
- Added PrePredictAutoDate which will automatically add date enrichments to the feature store to be used in model scoring and post scoring logic
- RuntimeApplication
- Miscellaneous
- MONGO_CONNECT environment variable can be used to specify the connection string for MongoDB at startup
- Moved com.ecosystem.utils.DateUtils to com.ecosystem.utils.DateUtilities.DateUtils
- Allow SSL_KEYSTORE_LOCATION and SSL_KEYSTORE_PASSWORD to be used in the kerberos authentication for kafka
- Add JSONFlattener util which flattens out nested JSON structures which are to be written to SQL databases
- Enhanced date format conversion functionality
- Enhaced /refresh API to refresh Virtual Variables without requiring a restart. This includes changes changes to PreScoreSuper as well as in other areas of the code base
- Bug fix for the minute index in the contacts and responses logging collections
Updated and additional dependencies
- org.springframework.boot: 3.4.1
- kerberos.extension.version: 2.1.1
- java.version: 17
- h2o.version: 3.46.0.6
- mongodb.version: 5.3.1
- djl.version: 0.31.1
- com.github.oshi.oshi-core: 6.6.5
- ai.djl.pytorch.pytorch-native-cpu: 2.5.1
- ai.djl.pytorch.pytorch-jni: 2.5.1-0.31.1
- org.apache.logging.log4j 2.24.3
- org.apache.lucene: 9.12.1
- org.springframework.cloud: 4.2.1
- org.apache.httpcomponents.client5.httpclient5
- org.apache.commons.commons-configuration2: 2.11.0
- org.apache.commons.commons-lang3: 3.17.0
- org.facebook.presto.presto-jdbc: 0.290
- org.codehaus.plexus.plexus-utils: 3.6.0
- org.apache.kafka.kafka-clients: 3.9.0
- org.thymeleaf.thymeleaf: 3.1.3.RELEASE
- org.springdoc.springdoc-openapi-starter-webmvc-ui: 2.8.3
- joda-time.joda-time.jar: 2.13.1
- org.json.json: 20250107
0.9.4.3
New functionality
- Ecosystem Rewards Algorithm
- Dynamic Eligbility functionality allows configuration of eligibility rules which are applied before and during the scoring of the Ecosystem Rewards algorithm, improving performance and reducing the need for custom logic in the post scoring phase. Only supported through the ecosystem.Ai python package.
- Parameter Access
- Added support for virtual variables to the Parameter Access. Virtual variables can be used to create a new variable in the Parameter Access featuresObj by bucketing or combining variables in the existing dataset.
- PreScoreDynamic pre score added which is used to add the virtual variables to params
- MongoClient added to prePredictStageOne to allow for reading of Virtual Variable configuration
- Added support for virtual variables to the Parameter Access. Virtual variables can be used to create a new variable in the Parameter Access featuresObj by bucketing or combining variables in the existing dataset.
- Threading updates to improve performance
- Network Runtime
- Added lookup_passthrough network type. lookup_passthrough networks will route based on the value of a key in the parameter access store and will pass the results from the routed runtime back without any further processing.
- Validity of network key values can be managed using a network_validity configuration with validity specified using either cohort_active_yn or active date ranges. Invalid cohorts will be assigned a default value. If not default is specified 0 will be used
- Added lookup_passthrough network type. lookup_passthrough networks will route based on the value of a key in the parameter access store and will pass the results from the routed runtime back without any further processing.
- Bayesian Probabilistic Algorithm
- Added support for the Baysian Probabilistic Dynamic Interaction algorithm which uses a Naive Bayes style online learning algorithm
- LocalBuild repo updates
- RuntimeApplication
- Added import of org.json.JSONArray
- Added initialSettings object used to test for changes in additional IntelliJ plugin settings to allow for automatic refresh
- Added mongoClient parameter to rollingMaster.indexes
- Added PreScoreDynamic for DynamicInteraction cases, required for Virtual Variable functionality
- Use generateOptionsSequence for looping through options store in PlatformDynamicEngagement
- RuntimeApplication
- Miscellaneous
- Adjustments to date processing functionality
- Update /refresh API to cater for additional functionality
- Add MongoClient to ecosystemMaster.getPredictionResult to allow access to mongo logging and improve latency of Options Store access
- generateOptionsSequence added to PostScoreSuper to allow for more efficient looping through the Options Store in the post scoring logic
- PlatformDynamicEngagement template updated to include generateOptionsSequence
- Change static_offers offer matrix error to warning as a version of the offer matrix is still loaded
- Adjustments to default Q-learning rewards functionality
Updated and additional dependencies
- mongodb.version: 5.0.1
- djl.version: 0.27.0
- org.apache.logging.log4j: 2.23.1
- org.apache.lucene: 9.10
- org.facebook.presto.presto-jdbc: 0.286
- org.apache.commons.commons-configuration2: 2.10.1
- org.json.json: 20240303
0.9.2.1
New functionality
- Ecosystem Rewards Algorithm
- Thompson Sampling based algorithm for online learning
- Options Store functionality added which tracks the state of an online learning algorithm in production
- dynamic_engagement collection added to ecosystem_meta storing configurations of online learning algorithms
- Logging collections used for online updates, requiring additional indexes to be created
- Network Runtime
- Network runtimes can be configured to route traffic to different runtimes based on the lookup of a key in the parameter access store or by dyanmically allocating customers to experiment groups.
Updated and additional dependencies
- org.springframework.boot: 2.7.7
- tensorflow.version: 0.4.2
- h2o.version: 3.40.0.1
- mongodb.version: 4.8.2
- org.springframework.boot.spring-boot-maven-plugin: 2.7.8
- org.springframework.security.kerberos.spring-security-kerberos-client: 1.0.1.RELEASE
- org.springframework.boot.spring-boot-starter-security
- org.springframework.boot.spring-boot-starter-web
- org.springframework.boot.spring-boot-starter-data-cassandra
- net.lingala.zip4j: 2.11.3
- com.facebook.presto.presto-jdbc: 0.279
- org.codehaus.plexus.plexus-utils: 3.5.0
- org.apache.kafka.kafka-clients: 3.4.0
- org.thymeleaf.thymeleaf: 3.1.1.RELEASE
- org.springdoc.springdoc-openapi-ui: 1.6.14
- org.springdoc.springdoc-openapi-webmvc-core: 1.6.14
- joda-time.jar: 2.12.2
- org.reactivestreams.reactive-streams: 1.0.4
- org.json.json: 20220924
- com.datastax.oss.java-driver-core: 4.15.0
- com.datastax.oss.java-driver-query-builder: 4.15.0
- com.datastax.oss.native-protocol: 1.5.1
- org.apache.logging.log4j: 2.19.0
- org.slf4j.slf4j-nop: 1.7.36
- org.slf4j.slf4j-api: 1.7.36
- org.iq80.leveldb.leveldb: 0.12
- com.google.guava.guava: 31.1-jre
- org.rocksdb.rocksdbjni: 6.29.5
- org.fusesource.leveldbjni.leveldbjni-all: 1.8
- org.mapdb.mapdb: 3.0.9