---
title: "Caching and batch behavior"
manual: "LLM Foundation"
version: "main"
permalink: "https://docs.typo3.org/permalink/netresearch/nr-llm:caching-and-batch-behavior@main"
source: "Developer/FeatureServices/Performance.rst"
rendered: "2026-11-12T15:41:35+00:00"
---

# Caching and batch behavior {#caching-and-batch-behavior}

## Performance {#feature-services-performance}

### Caching {#feature-services-caching}

-   **Embeddings**: 24h cache by default; `EmbeddingOptions::noCache()` opts out.
-   **Plain completion/chat**: configuration `answer_cache_ttl` opts in; off
    by default and subject to privacy and path restrictions.
-   **Vision**: separate from the plain-answer cache path.
-   **Translation**: The translator path opts in with a positive
    `TranslationOptions::cacheTtl` and needs the cache service. LLM translation
    and polishing also need a known model/configuration context for their cache
    key; other translators do not require a default LLM configuration. See
    [Translation options](https://docs.typo3.org/permalink/netresearch/nr-llm:api-translation-options@main).

### Batch processing {#feature-services-batch}

Image arrays provide a convenient batch interface. Each image makes its own
provider request, in order; batching does not reduce the number of requests.

**Batch processing example**

```php
// One provider request per image, with results in the same order
$altTexts = $visionService->generateAltText($imageUrls);
```
