---
title: "LocalAiProcessingSettings"
canonical_url: "https://www.nutrient.io/api/python/settings/vision/advanced/local-ai-processing-settings/"
md_url: "https://www.nutrient.io/api/python/settings/vision/advanced/local-ai-processing-settings.md"
last_updated: "2026-10-26T16:51:00.819Z"
description: "Settings for LocalAiProcessing. Values fall back through three levels: document → SDK → built-in default."
---

Settings for LocalAiProcessing. Values fall back through three levels: document → SDK → built-in default. Writes target the document only when set on a document's settings, otherwise the SDK globally when set on SdkSettings.

**Tags:** `Vision`, `Advanced`

```python

from nutrient_sdk import LocalAiProcessingSettings

```

## Construction

`LocalAiProcessingSettings` is accessed through a [`Document`](/api/python/document/) instance for per-document overrides, or via [`SdkSettings`](/api/python/settings/document/sdk-settings/) for SDK-wide defaults.

```python

# Per-document override

with Document.open("input.pdf") as doc:
    settings = doc.settings.local_ai_processing_settings
    settings.some_field = new_value          # mutate fields directly

# SDK-wide default (applies to all documents)

SdkSettings.local_ai_processing_settings.some_field = new_value

```

Settings are configured by writing to fields on the returned object. The settings property itself cannot be reassigned — `doc.settings.local_ai_processing_settings = other_settings` is rejected.

## Properties

### context_tokens

```python

@property
def context_tokens(self) -> int

@context_tokens.setter
def context_tokens(self, value: int) -> None

```

Context size in tokens; 0 uses the engine default (4096). The context holds the document text, the schema and the reply together, and a single dense page with source locations already needs about 20,000 tokens, so the default value is 32768. Documents larger than the context are split into page windows automatically.

**Type:** `int`

**Default:** `32768`

---

### gpu_layers

```python

@property
def gpu_layers(self) -> int

@gpu_layers.setter
def gpu_layers(self, value: int) -> None

```

Model layers to offload to GPU; 0 is pure CPU. The default value is 99, which offloads all available layers. Metal is built in on macOS; the CUDA backend is runtime-provisioned on Linux x64.

**Type:** `int`

**Default:** `99`

---

### image_min_tokens

```python

@property
def image_min_tokens(self) -> int

@image_min_tokens.setter
def image_min_tokens(self, value: int) -> None

```

Minimum image tokens for dynamic-resolution vision models; 0 uses the model default. Only relevant when page images are attached to the schema request.

**Type:** `int`

**Default:** `1024`

---

### max_concurrency

```python

@property
def max_concurrency(self) -> int

@max_concurrency.setter
def max_concurrency(self, value: int) -> None

```

Maximum number of concurrent calls. Sizes the in-process context pool: the model weights are shared, each extra context costs only its KV/compute buffers and runs one more call in parallel (callers beyond the pool block for a free context).

**Type:** `int`

**Default:** `1`

---

### mmproj_path

```python

@property
def mmproj_path(self) -> str

@mmproj_path.setter
def mmproj_path(self, value: str) -> None

```

Filesystem path to the matching multimodal projector (mmproj) GGUF. Set it together with `model_path`; the in-process binding requires it even for text-only prompts.

**Type:** `str`

**Default:** `string.Empty`

---

### model_path

```python

@property
def model_path(self) -> str

@model_path.setter
def model_path(self, value: str) -> None

```

Filesystem path to the GGUF model used for structured extraction. Set it together with `mmproj_path` to use a custom model. When both are empty, structured extraction downloads the default local model on first use (the same model the vision-parse step uses).

**Type:** `str`

**Default:** `string.Empty`

---

### threads

```python

@property
def threads(self) -> int

@threads.setter
def threads(self, value: int) -> None

```

Inference threads; 0 uses the engine default.

**Type:** `int`

**Default:** `0`

---

---

## Related pages

- [Advanced](/api/python/settings/vision/advanced.md)
- [Per-document override](/api/python/settings/vision/advanced/ai-augmenter-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/ai-processing-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/anthropic-api-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/claude-api-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/content-extraction-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/custom-vlm-api-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/deskew-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/document-layout-json-export-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/finalizer-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/form-labeling-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/form-recognition-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/form-vlm-connection-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/form-vlm-fallback-connection-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/google-api-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/handwriting-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/inference-layout-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/inline-style-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/local-vlm-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/ocr-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/omr-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/open-ai-api-endpoint-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/open-ai-languages-detection-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/open-ai-picture-alt-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/pp-text-det-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/pp-text-rec-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/preprocessing-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/reading-order-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/segmenter-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/table-recognition-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/vision-acceleration-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/vision-descriptor-settings.md)
- [Per-document override](/api/python/settings/vision/advanced/words-detection-settings.md)

