Installation and setup
Requirements
- TYPO3 version 13 or higher.
- ke_search with a populated search index (
tx_kesearch_index). - Embedding index: The console command
ke_search_ai:embeddingindexmust be run (manually or via Scheduler) so that embeddings are stored intx_kesearchai_embeddings. See the section Building the embedding index below. - LLM API: An API key and endpoint for a chat/completions API (e.g. Mistral, OpenAI, or any OpenAI-compatible provider). Configure URL, key and model in Extension Manager under AI-generated results (RAG) → LLM.
- Embedding API: An API key and endpoint for an embeddings API (same or different provider). Configure under AI-generated results (RAG) → Embeddings.
The feature has been tested with Mistral AI (default configuration) but works with other OpenAI-compatible AI providers (e.g. OpenAI, Azure OpenAI, local models). Use the same API URL pattern and model names as required by your provider.
Installation and first steps
-
Install the extension via composer
You can either install it directly from a repository:
composer require tpwd/ke_search_aiCopied!Or if you received the extension as a ZIP file, place it in a folder named
packagesin your project root, add the path repository to yourcomposer.and then require it:json { "repositories": [ { "type": "path", "url": "packages/*" } ] }Copied!composer require tpwd/ke_search_aiCopied! -
Update the database schema
vendor/bin/typo3 database:updateschemaCopied! -
Configure the extension
Activate "Enable AI-generated results (RAG)", configure the LLM and Embedding API in the Extension Manager. See Configuration.
-
Create the embedding index
Run the console command to create the embeddings for your search index:
vendor/bin/typo3 ke_search_ai:embeddingindexCopied!
Building the embedding index
Before the feature can show answers, the embedding index must be built:
vendor/bin/typo3 ke_search_ai:embeddingindex
Options:
--pid=123Only process index entries from this storage PID.--limit=500Do at most 500 API calls per run. Default: 500.--updateOnly process new or changed entries (by content hash).--verboseSee the process in detail.
Embedding index status
To print a summary table (index size, embedding coverage, configured embedding API URL,
and the last embedding update time from tx_kesearchai_embeddings.tstamp):
vendor/bin/typo3 ke_search_ai:embeddingindex status
Optional: --pid=123 limits index size, coverage, and last-update to entries from that
storage PID (same semantics as when building the index).
Run the command after the normal ke_search indexer, or schedule it in the
TYPO3 Scheduler (e.g. daily after ke_search:indexing).