enabledbooleantrueWhether to enable the module.
debugbooleanfalseEnable debug logging and write chunks to public/__embeddings/.
searchboolean | { enabled?: boolean, route?: string }{ enabled: true, route: '/api/search' }Configure the Search API endpoint. Set false to disable.
chatboolean | { enabled?: boolean, route?: string }{ enabled: true, route: '/api/chat' }Configure the Chat API endpoint (RAG with streaming). Set false to disable.
bulkboolean | { enabled?: boolean, route?: string }{ enabled: true, route: '/_ai-kit/bulk' }Configure the Bulk API endpoint (static JSONL file). Set false to disable.
embeddingsEmbeddingsConfigConfigure embedding generation and vector storage.
embeddings.modelstringBase model name. Provider-agnostic - the same model name works across providers that support it.
embeddings.dimensionsnumberVector dimensions. Usually auto-detected via getModelDimensions().
embeddings.buildProvider{ preset: string, apiKey?: string, baseURL?: string }Provider for build-time embedding generation.
Available presets: transformers.js, ollama, openai, google, mistral, cohere, anthropic.
embeddings: {
model: 'bge-small-en-v1.5',
buildProvider: { preset: 'transformers.js' }
}
embeddings.runtimeProvider{ preset: string, apiKey?: string, baseURL?: string }buildProviderProvider for runtime query embeddings. Can differ from build provider - useful for local build + cloud runtime.
Additional preset: workers-ai (Cloudflare Workers AI, runtime only).
embeddings: {
model: 'bge-small-en-v1.5',
buildProvider: { preset: 'transformers.js' },
runtimeProvider: { preset: 'openai', apiKey: process.env.OPENAI_API_KEY }
}
embeddings.chunking{ chunkSize?: number, chunkOverlap?: number }{ chunkSize: 400, chunkOverlap: 50 }Content chunking strategy.
embeddings.vectorDatabaseVectorDbConfig{ provider: 'sqlite-vec' }Configure vector storage backend.
vectorDatabase.providerAvailable providers:
| Provider | Use Case |
|---|---|
sqlite-vec | Local SQLite with vector extension (default) |
libsql-node | Turso/libsql local |
libsql-web | Turso/libsql browser |
libsql-http | Turso/libsql remote |
pgvector | PostgreSQL with pgvector |
upstash | Upstash Vector |
cloudflare-vectorize | Cloudflare Vectorize |
jsonl | Static JSONL file |
vectorDatabase.pathstring.data/ai-kit/embeddings.dbFile path for sqlite-vec, libsql-node, jsonl.
vectorDatabase.urlstringConnection URL for libsql-*, pgvector, upstash.
vectorDatabase.authTokenstringAuth token for libsql remote connections.
vectorDatabase.tokenstringToken for Upstash Vector.
vectorDatabase.indexNamestringIndex name for Cloudflare Vectorize.
vectorDatabase.metric'cosine' | 'euclidean' | 'dot-product''cosine'Distance metric for vector similarity.
llmfalse | { provider: string, model: string, apiKey?: string, baseURL?: string }falseConfigure LLM for RAG (chat API) and query rewriting. Required for chat functionality.
llm: {
provider: 'openai',
model: 'gpt-4o-mini',
apiKey: process.env.OPENAI_API_KEY
}
Providers: openai, anthropic, google, mistral, cohere, ollama, workers-ai.
queryRewriting{ enabled?: boolean, systemPrompt?: string }{ enabled: true } (if LLM configured)Query rewriting expands user queries with synonyms and related terms before embedding. Auto-disabled for models <7B params.
includestring[]['/**']Glob patterns for routes to index. See Filtering Routes.
excludestring[][]Glob patterns for routes to exclude from indexing.