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.