{
  "version": 1,
  "title": "RAG chunk boundaries: keep the rule together",
  "format": "custom",
  "canvasSize": [
    1200,
    720
  ],
  "watermark": true,
  "objects": [
    {
      "type": "text",
      "text": "Where should a RAG chunk end?",
      "x": 48,
      "y": 32,
      "fontSize": 49,
      "color": "#292d32",
      "fontFamily": "sans"
    },
    {
      "type": "text",
      "text": "Question: should the client retry HTTP 400?",
      "x": 50,
      "y": 103,
      "fontSize": 29,
      "color": "#59675e",
      "fontFamily": "sans"
    },
    {
      "type": "text",
      "text": "SPLIT THROUGH A RULE",
      "x": 54,
      "y": 190,
      "fontSize": 28,
      "color": "#b13f39",
      "fontFamily": "sans"
    },
    {
      "type": "text",
      "text": "KEEP THE SECTION TOGETHER",
      "x": 636,
      "y": 190,
      "fontSize": 28,
      "color": "#287355",
      "fontFamily": "sans"
    },
    {
      "type": "pen",
      "points": [
        [
          585,
          190
        ],
        [
          585,
          260
        ],
        [
          585,
          350
        ],
        [
          585,
          500
        ]
      ],
      "color": "#c7d0c9",
      "width": 3,
      "smooth": false
    },
    {
      "type": "text",
      "text": "Chunk A",
      "x": 54,
      "y": 250,
      "fontSize": 31,
      "color": "#285caa",
      "fontFamily": "sans"
    },
    {
      "type": "text",
      "text": "429: retry after delay.",
      "x": 54,
      "y": 305,
      "fontSize": 31,
      "color": "#292d32",
      "fontFamily": "sans"
    },
    {
      "type": "text",
      "text": "400 Bad Request: ...",
      "x": 54,
      "y": 353,
      "fontSize": 31,
      "color": "#292d32",
      "fontFamily": "sans"
    },
    {
      "type": "pen",
      "points": [
        [
          53,
          402
        ],
        [
          203,
          404
        ],
        [
          366,
          402
        ],
        [
          529,
          404
        ]
      ],
      "color": "#b13f39",
      "width": 3,
      "smooth": false
    },
    {
      "type": "text",
      "text": "Chunk B",
      "x": 54,
      "y": 433,
      "fontSize": 31,
      "color": "#285caa",
      "fontFamily": "sans"
    },
    {
      "type": "text",
      "text": "Fix request; do not retry.",
      "x": 54,
      "y": 489,
      "fontSize": 30,
      "color": "#292d32",
      "fontFamily": "sans"
    },
    {
      "type": "text",
      "text": "400 Bad Request",
      "x": 635,
      "y": 253,
      "fontSize": 38,
      "color": "#292d32",
      "fontFamily": "sans"
    },
    {
      "type": "text",
      "text": "Fix the request;",
      "x": 635,
      "y": 314,
      "fontSize": 32,
      "color": "#292d32",
      "fontFamily": "sans"
    },
    {
      "type": "text",
      "text": "do not retry unchanged.",
      "x": 635,
      "y": 363,
      "fontSize": 32,
      "color": "#292d32",
      "fontFamily": "sans"
    },
    {
      "type": "text",
      "text": "Source: API retry guide / v2",
      "x": 635,
      "y": 434,
      "fontSize": 25,
      "color": "#59675e",
      "fontFamily": "sans"
    },
    {
      "type": "pen",
      "points": [
        [
          45,
          553
        ],
        [
          268,
          555
        ],
        [
          542,
          553
        ],
        [
          821,
          555
        ],
        [
          1152,
          554
        ]
      ],
      "color": "#c7d0c9",
      "width": 3,
      "smooth": false
    },
    {
      "type": "text",
      "text": "A match to Chunk A can miss the “do not retry” condition.",
      "x": 48,
      "y": 580,
      "fontSize": 29,
      "color": "#b13f39",
      "fontFamily": "sans"
    },
    {
      "type": "text",
      "text": "Keep the heading, decision and exception in the same unit.",
      "x": 48,
      "y": 634,
      "fontSize": 27,
      "color": "#287355",
      "fontFamily": "sans"
    }
  ]
}
