<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="eli.ai" agent="eli.ai diagram exporter" version="1">
  <diagram id="hybrid-retrieval-pipeline-00e116d0" name="Hybrid retrieval pipeline">
    <mxGraphModel dx="1600" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <object id="1" label="Hybrid retrieval pipeline" schemaVersion="1" diagramId="hybrid-retrieval-pipeline-00e116d0" canonicalAppearanceKey="tsx:src/app/(docs)/docs/concepts/retrieval-pipeline/page.tsx:pipelineChart#1" sourceSha256="00e116d0a0063ec9197ca8f3cee087793bae0869651944206480373757ba5af8" metadataPayloadSha256="3f2a63437992214e6ff73d50fcc885625bad04e183ba7f089e8b4cd896699138" generationKey="3d4dc18e2993ed6ca3fb4da6a11e50fa2bb25dddb56fa247b07d4bc15c217ed7" concepts="[&quot;Retrieval pipeline&quot;,&quot;Pipeline&quot;]" keywords="[&quot;GraphRAG local search (SQL)&quot;,&quot;content ACL context&quot;,&quot;stable cache partition&quot;,&quot;query understanding&quot;,&quot;hybrid retrieve()&quot;,&quot;FTS ⋃ vector → RRF&quot;,&quot;disabled / no model&quot;,&quot;candidate pool ≈ 40&quot;,&quot;graph fusion&quot;,&quot;user question + actor principals&quot;,&quot;rewrite · sub-queries · filters&quot;,&quot;neighbor-doc chunks merged (dedup)&quot;,&quot;token budget + MMR + front-load&quot;,&quot;rerank&quot;,&quot;assemble&quot;,&quot;Sn&quot;,&quot;cross-encoder · Voyage / Cohere / bge / none&quot;]" application="{&quot;name&quot;:&quot;eli-ai&quot;,&quot;version&quot;:&quot;0.1.0&quot;}" packages="{&quot;mermaid&quot;:&quot;11.16.0&quot;,&quot;mermaidCli&quot;:&quot;11.16.0&quot;,&quot;playwright&quot;:&quot;1.62.1&quot;,&quot;playwrightCore&quot;:&quot;1.62.1&quot;,&quot;puppeteer&quot;:&quot;25.6.0&quot;,&quot;puppeteerCore&quot;:&quot;25.6.0&quot;}" environment="{&quot;architecture&quot;:&quot;x64&quot;,&quot;containerImage&quot;:&quot;playwright:v1.62.1-noble@sha256:c091b21d9fae78c76e85cd4356431e9b018402f172a214fc7d7a5e9a7e29d8ac+node:26.3.1-bookworm-slim@sha256:209558c3e5e40e8adff68959d3c2ba7cd73723e716d89196878a0c362fa1e109&quot;,&quot;node&quot;:&quot;v26.3.1&quot;,&quot;platform&quot;:&quot;linux&quot;,&quot;yarn&quot;:&quot;4.17.1&quot;}" renderer="{&quot;browser&quot;:{&quot;executableSha256&quot;:&quot;0b20b130e7edd9dd51873be867761295fe0cfad490c2b9a64f95bd3cfc08fa71&quot;,&quot;name&quot;:&quot;chromium&quot;,&quot;revision&quot;:&quot;1234&quot;,&quot;version&quot;:&quot;151.0.7922.34&quot;},&quot;font&quot;:{&quot;family&quot;:&quot;Eli Diagram Inter Variable&quot;,&quot;fileSha256&quot;:&quot;3100e775e8616cd2611beecfa23a4263d7037586789b43f035236a2e6fbd4c62&quot;,&quot;licenseSha256&quot;:&quot;3b0a5fca3d17942cde889069889dedbbbd075e9b599968c82a95f4d944e9b345&quot;},&quot;mermaidConfigSha256&quot;:&quot;68c10966fe84406ee626034d58bfabd555df9f65f691204b7c46db24038da101&quot;,&quot;themeCssSha256&quot;:&quot;c80287a78d80ad63d27bd5ca348b2ef9a7e2f44da289e436be6484ea28a1b033&quot;}" adapterVersions="{&quot;diagramGenerator&quot;:&quot;2&quot;,&quot;drawioFlowchart&quot;:&quot;1&quot;,&quot;drawioGantt&quot;:&quot;1&quot;,&quot;drawioSequence&quot;:&quot;1&quot;,&quot;drawioState&quot;:&quot;1&quot;}" mermaidType="flowchart" direction="TB" generatedAt="2026-08-12T23:39:16.709Z" mermaidSource="flowchart TB&#10;  Q[&quot;user question + actor principals&quot;] --&gt; ACL[&quot;content ACL context&lt;br/&gt;stable cache partition&quot;]&#10;  ACL --&gt; U{&quot;query understanding&lt;br/&gt;1 judge call · optional&quot;}&#10;  U --&gt;|&quot;rewrite · sub-queries · filters&quot;| H[&quot;hybrid retrieve()&lt;br/&gt;FTS ⋃ vector → RRF&quot;]&#10;  U -.-&gt;|&quot;disabled / no model&quot;| H&#10;  H --&gt; Pool[&quot;candidate pool ≈ 40&quot;]&#10;  Pool --&gt; G[&quot;graph fusion&lt;br/&gt;GraphRAG local search (SQL)&quot;]&#10;  G --&gt;|&quot;neighbor-doc chunks merged (dedup)&quot;| RR[&quot;rerank&lt;br/&gt;cross-encoder · Voyage / Cohere / bge / none&quot;]&#10;  RR --&gt; AS[&quot;assemble&lt;br/&gt;token budget + MMR + front-load&quot;]&#10;  AS --&gt; Out[&quot;RankedChunk[]&lt;br/&gt;[Sn] citations · policy features&quot;]">
          <mxCell parent="0"/>
        </object>
        <object id="n:Q" label="user question + actor principals" mermaidId="Q" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="77.207031" y="8" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:ACL" label="content ACL contextstable cache partition" mermaidId="ACL" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="95.488281" y="134" width="219.4375" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:U" label="query understanding1 judge call · optional" mermaidId="U" mermaidShape="diamond">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;perimeter=rhombusPerimeter;shape=rhombus;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="88.792969" y="260" width="233.828125" height="233.828125" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:H" label="hybrid retrieve()FTS ⋃ vector → RRF" mermaidId="H" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="99.808594" y="591.828125" width="210.796875" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Pool" label="candidate pool ≈ 40" mermaidId="Pool" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="102.121094" y="717.828125" width="206.171875" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:G" label="graph fusionGraphRAG local search (SQL)" mermaidId="G" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="77.207031" y="819.828125" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:RR" label="rerankcross-encoder · Voyage / Cohere / bge / none" mermaidId="RR" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="77.207031" y="1017.828125" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:AS" label="assembletoken budget + MMR + front-load" mermaidId="AS" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="77.207031" y="1167.828125" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Out" label="RankedChunk[][Sn] citations · policy features" mermaidId="Out" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="77.207031" y="1317.828125" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="e:L_Q_ACL_0" label="" mermaidId="L_Q_ACL_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:Q" target="n:ACL" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="205.207031" y="84" as="sourcePoint"/>
              <mxPoint x="205.207031" y="134" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="205.207031" y="109"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_ACL_U_0" label="" mermaidId="L_ACL_U_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:ACL" target="n:U" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="205.207031" y="210" as="sourcePoint"/>
              <mxPoint x="205.207031" y="260" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="205.207031" y="235"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_U_H_0" label="rewrite · sub-queries · filters" mermaidId="L_U_H_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:U" target="n:H" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="162.014489" y="450.635583" as="sourcePoint"/>
              <mxPoint x="162.748788" y="591.828125" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="108" y="542.828125"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_U_H_2" label="disabled / no model" mermaidId="L_U_H_2" mermaidKind="relationship">
          <mxCell parent="1" source="n:U" target="n:H" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="248.399573" y="450.635583" as="sourcePoint"/>
              <mxPoint x="247.665275" y="591.828125" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="302.414063" y="542.828125"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_H_Pool_0" label="" mermaidId="L_H_Pool_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:H" target="n:Pool" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="205.207031" y="667.828125" as="sourcePoint"/>
              <mxPoint x="205.207031" y="717.828125" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="205.207031" y="692.828125"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_Pool_G_0" label="" mermaidId="L_Pool_G_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:Pool" target="n:G" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="205.207031" y="769.828125" as="sourcePoint"/>
              <mxPoint x="205.207031" y="819.828125" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="205.207031" y="794.828125"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_G_RR_0" label="neighbor-doc chunks merged (dedup)" mermaidId="L_G_RR_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:G" target="n:RR" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="205.207031" y="919.828125" as="sourcePoint"/>
              <mxPoint x="205.207031" y="1017.828125" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="205.207031" y="968.828125"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RR_AS_0" label="" mermaidId="L_RR_AS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RR" target="n:AS" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="205.207031" y="1117.828125" as="sourcePoint"/>
              <mxPoint x="205.207031" y="1167.828125" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="205.207031" y="1142.828125"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_AS_Out_0" label="" mermaidId="L_AS_Out_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:AS" target="n:Out" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="205.207031" y="1267.828125" as="sourcePoint"/>
              <mxPoint x="205.207031" y="1317.828125" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="205.207031" y="1292.828125"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
