Я передаю 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 исторические точки.
[/list] Это не нужны полные метаданные, такие как infoLink, reportType, kitType, SpotID, Category.weight, originalUnit и т. д. Я пробовал: [list] [*]удалить неиспользуемые поля вручную.
[*]сокращение ключей.
[*]сохранение только двух исторических точек.
[/list] По-прежнему наблюдается большое количество дублирования (например, диапазоны, повторяющиеся под каждой исторической записью), и я думаю, что могу безопасно сжимать дальше. Каковы надежные шаблоны или стратегии преобразования для сжатия этого JSON для подсказок LLM с сохранением основной семантики?