ai-support.spec.md
This document describes the structure of the ai-support.json file. The JSON file is utilized by an automation to update our documentation with the AI libraries/abstractions/gateways that we support.
The general structure of the JSON file is that of an object who's keys
map to a descriptor for a supported AI thing. Each descriptor has a kind
property that indicates what sort of AI thing is being described.
An abstraction is a module that provides a single common interface to many LLMs or gateways. An abstraction descriptor has the following fields:
title (string): A human readable name for the abstraction.featuresPreamble (string): An optional block of text that should be added
to the document prior to the features table.providersPreamble (string): An optional block of text that should be added
to the document prior to the providers table.features (object[]): An array of feature entities.providers (object[]): An array of provider entities.A gateway is a service that provides access to multiple large language models (LLMs) through a single API. A gateway descriptor has the following fields:
title (string): A human readable name for the gateway.preamble (string): An optional block of text that should be added to the
document prior to the models table.footnote (string): An optional block of text that should be added to the
document subsequent to the models table.models (object[]): An array of model entities.A SDK is a module that provides an API that is specific to a single LLM. An SDK descriptor has the following fields:
title (string): A human readable name for the SDK.featuresPreamble (string): An optional block of text that should be added
to the document prior to the features table.features (object[]): An array of feature entities.Describes an LLM feature. It is an object with the following fields:
title (string): A human readable name for the feature.supported (boolean): Indicates if our instrumentation supports the feature
or not.Describes an LLM, the features it supports, and the features we instrument. It is an object with the following fields:
name (string): A human readable name for the LLM.features (object[]): An array of feature entities.Describes an LLM or gateway that is supported by an abstraction. It is an object with the following fields:
name (string): A human readable name for the LLM or gateway.supported (boolean): Indicates if we instrument this provider within the
context of the abstraction.transitively (boolean): Indicates if we instrument this provider directly
in the instrumentation for the abstraction (false), or if we rely on a
transitive instrumentation (true).