IBM Generative AI Extensions Guide#
Open-source contributors are welcome to extend IBM Gen AI functionality via extensions that must keep the IBM Gen AI package as a dependency. This document explains what extensions are, the types of extensions that exist, and how to create them.
IBM Generative AI Core Package#
IBM Generative AI open-source repository lives under IBM Github organization. This repository is the official and unique location of IBM Gen AI core package source code.
What is an IBM Generative AI Extension?#
An extension is a software add-on that is installed on a program to enhance its capabilities. Gen AI extensions are meant to expand the capabilities of the Gen AI core package.
IBM Generative AI Extension types#
IBM Generative AI extensions can be either of the following:
official open-source extensions (supported by the project team)
third-party open-source extensions
Open-source “Gen AI official” extensions#
Extensions are meant for public use from the get-go developed as official open-source extensions.
Ownership and location#
Open-source official extensions are typically developed by the Gen AI team, or in collaboration with them. Providing maintenance to open-source official extensions is responsability of the Gen AI team.
Open-source “third-party” extensions#
All other extensions neither implemented nor officially maintained by the Gen AI team are referred to as open-source third-party extensions.
Ownership and location#
Maintaining these extensions would be the responsibility of their owners.
Extensions migration#
Extensions might be migrated from one type to another upon evaluation.
Open-source “third-party” to open-source “Gen AI official”#
If open-source third-party contributors have an interest in their extensions becoming official, they must contact the IBM Gen AI team.
Open-source “Gen AI official” to Gen AI’s core#
Upon evaluation of the Gen AI maintenance team, open-source extensions could be merged with Gen AI core code and become deprecated as extensions.
Design considerations to build extensions#
Among other patterns, a developer should consider a mix-and-match of the two following important development experience patterns to design an extension for IBM Gen AI SDK:
Extensions that simulate being part of a core class#
In spite of the extension’s code living in a separate location, try to give the impression that extended functionality is part of an IBM Gen AI core class.
Extensions that wrap core class functionality#
Designing extensions that do not integrate, but wrap functionality in Gen AI’s core for common use cases. These classes are meant to be used as entities on their own.