{"componentChunkName":"component---src-templates-simple-markdown-js","path":"/docs/ai/document-ai/configuration-reference/","matchPath":"","result":{"data":{"markdownRemark":{"html":"<h1 style=\"position:relative;\"><a href=\"#configuration-reference\" aria-label=\"configuration reference permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"configuration-reference\"></div>Configuration Reference</h1>\n<p>This page describes the customer-configurable fields used in <code class=\"language-text\">pipeline_config</code>.</p>\n<h2 style=\"position:relative;\"><a href=\"#pipeline-configuration\" aria-label=\"pipeline configuration permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"pipeline-configuration\"></div>Pipeline configuration</h2>\n<table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th align=\"right\">Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code class=\"language-text\">schemas</code></td>\n<td>array</td>\n<td align=\"right\"><code class=\"language-text\">[]</code></td>\n<td>Structured values to extract.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">split</code></td>\n<td>boolean</td>\n<td align=\"right\"><code class=\"language-text\">false</code></td>\n<td>Detect multiple logical documents in an eligible PDF and return separate result slices.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">embed</code></td>\n<td>boolean</td>\n<td align=\"right\"><code class=\"language-text\">true</code></td>\n<td>Generate searchable representations for semantic search.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">describe</code></td>\n<td>object</td>\n<td align=\"right\">Disabled</td>\n<td>Configure automatic document descriptions.</td>\n</tr>\n</tbody>\n</table>\n<p>Only the fields documented here should be configured by customer applications. Model and provider selection are managed by Shipwell.</p>\n<h2 style=\"position:relative;\"><a href=\"#description-configuration\" aria-label=\"description configuration permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"description-configuration\"></div>Description configuration</h2>\n<table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th align=\"right\">Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code class=\"language-text\">enabled</code></td>\n<td>boolean</td>\n<td align=\"right\"><code class=\"language-text\">false</code></td>\n<td>Generate a natural-language document description.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">prompt</code></td>\n<td>string or <code class=\"language-text\">null</code></td>\n<td align=\"right\"><code class=\"language-text\">null</code></td>\n<td>Optional instructions for the generated description.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">key_facts</code></td>\n<td>boolean</td>\n<td align=\"right\"><code class=\"language-text\">true</code></td>\n<td>Include a compact set of important facts when description generation is enabled.</td>\n</tr>\n</tbody>\n</table>\n<p>Keep description prompts focused on purpose and audience. Put fields that must be consumed programmatically in <code class=\"language-text\">schemas</code> instead.</p>\n<h2 style=\"position:relative;\"><a href=\"#extraction-schema\" aria-label=\"extraction schema permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"extraction-schema\"></div>Extraction schema</h2>\n<p>Every item in <code class=\"language-text\">schemas</code> has the following customer-configurable fields:</p>\n<table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th align=\"right\">Required</th>\n<th align=\"right\">Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code class=\"language-text\">name</code></td>\n<td>string</td>\n<td align=\"right\">Yes</td>\n<td align=\"right\">—</td>\n<td>Stable key used to identify the result.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">prompt</code></td>\n<td>string</td>\n<td align=\"right\">Yes</td>\n<td align=\"right\">—</td>\n<td>Instructions describing what to extract.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">json_schema</code></td>\n<td>object</td>\n<td align=\"right\">Yes</td>\n<td align=\"right\">—</td>\n<td>JSON Schema describing the expected value.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">scope</code></td>\n<td><code class=\"language-text\">segment</code> or <code class=\"language-text\">document</code></td>\n<td align=\"right\">No</td>\n<td align=\"right\"><code class=\"language-text\">segment</code></td>\n<td>Whether extraction runs for each segment or once for the whole document.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">result_cardinality</code></td>\n<td><code class=\"language-text\">single</code> or <code class=\"language-text\">multiple</code></td>\n<td align=\"right\">No</td>\n<td align=\"right\"><code class=\"language-text\">single</code></td>\n<td>Whether the schema returns one result or a list of matching results.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">include_source_regions</code></td>\n<td>boolean</td>\n<td align=\"right\">No</td>\n<td align=\"right\"><code class=\"language-text\">false</code></td>\n<td>Include normalized source locations when available.</td>\n</tr>\n</tbody>\n</table>\n<p>Unknown fields are rejected.</p>\n<h3 style=\"position:relative;\"><a href=\"#name\" aria-label=\"name permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"name\"></div>Name</h3>\n<p>Choose a stable <code class=\"language-text\">snake_case</code> name such as:</p>\n<ul>\n<li>\n<code class=\"language-text\">purchase_order_number</code>\n</li>\n<li>\n<code class=\"language-text\">invoice_total</code>\n</li>\n<li>\n<code class=\"language-text\">line_items</code>\n</li>\n<li>\n<code class=\"language-text\">delivery_date</code>\n</li>\n</ul>\n<p>Treat the name as part of your integration contract. Changing it changes the key consumers use to find the extracted result.</p>\n<h3 style=\"position:relative;\"><a href=\"#prompt\" aria-label=\"prompt permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"prompt\"></div>Prompt</h3>\n<p>A good prompt:</p>\n<ul>\n<li>\nNames the exact value to extract\n</li>\n<li>\nExplains how to handle ambiguity\n</li>\n<li>\nDefines behavior when the value is absent\n</li>\n<li>\nAvoids asking for a different shape than \n<code class=\"language-text\">json_schema</code>\n</li>\n</ul>\n<p>Example:</p>\n<div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"91188066233421220000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`Extract the bill of lading number from the document header.\nReturn null when no bill of lading number is present.\nDo not return shipment or purchase order numbers.`, `91188066233421220000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-91188066233421220000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">Extract the bill of lading number from the document header.\nReturn null when no bill of lading number is present.\nDo not return shipment or purchase order numbers.</code></pre></div>\n      </div>\n<h3 style=\"position:relative;\"><a href=\"#json-schema\" aria-label=\"json schema permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"json-schema\"></div>JSON Schema</h3>\n<p>Use JSON Schema to define the response type. Prefer the narrowest shape that supports your workflow.</p>\n<p>String or null:</p>\n<div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"82391027064362990000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`{\n  &quot;type&quot;: [&quot;string&quot;, &quot;null&quot;]\n}`, `82391027064362990000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-82391027064362990000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"null\"</span><span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n      </div>\n<p>Structured object:</p>\n<div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"56255885008622576000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`{\n  &quot;type&quot;: [&quot;object&quot;, &quot;null&quot;],\n  &quot;properties&quot;: {\n    &quot;amount&quot;: {&quot;type&quot;: &quot;number&quot;},\n    &quot;currency&quot;: {&quot;type&quot;: &quot;string&quot;}\n  },\n  &quot;required&quot;: [&quot;amount&quot;, &quot;currency&quot;],\n  &quot;additionalProperties&quot;: false\n}`, `56255885008622576000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-56255885008622576000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"object\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"null\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"properties\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"amount\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"number\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"currency\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"required\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"amount\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"currency\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"additionalProperties\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">false</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n      </div>\n<p>List of line items:</p>\n<div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"76992792261044650000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`{\n  &quot;type&quot;: &quot;array&quot;,\n  &quot;items&quot;: {\n    &quot;type&quot;: &quot;object&quot;,\n    &quot;properties&quot;: {\n      &quot;description&quot;: {&quot;type&quot;: &quot;string&quot;},\n      &quot;quantity&quot;: {&quot;type&quot;: [&quot;number&quot;, &quot;null&quot;]},\n      &quot;unit_price&quot;: {&quot;type&quot;: [&quot;number&quot;, &quot;null&quot;]}\n    },\n    &quot;required&quot;: [&quot;description&quot;],\n    &quot;additionalProperties&quot;: false\n  }\n}`, `76992792261044650000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-76992792261044650000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"array\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"items\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"object\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"properties\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"quantity\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"number\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"null\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"unit_price\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"number\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"null\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"required\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"description\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"additionalProperties\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">false</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n      </div>\n<h3 style=\"position:relative;\"><a href=\"#scope\" aria-label=\"scope permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"scope\"></div>Scope</h3>\n<p>Use <code class=\"language-text\">document</code> when the value should be resolved once from the entire logical document, such as:</p>\n<ul>\n<li>\nDocument number\n</li>\n<li>\nTotal amount\n</li>\n<li>\nShipper or consignee\n</li>\n</ul>\n<p>Use <code class=\"language-text\">segment</code> when each independently processed segment can produce its own value. This is especially useful when split processing is enabled.</p>\n<h3 style=\"position:relative;\"><a href=\"#result-cardinality\" aria-label=\"result cardinality permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"result-cardinality\"></div>Result cardinality</h3>\n<p>Use <code class=\"language-text\">single</code> when one answer is expected for the selected scope.</p>\n<p>Use <code class=\"language-text\">multiple</code> when several independent matches are expected. Define <code class=\"language-text\">json_schema</code> for one match; the result contains multiple schema-result entries.</p>\n<p>Do not use <code class=\"language-text\">multiple</code> only because the value itself is an array. A single extracted <code class=\"language-text\">line_items</code> value can use <code class=\"language-text\">result_cardinality: \"single\"</code> with an array-shaped <code class=\"language-text\">json_schema</code>.</p>\n<h3 style=\"position:relative;\"><a href=\"#source-regions\" aria-label=\"source regions permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"source-regions\"></div>Source regions</h3>\n<p>Set <code class=\"language-text\">include_source_regions</code> to <code class=\"language-text\">true</code> when a user should be able to trace an extracted value to its location.</p>\n<p>Regions use normalized coordinates:</p>\n<div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"99173410654526390000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`{\n  &quot;left&quot;: 0.12,\n  &quot;top&quot;: 0.41,\n  &quot;width&quot;: 0.28,\n  &quot;height&quot;: 0.04\n}`, `99173410654526390000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-99173410654526390000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"left\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0.12</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"top\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0.41</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"width\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0.28</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"height\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0.04</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n      </div>\n<p>Coordinates range from <code class=\"language-text\">0</code> to <code class=\"language-text\">1</code>, with the origin at the top-left. Source regions are available for supported PDFs and images. They can be <code class=\"language-text\">null</code> for text and spreadsheet formats.</p>\n<h2 style=\"position:relative;\"><a href=\"#complete-example\" aria-label=\"complete example permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"complete-example\"></div>Complete example</h2>\n<div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"13718689786949878000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`{\n  &quot;schemas&quot;: [\n    {\n      &quot;name&quot;: &quot;bill_of_lading_number&quot;,\n      &quot;prompt&quot;: &quot;Extract the bill of lading number. Return null when absent.&quot;,\n      &quot;json_schema&quot;: {&quot;type&quot;: [&quot;string&quot;, &quot;null&quot;]},\n      &quot;scope&quot;: &quot;document&quot;,\n      &quot;result_cardinality&quot;: &quot;single&quot;,\n      &quot;include_source_regions&quot;: true\n    },\n    {\n      &quot;name&quot;: &quot;reference_numbers&quot;,\n      &quot;prompt&quot;: &quot;Extract each labeled reference number.&quot;,\n      &quot;json_schema&quot;: {\n        &quot;type&quot;: &quot;object&quot;,\n        &quot;properties&quot;: {\n          &quot;label&quot;: {&quot;type&quot;: &quot;string&quot;},\n          &quot;value&quot;: {&quot;type&quot;: &quot;string&quot;}\n        },\n        &quot;required&quot;: [&quot;label&quot;, &quot;value&quot;],\n        &quot;additionalProperties&quot;: false\n      },\n      &quot;scope&quot;: &quot;document&quot;,\n      &quot;result_cardinality&quot;: &quot;multiple&quot;,\n      &quot;include_source_regions&quot;: true\n    }\n  ],\n  &quot;split&quot;: false,\n  &quot;embed&quot;: true,\n  &quot;describe&quot;: {\n    &quot;enabled&quot;: true,\n    &quot;prompt&quot;: &quot;Summarize the document for an operations user.&quot;,\n    &quot;key_facts&quot;: true\n  }\n}`, `13718689786949878000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-13718689786949878000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"schemas\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n    <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">\"name\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"bill_of_lading_number\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"prompt\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Extract the bill of lading number. Return null when absent.\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"json_schema\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"null\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"scope\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"document\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"result_cardinality\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"single\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"include_source_regions\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">\"name\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"reference_numbers\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"prompt\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Extract each labeled reference number.\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"json_schema\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"object\"</span><span class=\"token punctuation\">,</span>\n        <span class=\"token property\">\"properties\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token property\">\"label\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n          <span class=\"token property\">\"value\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">}</span>\n        <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n        <span class=\"token property\">\"required\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"label\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"value\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n        <span class=\"token property\">\"additionalProperties\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">false</span>\n      <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"scope\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"document\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"result_cardinality\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"multiple\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"include_source_regions\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"split\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">false</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"embed\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"describe\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"enabled\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"prompt\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Summarize the document for an operations user.\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"key_facts\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n      </div>\n<h2 style=\"position:relative;\"><a href=\"#validation-guidance\" aria-label=\"validation guidance permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"validation-guidance\"></div>Validation guidance</h2>\n<p>Before using a configuration in production:</p>\n<ol>\n<li>\nTest representative layouts from every expected document source.\n</li>\n<li>\nTest missing, malformed, and repeated values.\n</li>\n<li>\nValidate result values against \n<code class=\"language-text\">json_schema</code>\n.\n</li>\n<li>\nReview source regions when enabled.\n</li>\n<li>\nVersion changes in the consuming integration before renaming or reshaping schemas.\n</li>\n</ol>","headings":[{"value":"Configuration Reference","depth":1},{"value":"Pipeline configuration","depth":2},{"value":"Description configuration","depth":2},{"value":"Extraction schema","depth":2},{"value":"Name","depth":3},{"value":"Prompt","depth":3},{"value":"JSON Schema","depth":3},{"value":"Scope","depth":3},{"value":"Result cardinality","depth":3},{"value":"Source regions","depth":3},{"value":"Complete example","depth":2},{"value":"Validation guidance","depth":2}]},"contentItem":{"data":{"lastModified":"2026-07-17T16:00:10.000Z","enableToc":null,"disableLastModified":null,"tocMaxDepth":null,"requestLogin":false}},"siteConfig":{"enableToc":true,"disableLastModified":false,"tocMaxDepth":4}},"pageContext":{"matchPath":"","id":"c0d3353d-a120-55a8-a572-f9cb1258b1d8__redocly content/docs/ai/document-ai/configuration-reference/","seo":{"title":"Configuration Reference","description":null,"image":"","keywords":null,"jsonLd":null,"lang":null,"siteUrl":null},"pageId":"docs/ai/document-ai/configuration-reference.md","pageBaseUrl":"/docs/ai/document-ai/configuration-reference","type":"markdown","toc":{"enable":true,"maxDepth":4,"headings":[{"depth":1,"value":"Configuration Reference","id":"configuration-reference"},{"depth":2,"value":"Pipeline configuration","id":"pipeline-configuration"},{"depth":2,"value":"Description configuration","id":"description-configuration"},{"depth":2,"value":"Extraction schema","id":"extraction-schema"},{"depth":3,"value":"Name","id":"name"},{"depth":3,"value":"Prompt","id":"prompt"},{"depth":3,"value":"JSON Schema","id":"json-schema"},{"depth":3,"value":"Scope","id":"scope"},{"depth":3,"value":"Result cardinality","id":"result-cardinality"},{"depth":3,"value":"Source regions","id":"source-regions"},{"depth":2,"value":"Complete example","id":"complete-example"},{"depth":2,"value":"Validation guidance","id":"validation-guidance"}]},"data":{"title":"Configuration Reference"},"catalogInfo":null,"link":"/docs/ai/document-ai/configuration-reference/","sidebarName":"developerPortal","isLanding":false,"showPrevButton":null,"showNextButton":null,"apiVersions":null,"apiVersionId":null,"isDefaultApiVersion":null}},"staticQueryHashes":["1123603147","1302185487","1344209882","1398840060","1520077861","1975142765","2667623876","2950305614","3240152602","3743992808","561138138"]}