В работе. Direction зафиксирован Apr 22-23 (#ai-engineering thread feat/image-recognize-to-fhir review).
Контекст
В pipeline-е recognize/process/interpret используется ~17 prompts с разными требованиями к модели (extraction vs reasoning, точность vs скорость). До Apr 23 значительная часть была на openai/gpt-5.2 хардкодом / fallback’ом в DEFAULT_MODEL. Direction — уйти к Gemini как primary (use Google credits после grant) с правильным split по типу задачи.
Apr 6 Никита’s research (Claude artifact)
Контр-интуитивный finding: Flash побеждает Pro чаще, чем кажется. Flash дистиллирован из Pro, в процессе дистилляции отфильтровывается мусор; Pro overthinking — на простых задачах перепроверяет себя по три раза, тратит ~31× больше токенов и иногда сам себе противоречит. Flash останавливается вовремя и получает свежие RL-улучшения.
Где Flash выигрывает (наш кейс):
- OCR / документы — самый низкий edit distance среди frontier моделей на OmniDocBench
- Structured output / JSON extraction
- Vision tasks — ScreenSpot 69% vs 11.4% у Pro
- Кодинг — SWE-bench 78% vs 76.2%
Где Pro нужен:
- Сложная математика (AIME 2025)
- Frontier reasoning (Humanity’s Last Exam)
- Очень длинный контекст (>200K токенов)
Cost/latency: Flash в 4× дешевле и 3× быстрее.
«Flash на таких задачах не думает слишком много и выдает более точный результат.»
Practical extraction tips (из того же research)
temperature: 0.0для extraction-задач- JSON-Prompt вместо JSON-Schema — разница до 11 п.п. в точности
thinking: medium— выше обычно не даёт прироста качества
Model split (Apr 23 Никита)
Flash (5 prompts — все extraction/lookup/normalization)
| Prompt | Назначение |
|---|---|
recognize_image_to_fhir | Main document extraction |
recognize_medical_context | Narrative classification |
loinc-harmonization | Lab-name → LOINC mapping |
normalization | Canonical-name matching |
SNOMED coder | Quick-lookup agent |
Pro (3 prompts — reasoning/judgment/coding)
| Prompt | Назначение |
|---|---|
cross_check_llm_judge | Discrepancy resolution между attempts |
cross_check_llm_judge_singleton | Singleton param verification |
fhir-context / narrativeFHIR coder | SNOMED/ICD coding, clinical status inference из discharge-summary prose |
Misalignment audit (Apr 23 Артём — 17 prompts total)
Helper-prompts которые сейчас на openai/gpt-5.2 (DEFAULT_MODEL) — должны переехать на Gemini:
parameter_range_type(normalization-ranges.function.ts) — нет entry в configunit_converter(trends-analysis.service.ts:442)test_overview(test-overview.service.ts:79)panel_overview(panel-overview.service.ts:182)followup_generation(follow-up-recommendation.service.ts:73)product_recommendations(product-recommendation.service.ts:109)single_parameter_analysis(b —4-analyze-individual-parameters.ts:51) — DEFAULT_MODEL config ignoredtrend_analysis(trends-analysis.service.ts:534) — passing DEFAULT_MODEL accidentallyrecognize_gptlegacy — likely dead code, заменёнrecognize_image_to_fhirparameter_range_gpt— no callers, dead
LOINC harmonization & normalization в Mastra-port (apps/analysis-worker/src/mastra/) — на openai/gpt-5.2 через Vercel AI SDK; должны переехать на Gemini per direction (вне скоупа конкретно recognition fix-up, но same direction).
Direction
- Везде Gemini как primary, кроме случаев требующих long-context / heavy reasoning
- Vendor prefix в model name (
vertex/gemini-3-flash-preview, не голоеgemini-3-flash) - Через прокси bifrost (для централизации auth + observability)
.NETсервис имеет свои модели — verify alignment отдельно
Открытые вопросы
- Конкретная Gemini версия — Pro 3.1 / Flash 3.1? Никита: “просто чекнуть какие модели в дотнете” — alignment between сервисами TBD
- Прогресс fix’а — Apr 23 Артём начал DEFAULT_MODEL fix; current state TBD verify
- fhir-context narrative→FHIR coding — на Pro (per Никита split), но это значит больше cost/latency. Verify оправдано ли точностью
Связано
- fact-based-recognition — parent integration направление
- recognition — где основные prompts живут
- bifrost — proxy substrate для outbound LLM
- loinc-unification-direction — adjacent (LOINC прompts тоже edit вошли в audit)
Источники
Сноски
-
Apr 6 Никита’s research artifact (Claude), accessed 2026-05-17, https://claude.ai/public/artifacts/8da11c0c-3c17-48f2-81cb-674851c49db7. ↩
-
Apr 22-23
#ai-engineeringthread (reviewfeat/image-recognize-to-fhir), accessed 2026-05-17, https://realaicorp.slack.com/archives/C094GRT3CBY/p1775239729454809. ↩ -
Apr 23 Артём 17-prompts audit, accessed 2026-05-17, https://realaicorp.slack.com/archives/C094GRT3CBY/p1776953153397359?thread_ts=1775239729.454809. ↩
-
Apr 23 Никита model split, accessed 2026-05-17, https://realaicorp.slack.com/archives/C094GRT3CBY/p1776954996825049?thread_ts=1775239729.454809. ↩