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.