This is the official window.ai
client library. It provides the base interface for authenticating and using client-side AI.
The Window AI browser extension implements this interface to inject ai
into the global window
, thereby exposing the window.ai
API to web applications without the need for any dependencies on their part. But any web application can leverage this client library to consume the window.ai
API and add typechecking to it.
Note: you can interact with window.ai directly without dependencies (i.e this client library). The library's key benefits for API consumers are:
- Checking for
window.ai
installation - Type errors and type checking
- Utilities/helpers
import { getWindowAI } from 'window.ai';
// initialize the client
const ai = await getWindowAI()
ai.getCurrentModel()
ai.generateText(...)
ai.addEventListener(...)
ModelID is an enum of the available models, which are available as a TypeScript enum:
import { ModelID, parseModelID } from 'window.ai'
const model: ModelID = parseModelID(rawString)
ModelID
contains a list of model identifiers that follow
the Hugging Face format as closely
as possible.
Some examples:
// "/" Splits the organization's name from the model name
"openai/gpt-3.5-turbo"
"openai/gpt-4"
"anthropic/claude-instant-v1"
"anthropic/claude-instant-v1-100k"
"anthropic/claude-v1"
"anthropic/claude-v1-100k"
"togethercomputer/GPT-NeoXT-Chat-Base-20B"
"cohere/command-nightly"
// "Local" is a special ModelID that represents an unknown model handler
// running locally on the user's computer.
"local"
NOTE: This is an evolving standard, and may change in the future. We are currently providing backwards compatibility within the Window AI extension for old model identifiers. See DeprecatedModelID for examples.