This directory contains JSON schemas for all embedding functions in Chroma. The purpose of having these schemas is to support cross-language compatibility and to validate that changes in one client library do not accidentally diverge from others.
Each schema follows the JSON Schema Draft-07 specification and includes:
version
: The version of the schematitle
: The title of the schemadescription
: A description of the schemaproperties
: The properties that can be configured for the embedding functionrequired
: The properties that are required for the embedding functionadditionalProperties
: Whether additional properties are allowed (always set tofalse
to ensure strict validation)
These schemas are used by both the Python and JavaScript clients to validate embedding function configurations.
from chromadb.utils.embedding_functions.schemas import validate_config
# Validate a configuration
config = {
"api_key_env_var": "CHROMA_OPENAI_API_KEY",
"model_name": "text-embedding-ada-002"
}
validate_config(config, "openai")
import { validateConfig } from '@chromadb/core';
// Validate a configuration
const config = {
api_key_env_var: "CHROMA_OPENAI_API_KEY",
model_name: "text-embedding-ada-002"
};
validateConfig(config, "openai");
To add a new schema:
- Create a new JSON file in this directory with the name of the embedding function (e.g.,
new_function.json
) - Define the schema following the JSON Schema Draft-07 specification
- Update the embedding function implementations in both Python and JavaScript to use the schema for validation
Each schema includes a version number to support future changes to embedding function configurations. When making changes to a schema, increment the version number to ensure backward compatibility.