schemas/embedding_functions/README.md
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 to false 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:
new_function.json)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.