В работе. 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_fhirMain document extraction
recognize_medical_contextNarrative classification
loinc-harmonizationLab-name → LOINC mapping
normalizationCanonical-name matching
SNOMED coderQuick-lookup agent

Pro (3 prompts — reasoning/judgment/coding)

PromptНазначение
cross_check_llm_judgeDiscrepancy resolution между attempts
cross_check_llm_judge_singletonSingleton param verification
fhir-context / narrativeFHIR coderSNOMED/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 в config
  • unit_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 ignored
  • trend_analysis (trends-analysis.service.ts:534) — passing DEFAULT_MODEL accidentally
  • recognize_gpt legacy — likely dead code, заменён recognize_image_to_fhir
  • parameter_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 оправдано ли точностью

Связано

Источники

Источники: 1 2 3 4.

Сноски

  1. Apr 6 Никита’s research artifact (Claude), accessed 2026-05-17, https://claude.ai/public/artifacts/8da11c0c-3c17-48f2-81cb-674851c49db7.

  2. Apr 22-23 #ai-engineering thread (review feat/image-recognize-to-fhir), accessed 2026-05-17, https://realaicorp.slack.com/archives/C094GRT3CBY/p1775239729454809.

  3. Apr 23 Артём 17-prompts audit, accessed 2026-05-17, https://realaicorp.slack.com/archives/C094GRT3CBY/p1776953153397359?thread_ts=1775239729.454809.

  4. Apr 23 Никита model split, accessed 2026-05-17, https://realaicorp.slack.com/archives/C094GRT3CBY/p1776954996825049?thread_ts=1775239729.454809.