Я передаю LLM довольно большую полезную нагрузку JSON (более 2500 строк). Он полон повторяющихся полей (особенно диапазонов, повторяющихся в каждой исторической записи), метаданных, которые мы на самом деле не используем, и подробных ключей. При этом сжигается много токенов.
Пример (обрезанных) входных данных:
Генерировать краткие сводки и пометки для каждого биомаркера (например, выходит ли результат за пределы оптимального).
При желании можно упомянуть тенденцию (вверх/вниз), используя последние 1–2 исторические точки.
Не требуется полная информация метаданные, такие как infoLink, reportType, kitType, SpotID, Category.weight, originalUnit и т. д.
Что я пробовал:
Удалить неиспользуемые поля вручную.
Сокращение ключей.
Сохранение только двух исторических точек.
По-прежнему наблюдается большое количество дублирования (например, диапазоны, повторяющиеся под каждой исторической записью), и я думаю, что могу безопасно сжимать дальше.
Вопрос:
Каковы надежные шаблоны или стратегии преобразования для сжатия этого JSON для подсказок LLM при сохранении основной семантики?
Я передаю LLM довольно большую полезную нагрузку JSON (более 2500 строк). Он полон повторяющихся полей (особенно диапазонов, повторяющихся в каждой исторической записи), метаданных, которые мы на самом деле не используем, и подробных ключей. При этом сжигается много токенов. Пример (обрезанных) входных данных: [code]{ "pid": "TEST_1010", "biomarker": [ { "simpleLabel": "Estim. Avg Glu (eAG)", "ranges": { "fair": [70, 126], "optimal": [70, 97], "inRange": [70, 126], "good": [70, 108] }, "result": 110.69, "rawResult": 110.69, "type": "biomarker", "unit": "mg/dL", "originalUnit": "mg/dL", "label": "Estim. Avg Glu (eAG)", "shortLabel": "Estimated Average Glucose (eAG)", "targetType": "low", "infoLink": "", "category": { "name": "Metabolic Health", "weight": "n/a" }, "deviationScore": 36.33, "historic": [ { "result": 110.69, "rawResult": 110.69, "timestamp": "2026-01-28T08:23:07-05:00", "ranges": { "fair": [70,126], "optimal": [70,97], "inRange": [70,126], "good": [70,108] }, "reportType": "SPOT_REPORT", "kitType": "ORIGINAL", "spotID": "SB_SPOT6A4E89C8" }, { "result": 76.78, "rawResult": 76.78, "timestamp": "2026-01-28T08:24:17-05:00", "ranges": { "fair": [70,126], "optimal": [70,97], "inRange": [70,126], "good": [70,108] }, "reportType": "SPOT_REPORT", "kitType": "ORIGINAL", "spotID": "SB_SPOTB543809D" } ], "state": "default", "labRange": "inRange", "siphoxRange": "fair" } // ... many more biomarkers with similar structure ] } [/code] Для чего мне на самом деле нужен LLM: [list] [*]Генерировать краткие сводки и пометки для каждого биомаркера (например, выходит ли результат за пределы оптимального).
[*]При желании можно упомянуть тенденцию (вверх/вниз), используя последние 1–2 исторические точки.
[*]Не требуется полная информация метаданные, такие как infoLink, reportType, kitType, SpotID, Category.weight, originalUnit и т. д.
[/list] Что я пробовал: [list] [*]Удалить неиспользуемые поля вручную.
[*]Сокращение ключей.
[*]Сохранение только двух исторических точек.
[*]По-прежнему наблюдается большое количество дублирования (например, диапазоны, повторяющиеся под каждой исторической записью), и я думаю, что могу безопасно сжимать дальше.
[/list] Вопрос:
Каковы надежные шаблоны или стратегии преобразования для сжатия этого JSON для подсказок LLM при сохранении основной семантики?