[
  {
    "id": "62",
    "offerId": 6,
    "reconciliationLineId": null,
    "kind": "EMBED_OFFER",
    "model": "text-embedding-3-small",
    "promptTokens": 81,
    "completionTokens": 0,
    "costUsd": 0.000002,
    "durationMs": 600,
    "createdAt": "2026-05-18T17:19:14.907Z",
    "prompt": "embed 7 inputs",
    "rawResponse": "7 vectors of dim 1536",
    "candidatesConsidered": null
  },
  {
    "id": "63",
    "offerId": 6,
    "reconciliationLineId": null,
    "kind": "EMBED_REQUEST",
    "model": "text-embedding-3-small",
    "promptTokens": 53,
    "completionTokens": 0,
    "costUsd": 0.000001,
    "durationMs": 705,
    "createdAt": "2026-05-18T17:19:15.012Z",
    "prompt": "embed 6 inputs",
    "rawResponse": "6 vectors of dim 1536",
    "candidatesConsidered": null
  },
  {
    "id": "64",
    "offerId": 6,
    "reconciliationLineId": null,
    "kind": "JUDGE_BATCH",
    "model": "gpt-4.1-mini",
    "promptTokens": 1940,
    "completionTokens": 511,
    "costUsd": 0.001594,
    "durationMs": 7120,
    "createdAt": "2026-05-18T17:19:22.151Z",
    "prompt": "Sos un asistente que decide si items ofertados por un proveedor corresponden a items pedidos en una solicitud de compra. No inventás datos. Si ninguno de los candidatos calza, devolvés relation: \"extra\". Tu salida es JSON estricto según el schema indicado en el mensaje del usuario.\n\nPara cada item ofertado decidí cuál (si alguno) de sus candidatos es match.\n\nItems ofertados:\n1) [O1] descripción: \"Paquete de papel blanco tamanio A4 75 gramos\" | unidad: \"unidad\" | cantidad: 100\n   candidatos:\n   - [O1R1] \"Resma papel A4 75g\" (qty: 100, unit: unidad, score: 0.78)\n   - [O1R2] \"Cuaderno tapa dura A4\" (qty: 40, unit: unidad, score: 0.61)\n   - [O1R3] \"Carpeta plastica A4\" (qty: 200, unit: unidad, score: 0.52)\n   - [O1R4] \"Boligrafo azul\" (qty: 500, unit: unidad, score: 0.47)\n   - [O1R5] \"Cinta adhesiva transparente 48mm\" (qty: 100, unit: rollo, score: 0.42)\n   - [O1R6] \"Marcador permanente negro\" (qty: 50, unit: unidad, score: 0.35)\n\n2) [O2] descripción: \"Lapicera tinta azul punta media\" | unidad: \"unidad\" | cantidad: 500\n   candidatos:\n   - [O2R1] \"Boligrafo azul\" (qty: 500, unit: unidad, score: 0.63)\n   - [O2R2] \"Marcador permanente negro\" (qty: 50, unit: unidad, score: 0.53)\n   - [O2R3] \"Carpeta plastica A4\" (qty: 200, unit: unidad, score: 0.51)\n   - [O2R4] \"Cuaderno tapa dura A4\" (qty: 40, unit: unidad, score: 0.51)\n   - [O2R5] \"Resma papel A4 75g\" (qty: 100, unit: unidad, score: 0.46)\n   - [O2R6] \"Cinta adhesiva transparente 48mm\" (qty: 100, unit: rollo, score: 0.34)\n\n3) [O3] descripción: \"Folder plastico para hojas A4\" | unidad: \"unidad\" | cantidad: 200\n   candidatos:\n   - [O3R1] \"Carpeta plastica A4\" (qty: 200, unit: unidad, score: 0.80)\n   - [O3R2] \"Cuaderno tapa dura A4\" (qty: 40, unit: unidad, score: 0.66)\n   - [O3R3] \"Resma papel A4 75g\" (qty: 100, unit: unidad, score: 0.64)\n   - [O3R4] \"Boligrafo azul\" (qty: 500, unit: unidad, score: 0.49)\n   - [O3R5] \"Cinta adhesiva transparente 48mm\" (qty: 100, unit: rollo, score: 0.47)\n   - [O3R6] \"Marcador permanente negro\" (qty: 50, unit: unidad, score: 0.31)\n\n4) [O4] descripción: \"Rotulador indeleble color negro\" | unidad: \"unidad\" | cantidad: 50\n   candidatos:\n   - [O4R1] \"Marcador permanente negro\" (qty: 50, unit: unidad, score: 0.62)\n   - [O4R2] \"Boligrafo azul\" (qty: 500, unit: unidad, score: 0.55)\n   - [O4R3] \"Cinta adhesiva transparente 48mm\" (qty: 100, unit: rollo, score: 0.49)\n   - [O4R4] \"Carpeta plastica A4\" (qty: 200, unit: unidad, score: 0.49)\n   - [O4R5] \"Cuaderno tapa dura A4\" (qty: 40, unit: unidad, score: 0.47)\n   - [O4R6] \"Resma papel A4 75g\" (qty: 100, unit: unidad, score: 0.47)\n\n5) [O5] descripción: \"Rollo cinta transparente de embalaje 48 mm\" | unidad: \"rollo\" | cantidad: 120\n   candidatos:\n   - [O5R1] \"Cinta adhesiva transparente 48mm\" (qty: 100, unit: rollo, score: 0.85)\n   - [O5R2] \"Carpeta plastica A4\" (qty: 200, unit: unidad, score: 0.45)\n   - [O5R3] \"Resma papel A4 75g\" (qty: 100, unit: unidad, score: 0.43)\n   - [O5R4] \"Cuaderno tapa dura A4\" (qty: 40, unit: unidad, score: 0.38)\n   - [O5R5] \"Boligrafo azul\" (qty: 500, unit: unidad, score: 0.35)\n   - [O5R6] \"Marcador permanente negro\" (qty: 50, unit: unidad, score: 0.32)\n\n6) [O6] descripción: \"Cuaderno A4 con tapa rigida\" | unidad: \"unidad\" | cantidad: 40\n   candidatos:\n   - [O6R1] \"Cuaderno tapa dura A4\" (qty: 40, unit: unidad, score: 0.94)\n   - [O6R2] \"Carpeta plastica A4\" (qty: 200, unit: unidad, score: 0.67)\n   - [O6R3] \"Resma papel A4 75g\" (qty: 100, unit: unidad, score: 0.63)\n   - [O6R4] \"Boligrafo azul\" (qty: 500, unit: unidad, score: 0.55)\n   - [O6R5] \"Marcador permanente negro\" (qty: 50, unit: unidad, score: 0.39)\n   - [O6R6] \"Cinta adhesiva transparente 48mm\" (qty: 100, unit: rollo, score: 0.37)\n\n7) [O7] descripción: \"Corrector liquido formato lapicera 7 ml\" | unidad: \"unidad\" | cantidad: 60\n   candidatos:\n   - [O7R1] \"Cuaderno tapa dura A4\" (qty: 40, unit: unidad, score: 0.49)\n   - [O7R2] \"Boligrafo azul\" (qty: 500, unit: unidad, score: 0.48)\n   - [O7R3] \"Resma papel A4 75g\" (qty: 100, unit: unidad, score: 0.46)\n   - [O7R4] \"Carpeta plastica A4\" (qty: 200, unit: unidad, score: 0.44)\n   - [O7R5] \"Cinta adhesiva transparente 48mm\" (qty: 100, unit: rollo, score: 0.43)\n   - [O7R6] \"Marcador permanente negro\" (qty: 50, unit: unidad, score: 0.42)\n\nReglas:\n- Elegí 1 candidato si claramente es el mismo producto.\n- \"extra\" si ninguno califica (requestItemRef = null).\n- \"partial_quantity\" si es el mismo producto pero la cantidad difiere.\n- Confianza entre 0.0 y 1.0, calibrada por similitud descriptiva y de unidades.\n- rationale_short ≤ 280 chars, en español, breve, sin repetir descripción ni precio.\n\nSchema esperado:\n{\n  \"decisions\": [\n    {\n      \"offerItemRef\": string,         // mismo ref que recibiste (ej. \"O1\")\n      \"relation\": \"match\" | \"partial_quantity\" | \"extra\",\n      \"requestItemRef\": string|null,  // ref del candidato elegido o null si extra\n      \"confidence\": number,           // 0.0 a 1.0\n      \"rationale_short\": string       // ≤ 280 chars, español, sin repetir descripción ni precio\n    }\n  ]\n}",
    "rawResponse": "{\n  \"decisions\": [\n    {\n      \"offerItemRef\": \"O1\",\n      \"relation\": \"match\",\n      \"requestItemRef\": \"O1R1\",\n      \"confidence\": 0.8,\n      \"rationale_short\": \"Paquete papel blanco A4 75g coincide claramente con resma de papel A4 75g, misma unidad y cantidad exacta.\"\n    },\n    {\n      \"offerItemRef\": \"O2\",\n      \"relation\": \"match\",\n      \"requestItemRef\": \"O2R1\",\n      \"confidence\": 0.75,\n      \"rationale_short\": \"Lapicera tinta azul coincide con boligrafo azul, misma unidad y cantidad que se solicita.\"\n    },\n    {\n      \"offerItemRef\": \"O3\",\n      \"relation\": \"match\",\n      \"requestItemRef\": \"O3R1\",\n      \"confidence\": 0.85,\n      \"rationale_short\": \"Folder plastico A4 corresponde a carpeta plastica A4, unidad y cantidad consistentes.\"\n    },\n    {\n      \"offerItemRef\": \"O4\",\n      \"relation\": \"match\",\n      \"requestItemRef\": \"O4R1\",\n      \"confidence\": 0.75,\n      \"rationale_short\": \"Rotulador indeleble negro claramente encaja con marcador permanente negro, misma unidad y cantidad.\"\n    },\n    {\n      \"offerItemRef\": \"O5\",\n      \"relation\": \"partial_quantity\",\n      \"requestItemRef\": \"O5R1\",\n      \"confidence\": 0.8,\n      \"rationale_short\": \"Rollo cinta transparente 48mm es idéntico a la cinta adhesiva 48mm, misma unidad pero cantidad diferente (120 vs 100).\"\n    },\n    {\n      \"offerItemRef\": \"O6\",\n      \"relation\": \"match\",\n      \"requestItemRef\": \"O6R1\",\n      \"confidence\": 0.9,\n      \"rationale_short\": \"Cuaderno A4 tapa rigida corresponde claramente al cuaderno tapa dura A4, misma unidad y cantidad exacta.\"\n    },\n    {\n      \"offerItemRef\": \"O7\",\n      \"relation\": \"extra\",\n      \"requestItemRef\": null,\n      \"confidence\": 0.3,\n      \"rationale_short\": \"Corrector liquido formato lapicera no corresponde con ninguno de los candidatos ofertados.\"\n    }\n  ]\n}",
    "candidatesConsidered": {
      "items": [
        {
          "ref": "O1",
          "candidates": [
            {
              "ref": "O1R1",
              "score": 0.7772316349239788
            },
            {
              "ref": "O1R2",
              "score": 0.610162487819577
            },
            {
              "ref": "O1R3",
              "score": 0.5184939979388433
            },
            {
              "ref": "O1R4",
              "score": 0.473024326091232
            },
            {
              "ref": "O1R5",
              "score": 0.4232888767747938
            },
            {
              "ref": "O1R6",
              "score": 0.3460373824172532
            }
          ]
        },
        {
          "ref": "O2",
          "candidates": [
            {
              "ref": "O2R1",
              "score": 0.6305693211758071
            },
            {
              "ref": "O2R2",
              "score": 0.5299176946997713
            },
            {
              "ref": "O2R3",
              "score": 0.5147576329421613
            },
            {
              "ref": "O2R4",
              "score": 0.5131304066946965
            },
            {
              "ref": "O2R5",
              "score": 0.4577580860332415
            },
            {
              "ref": "O2R6",
              "score": 0.3413003233811166
            }
          ]
        },
        {
          "ref": "O3",
          "candidates": [
            {
              "ref": "O3R1",
              "score": 0.7954271094267055
            },
            {
              "ref": "O3R2",
              "score": 0.6641975586825445
            },
            {
              "ref": "O3R3",
              "score": 0.6355192844097923
            },
            {
              "ref": "O3R4",
              "score": 0.4916495506080416
            },
            {
              "ref": "O3R5",
              "score": 0.4686600772753878
            },
            {
              "ref": "O3R6",
              "score": 0.3069140188302715
            }
          ]
        },
        {
          "ref": "O4",
          "candidates": [
            {
              "ref": "O4R1",
              "score": 0.6248265928957208
            },
            {
              "ref": "O4R2",
              "score": 0.5464124760644418
            },
            {
              "ref": "O4R3",
              "score": 0.4938347549075721
            },
            {
              "ref": "O4R4",
              "score": 0.486929228372029
            },
            {
              "ref": "O4R5",
              "score": 0.4703364266813386
            },
            {
              "ref": "O4R6",
              "score": 0.4690093842238076
            }
          ]
        },
        {
          "ref": "O5",
          "candidates": [
            {
              "ref": "O5R1",
              "score": 0.8521556249814389
            },
            {
              "ref": "O5R2",
              "score": 0.454998383911789
            },
            {
              "ref": "O5R3",
              "score": 0.4318117571451442
            },
            {
              "ref": "O5R4",
              "score": 0.3759518270379918
            },
            {
              "ref": "O5R5",
              "score": 0.3513366648490452
            },
            {
              "ref": "O5R6",
              "score": 0.3182912756925081
            }
          ]
        },
        {
          "ref": "O6",
          "candidates": [
            {
              "ref": "O6R1",
              "score": 0.9355762268833456
            },
            {
              "ref": "O6R2",
              "score": 0.6721422303665296
            },
            {
              "ref": "O6R3",
              "score": 0.6273602752913353
            },
            {
              "ref": "O6R4",
              "score": 0.5495099545194305
            },
            {
              "ref": "O6R5",
              "score": 0.3853353733300699
            },
            {
              "ref": "O6R6",
              "score": 0.3727489786041356
            }
          ]
        },
        {
          "ref": "O7",
          "candidates": [
            {
              "ref": "O7R1",
              "score": 0.4915096013857999
            },
            {
              "ref": "O7R2",
              "score": 0.4796779992078052
            },
            {
              "ref": "O7R3",
              "score": 0.456793154877156
            },
            {
              "ref": "O7R4",
              "score": 0.4362097333800403
            },
            {
              "ref": "O7R5",
              "score": 0.4328156367994577
            },
            {
              "ref": "O7R6",
              "score": 0.4186254916997005
            }
          ]
        }
      ],
      "batchIdx": 0
    }
  }
]