OCAI Development Guide¶
OCAI is composed by many repositories, divided into two main categories: CORE and Tailored. The CORE repositories have the main (generic) component logic that encompasses all features of OCAI. The Tailored repositories hold bespoke code applicable to a specific context or organization, providing customization and additional functionality. Although the Tailored repositories may significantly add or change the functionalities provided by the CORE components, the Tailored repositories often only provide configuration directives without any custom code changes.
CORE OCAI Respositories¶
The CORE repositories are comprised of the following:
- ocai-core-base-image: Contains a base image for all docker components. This is based on the python base image with large libraries pre-installed (e.g., torch) and NLP-related artifacts. This way, all OCAI images are built on top of large layers that change very rarely. The layers that each OCAI module adds are very small.
- ocai-core-commons: Library with OCAI objects shared by other OCAI components.
- ocai-core-knowledge-loader: Component responsible for loading the Knowledge Graph and Elasticsearch with data from external sources.
- ocai-core-search-server: Component that provides a search REST API that can be used by, e.g., a User Interface.
- ocai-core-ui: User interface that provides a gateway for users to interact with OCAI.
Tailored OCAI Repositories¶
The tailoring of OCAI needs to be carried out according to a specific context or organization. However, the OCAI Starter repositories provide an example or skeleton that can be used to deploy a fully functional OCAI instance:
- OCAI Starter Knowledge Loader: Component with basic configuration examples for loading the Knowledge Graph and Elasticsearch with data from external sources.
- OCAI Starter Search Server: Configured component that provides a fully functional search REST API for a User Interface to use.
- OCAI Starter User Interface: A fully configured User Interface that provides a gateway for users to interact with OCAI.
- OCAI Starter Deployment:
OCAI is made up of many components and services that need to be deployed simultaneously and interconnected in a specific manner. This repository provides a set of
docker composefiles that is able to deploy and interconnect all other OCAI components.