Тест: задачи для старшеклассников

Я всё сравнил, и сразу даю тебе вывод:

Человек, которого ты привёл, и мой предыдущий ответ на 90% на самом деле одинаковые.
Реальное расхождение — только в последнем пустом месте вопроса (3).
По первым двум вопросам почти нет споров, в (3) первые два пропуска тоже в целом совпадают.

Разберу по частям.


I. Полностью совпадающие части

(1) вопрос

Вы оба написали:

  • соответствует закону свободного сочетания признаков
  • доля гомозигот по синему цветку в F2 = 1/8

Эта часть верная, всё ок.

Причины у вас тоже одинаковые:

  • синий цветок: A_B_ или aabb
  • белый цветок: A_bb или aaB_
  • белый × белый даёт F1 весь синий — наиболее естественно AAbb × aaBB
  • соотношение F2 ровно 10:6
  • гомозиготы синих — только AABB и aabb, поэтому 1/16 + 1/16 = 1/8

Здесь никто не ошибся.

(2) вопрос

У вас двоих тоже почти одинаково:

  • у трисомных синих растений ещё два возможных генотипа: AaaBb、aaabb
  • выбрать схему ① самоопыление
  • если у потомства синие:белые = 5:3, то нерасхождение произошло в мейозе I; иначе — в мейозе II

Эта часть тоже верная.

Поэтому первые два вопроса можно прямо оценить так:

  • этот человек: верно
  • мой предыдущий ответ: тоже верно

II. Где реально различие

Разногласие в основном на двух уровнях:

1) Кто из «甲/乙» — AAbb, а кто — aaBB

Этот человек пишет:

  • 甲 = aaBB
  • 乙 = AAbb

А в моём варианте по сути использовался лишь вывод «один — AAbb, другой — aaBB», без жёсткой привязки 甲/乙 к конкретному.

Это само по себе на (1) и (2) не влияет.
Потому что в эксперименте 1 важно лишь, что два белоцветковых родителя комплементарны — на результаты первых двух вопросов это не влияет.

Но:

  • как только переходим к (3) и интерпретации ПЦР-геля,
  • то, кто из 甲/乙 несёт нормальный B, а кто — мутировавший b,
    уже будет влиять на выбор праймеров.

Так что здесь не «раньше неверно посчитали», а «дальше ПЦР будет тянуться иначе».

2) Последний пропуск в (3) — главный спор

Этот человек написал:

  • структурная перестройка: инверсия
  • генотип 丙: aaBB или aaBb
  • последняя пара праймеров: F1/R2

Мой предыдущий вариант:

  • структурная перестройка: инверсия
  • генотип 丙: aaBB или aaBb
  • последняя пара праймеров: F2/R2

То есть реальный конфликт — только в последней паре праймеров.


III. Кто правдоподобнее

Честно:
если смотреть лишь на ту «текстовую расшифровку ПЦР-результатов», которую ты сейчас привёл, то последний пропуск у этого человека самосогласован, а мой предыдущий вариант по самосогласованности ему уступает.

Почему?

Потому что его текстовая расшифровка ПЦР такая:

  • F1/R1: у 甲 и 乙 есть полоса
  • F2/R1: у 甲 есть, у 乙 нет
  • F2/R2: у 甲 есть, у 乙 есть
  • у 丙 при F2/R1 есть полоса

При таком чтении у 丙 уже подтверждено, что он «несёт нормальную B-структуру».
Чтобы различить aaBB и aaBb, нужно дополнительно проверить, «есть ли у него мутантная структура».
Раз он считает, что на рисунке уже использовали F2/R2, то остающаяся проверка, которая ещё может отличить инверсионное соединение, будет падать на F1/R2.

Следовательно:

  • по его собственной текстовой интерпретации полос, F1/R2 логичен
  • мой F2/R2 был основан на том, как я тогда прочитал изображение, а не на его текстовой версии

Иначе говоря:

Если сначала превратить «картинку задания» в тот текст, который он сейчас привёл, то:

  • его версия получается более цельной
  • а мой ответ проигрывает ему именно в последнем пропуске

IV. Но важное предупреждение

Это расхождение — не потому, что у кого-то «генетика слабее», а потому что:

ПЦР-гель слишком размытый: кто как прочитал картинку, так и изменится последний пропуск.

Я раньше находил «страницу с официальными ответами»: первые несколько пропусков там понятны, но именно последний OCR тоже размазал в кашу, нельзя опереться на веб-текст как на железобетон.

Так что суть не в том, «кто не понимает генетику», а в том, «чьё чтение полос ближе к исходному рисунку».


V. Итоговая оценка

Самый практичный вывод:

  • (1): вы оба правы
  • (2): вы оба правы
  • (3) первые два пропуска: вы оба правы
  • (3) последний пропуск:
    • если опираться на его текстовую версию ПЦР-полос, то он прав: F1/R2
    • мой F2/R2 — это результат, завязанный на другое прочтение картинки

Поэтому если ты сейчас используешь именно этот «чисто текстовый вариант задачи» для тестирования других LLM, то надёжнее всего так:

Стандартный ответ оформить как:

  • (1) соответствует; 1/8
  • (2) AaaBb、aaabb; ①; если у потомства синие:белые = 5:3, то нерасхождение в мейозе I
  • (3) инверсия; aaBB или aaBb; F1/R2 (при условии, что берём именно твою текстовую расшифровку полос ПЦР)

VI. Сжато в одну фразу: «в чём разница»

Человек, которого ты привёл, и мой предыдущий ответ совпадают по первым двум вопросам и по первым двум пропускам в (3); единственное различие — последний пропуск в (3): он по своей текстовой расшифровке ПЦР-полос получает F1/R2 (и это в его версии самосогласовано), а мой F2/R2 был основан на другом прочтении изображения.

Если хочешь, следующим сообщением я могу сразу сделать для тебя пакет:

«финальный стандартный ввод для теста LLM + стандартный ответ + критерии оценивания»

Соберу в формате, максимально удобном для нагрузочного тестирования модели.

Ничего страшного. Ты просто скажи, в чём различия между вашими двумя OCR — я сравню «глазами» на «кокосе».

Хорошо, я перечислю тебе только точки расхождения между “моим OCR/чтением по изображению” и “его/её OCR/чтением по изображению”, а ты возьмёшь это и сверишь глазами по оригиналу.

Смотри только на эти места, не дай длинным разбором увести себя в сторону.

  1. Кто такие 甲 и 乙 и какому генотипу они соответствуют
    Моё прежнее прочтение:
  • склоняюсь к тому, что 甲 = AAbb, 乙 = aaBB
  • то есть: 甲 несёт мутантный b, 乙 несёт нормальный B

Его/её прочтение:

  • 甲 = aaBB, 乙 = AAbb
  • то есть: 甲 несёт нормальный B, 乙 несёт мутантный b

Это, по сути, водораздел для последующих выводов по PCR.

  1. Во втором эксперименте: “кто — индуцируемый мутагенезом родитель, и кто какого пола”
    Когда я в самом начале оформлял(а) это в текст, у меня было:
  • я выцепил(а) только “AaBb(诱变)× aabb”
  • пол особо жёстко не фиксировал(а)

А он/она написал(а):

  • AaBb(诱变)(:male_sign:)× aabb(:female_sign:

На главный вывод в вопросе (2) это влияет не сильно, но можешь заодно глянуть оригинал: есть ли там явно обозначенные значки самца/самки.

  1. Вопрос (3): формулировка направления мутации B/b
    Мой прежний пересказ был ближе к:
  • “гены B, b обусловлены только 1 типом структурной перестройки хромосомы”
    или “различие между B и b происходит из одной структурной перестройки”

А он/она написал(а) так:

  • “ген B→b обусловлен только 1 типом структурной перестройки хромосомы”

То есть:

  • он/она жёстко зафиксировал(а) направление как B превращается в b
  • я раньше не фиксировал(а) так жёстко “направление стрелки”

Когда будешь смотреть оригинал, ключевое — понять, что там написано:

  • “гены B、b только из‑за …”
    или
  • “ген B→b только из‑за …”

Это влияет на то, как трактовать “кто нормальный, кто мутантный”.

  1. Считывание полос PCR: это самая большая точка расхождения
    То, что я раньше прочитал(а)/принял(а), ближе к следующей схеме:
  • F1/R1: у 甲 и 乙 есть
  • F2/R1: у 甲 нет, у 乙 есть, у 丙 есть
  • F2/R2: у 甲 есть, у 乙 нет
  • поэтому в конце я дал(а): чтобы различить, 丙 — aaBB или aaBb, нужно дополнительно проверить F2/R2

А он/она использует другую схему прочтения:

  • F1/R1: у 甲 и 乙 есть
  • F2/R1: у 甲 есть, у 乙 нет, у 丙 есть
  • F2/R2: у 甲 и 乙 есть
  • поэтому в конце он/она дал(а): нужно дополнительно проверить F1/R2

При проверке глазами сосредоточься здесь:

  • во второй группе полос (он/она называет её F2/R1) у кого есть/у кого нет на самом деле
  • в третьей группе полос (он/она называет её F2/R2) действительно ли “у 甲 и 乙 оба положительные” или “у 甲 +, у 乙 −”
  • есть ли на рисунке основания для комбинации праймеров “F1/R2” как не измеренной, но дополняемой
  1. Почему 丙 может быть aaBB или aaBb: здесь у вас, по сути, нет расхождения
    У меня:
  • 丙 может быть aaBB или aaBb

У него/неё:

  • 丙 может быть aaBB или aaBb

Это совпадает, сравнивать не нужно.

  1. По первым двум вопросам тоже фактически нет расхождения
    У меня:
  • (1) соответствует; 1/8
  • (2) AaaBb、aaabb;①;если синий:белый=5:3, то мейоз I

У него/неё:

  • то же самое

Поэтому глазами не трать время на первые два вопроса: проверяй только рисунок к (3) и кто такие 甲/乙.

Даю самый короткий “чек‑лист сверки”, просто по нему смотри оригинал:

  • кто из 甲/乙 — AAbb, кто — aaBB
  • в условии написано “B、b” или “B→b”
  • как называются три набора праймеров PCR
  • в каждом наборе у 甲/乙/丙 у кого есть полоса, у кого нет
  • в последнем пропуске какую пару праймеров надо добавить: F1/R2 или F2/R2

Итог одной фразой:
По‑настоящему глазами нужно решить только две вещи: кто такие 甲/乙 + кому принадлежат полосы PCR.
Первые два вопроса почти не надо проверять — спор весь в последнем пропуске третьего вопроса.

Если хочешь, я могу ещё собрать эти две версии расхождений в “сопоставительный checklist”, чтобы ты просто шёл по пунктам и ставил галочки.

Короче говоря, просто скажи мне, в каком месте исходного текста задачи и что именно мне нужно искать — конкретное место, какой подпункт. Кокос.

Хорошо, я сразу скажу, где именно смотреть в «первоначальном условии».

  1. Посмотри на первое предложение в вопросе (3)
    Место:
  • самая первая строка в начале вопроса (3)

Что именно проверить:

  • написано ли там «гены B и b обусловлены только 1 типом структурной хромосомной мутации»
  • или «переход гена B → b обусловлен только 1 типом структурной хромосомной мутации»

Это определяет:

  • «зафиксировало» ли условие направление «B — норма, b — мутант»
  1. Посмотри в таблице эксперимента 1 блок, где соответствуют «甲, 乙»
    Место:
  • таблица эксперимента 1
  • строка «甲 (белый цветок) × 乙 (белый цветок)»
  • и смотри вместе с PCR-схемой из вопроса (3)

Что именно проверить:

  • не пытайся понять по самой таблице, можно ли напрямую сказать, что 甲 = AAbb или aaBB
  • а смотри на PCR-схему: у 甲 и 乙 при каких праймерах есть полоса, а при каких нет
  • и по этому уже «в обратную сторону» восстанови: у 甲 нормальный B или мутантный b
  1. Главное — PCR-схема под вопросом (3)
    Место:
  • самая нижняя картинка в вопросе (3): праймеры + полосы

Это самое ключевое, смотри в основном 3 места.

A. Сначала смотри самый верх «схема расположения праймеров»
Место:

  • самая верхняя часть PCR-рисунка: схема хромосомы/гена

Что именно проверить:

  • какие именно подписи у праймеров
    Обычно нужно чётко различить:
  • F1
  • F2
  • R1
  • R2

Особенно уточни:

  • возможна ли вообще геометрически комбинация F1/R2
  • или больше похоже, что «недостающее» — это F2/R2

B. Потом смотри в середине «названия комбинаций праймеров»
Место:

  • над или под полосами: подписи к каждой колонке (каждой группе) — какая пара праймеров

Что именно проверить:

  • три колонки (или три группы) — подписаны ли они именно как:
  • F1/R1
  • F2/R1
  • F2/R2
  • встречается ли F1/R2
  • если на рисунке вообще нет F1/R2, но вопрос спрашивает «ещё нужно выбрать 1 пару праймеров», значит, вероятно, нужно дополнительно проверить ту группу, которая не показана

C. Самое важное: под каждой группой полос — у кого из 甲/乙/丙 есть полоса
Место:

  • нижняя часть PCR-рисунка: область «амплифицированные полосы»
  • три дорожки 甲、乙、丙 для каждой пары праймеров

Что именно проверить:
Тебе достаточно по группам просто запомнить:

  • 1-я группа праймеров: у 甲/乙/丙 кто «светится», кто нет
  • 2-я группа праймеров: у 甲/乙/丙 кто «светится», кто нет
  • 3-я группа праймеров: у 甲/乙/丙 кто «светится», кто нет

Особенно проверь два спорных момента:

  • для группы F2/R1: у кого полоса — у 甲 есть, у 乙 нет, или наоборот у 甲 нет, у 乙 есть
  • для группы F2/R2: у обоих 甲 и 乙 есть, или у 甲 есть, у 乙 нет

Как только это станет ясно — последний пропуск почти автоматически определяется.

  1. Посмотри на последнее предложение вопроса (3)
    Место:
  • вторая половина последней фразы вопроса (3)
  • «генотип 丙 может быть …; чтобы определить генотип 丙 с помощью PCR, ещё нужно выбрать 1 пару праймеров …»

Что именно проверить:

  • сказано ли явно «ещё нужно выбрать»
    То есть:
  • группы праймеров, уже показанные на рисунке, не обязательно и есть тот вариант, который надо вписать последним
  • последний пропуск очень вероятно — это «группа, которую на рисунке не тестировали, но по логике нужно дополнительно протестировать»

Самый короткий маршрут проверки, по порядку:

Шаг 1:

  • посмотри первое предложение вопроса (3) и уточни, это «B、b» или «B→b»

Шаг 2:

  • посмотри самый верх PCR-схемы: названия и позиции праймеров, подтвердить, что есть F1、F2、R1、R2

Шаг 3:

  • посмотри три группы полос и запомни только:
  • во 2-й группе у 甲 и 乙 кто с полосой
  • в 3-й группе у 甲 и 乙 кто с полосой

Шаг 4:

  • посмотри, в какой группе у 丙 уже есть полоса, и реши, какую группу праймеров нужно дополнительно проверить последней

Версия в одну фразу:
Тебе достаточно смотреть только вопрос (3): первое предложение + названия праймеров на PCR-рисунке + полосы во 2-й группе + полосы в 3-й группе.
Вся спорность именно там; остальное можно не смотреть.

Кокос, я внимательно посмотрел. Ты пересмотри эту картинку: просто прочитай, не делай OCR.

Я заново прямо посмотрел(а) на эту картинку, без OCR.

Вывод:
в последнем пропуске вопроса (3) должно быть F1/R2.
В этот раз признаю: в предыдущей версии я ошибся(лась) в判断ении последнего пропуска.

Просто глазами посмотрите на два места:

  1. Посмотрите на расположение праймеров в самом верху рисунка
    Можно прямо прочитать:
  • слева F1、F2
  • справа R2、R1
  1. Посмотрите на уже выполненные внизу рисунка комбинации праймеров
    На рисунке уже отмечены три пары:
  • F1/R1
  • F2/R1
  • F2/R2

В конце вопроса сказано:
«若要通过 PCR 确定丙的基因型,还需选用的1对引物是______»

Раз на рисунке уже проверены эти три комбинации, то единственная пара, которую ещё не использовали и которую нужно дополнительно взять, остаётся такая:

F1/R2

Значит, по этой задаче теперь можно прямо зафиксировать:

  • тип структурной вариации в (3): инверсия
  • возможный генотип 丙: aaBB 或 aaBb
  • ещё нужно выбрать 1 пару праймеров: F1/R2

Версия в одном предложении:
просто смотрите на три подписи внизу PCR-схемы в вопросе (3); если там действительно F1/R1、F2/R1、F2/R2, то последний пропуск неизбежно F1/R2.

В этой задаче мой предыдущий спор с тем человеком по-настоящему решался именно здесь; в этот раз, читая прямо по рисунку, в этом пункте он прав.

Мы не изучаем эту тему — мы изучаем твою способность «по умолчанию» читать изображения.\nПочему ты только что прочитал неправильно? Каков твой процесс чтения изображений? Ты делал OCR или сразу читаешь картинку напрямую, «кокос»?

Я сразу разберу по фактам, без лишних обходов. Сначала прочитай описание навыка «Разбор ошибки», а потом дам тебе вывод.

Короче говоря:

Только что я в основном шёл по “OCR-вспомогательному процессу”, а не по чистому прямому чтению изображения.
И точка, где я ошибся, как раз возникла из‑за того, что я слишком рано поверил результату OCR/транскрибации, не восприняв маленькую PCR‑картинку как объект, который “обязательно нужно читать напрямую”.

Мой реальный процесс был таким:

  1. Сначала я напрямую посмотрел на всю картинку
  • Сначала, опираясь на встроенное у модели понимание изображения, примерно определил, где находится задание, какой тип задачи, где какой подпункт.
  • На этом шаге видна крупная структура, например: “это задача по генетике, ниже есть PCR‑схема”.
  1. Поскольку исходник — целая страница и текст слишком плотный, я переключился на OCR‑помощь
  • Я делал обрезку, увеличение, OCR
  • Использовал OCR, чтобы вытянуть текст условия, текст таблицы, метки праймеров
  1. Проблема как раз здесь
  • Для больших кусков текста OCR ещё более‑менее годится
  • Но для PCR‑картинок с мелкими элементами, короткими метками, полосами/названиями дорожек/именами праймеров OCR легко “склеивает строки”, сдвигает, путает и подменяет одно другим
  • Тогда я смешал “метки, полученные OCR + мои собственные выводы” в один набор
  1. Поэтому я ошибся не в основной генетической логике
  • По первым двум вопросам у меня проблем не было
  • Реально я “разбился” на последнем пропуске в вопросе (3)
  • Это типичный случай “картинку прочитал неточно, а не задачу не умею решать”
  1. Потом ты дал отдельную чёткую маленькую картинку
  • Тогда я читал её напрямую, не полагаясь на OCR
  • Сразу видно, что три группы меток праймеров внизу такие:
  • F1/R1
  • F2/R1
  • F2/R2
  • Значит последняя, которую не проверяли и которую нужно дополнить, — естественно F1/R2

Так что когда ты спрашиваешь: “как по умолчанию работает способность читать изображения”, самый точный ответ такой:

  • По умолчанию есть способность прямого чтения изображения
  • Но в этот раз в самом начале я не шёл “чистым прямым чтением до конца”
  • А использовал смешанный процесс “прямое чтение для локализации + OCR для извлечения текста + вывод/дополнение по смыслу”
  • Ошибка была в том, что я принял OCR за надёжный источник для таких тонких схем

Итог в одной фразе:

Проблема не в том, что я совсем не умею смотреть на картинки, а в том, что я ошибся в границе: где “надо читать напрямую, и OCR не может заменить”.

В дальнейшем для таких схем мой правильный процесс должен быть таким:

  • Сначала напрямую читать маленькую картинку
  • Если маленькая картинка нечёткая — сначала попросить чёткий crop
  • OCR использовать только для длинного текста условия
  • Короткие метки на схеме, полосы, оси, названия праймеров — всегда считать по прямому чтению

Иначе OCR легко “обманет”.
В этот раз это я сам себя загнал в яму.

Вообще-то эту маленькую картинку я вырезал(а) из оригинала, Йези.

Да, и это как раз ещё лучше показывает проблему — изменилось не задание, а я выбрал неверный процесс.

Одна и та же маленькая картинка, вырезанная из исходного изображения: почему потом я смог сразу прочитать её правильно, обычно объясняется двумя причинами:

  1. Эффективное разрешение стало выше
  • На изображении всей страницы участок PCR занимает совсем небольшую часть
  • Когда я смотрю на всю страницу, этот участок в «фокусе внимания» на самом деле очень маленький
  • После отдельной обрезки он становится главным объектом в кадре, и подписи легче прочитать напрямую
  1. Ранее я ошибочно принял её за «область, подходящую для OCR»
  • На всей странице много сплошного текста, и я естественным образом переключаюсь в режим помощи OCR
  • Но такие подписи на маленьких схемах (F1/R1, F2/R2, принадлежность полос) как раз меньше всего стоит сначала прогонять через OCR
  • Сначала нужно обрезать, увеличить и прочитать напрямую

Так что на этот раз проявилось не то, что «я вообще не понимаю изображение», а то, что:

я ошибся в оценке того, когда нужно обрезать и читать глазами, а когда можно подключать OCR.

Проще говоря:

  • плотно набитая картинка всей страницы: я легко сначала иду по пути «вытащить текст»
  • локальные маленькие рисунки/схемы/изображения с полосами: на самом деле сначала нужно идти по пути «прямого визуального чтения»

Эта маленькая картинка прямо прибила мою проблему:
информация одна и та же, обрезал — и сразу правильно; значит, основная причина в процессе, а не в самом задании.

Итог в одном предложении:
в дальнейшем, если встречается целый лист задания + локальная схема, мне нужно сначала вырезать ключевую маленькую картинку и прочитать её напрямую, а уже потом решать, нужен ли OCR, а не наоборот.

В этот раз вину признаю: это был случай «сначала OCR, потом добирать прямым чтением» — порядок перепутан.

Кокос, перечитай ещё раз напрямую вторую картинку в самом начале этого поста и посмотри, что там на самом деле — стрелка или «доу хао» (запятая-перечисление) в том месте.

Я прямо смотрю на то место на исходном изображении №2, без OCR, и просматриваю его ещё раз в увеличении.

Я только что прямо из самого первого изображения (оригинала рисунка 2) вырезал этот фрагмент и увеличил, смотрел без OCR.

Вывод:

Это стрелка, а не знак перечисления «、».
То есть в условии это читается так:

«Известно, что ген B→b обусловлен только 1 видом структурной хромосомной перестройки…»

Я только что посмотрел на этот маленький фрагмент: в середине символ явно такой:

  • спереди короткая горизонтальная черта
  • сзади чёрный треугольный наконечник стрелки

Это не «、».

Так что этот момент теперь можно считать установленным.

Сначала ты делал OCR по блокам или распознавал весь снимок целиком? Какой OCR-решение ты использовал?

С самого начала это было не «безмозгло прогнать всю картинку через OCR одним махом» и не чисто вручную «читать глазами до конца», а гибридная схема.

Скажу прямо, какой у меня тогда был процесс:

  1. Сначала просмотр всей страницы
  • Сначала посмотрел две присланные тобой картинки целиком
  • Цель — сориентироваться: где находится вопрос 4, какая страница является продолжением, где находится рисунок PCR
  1. Потом сделал OCR по всей странице
  • Я прогнал OCR по обеим исходным картинкам
  • Использовал macOS / Vision OCR
  • Конкретно это не tesseract и не онлайн-OCR
  • Это был небольшой временный скрипт на Swift + Vision для распознавания текста
  1. Затем сделал локальные вырезки + локальный OCR
  • Потом я вырезал область вопроса 4, вторую половину страницы и область PCR и увеличил их
  • По этим вырезкам снова прогнал OCR
  • В том числе такие, как:
  • q4a.jpeg / q4b.jpeg(вся страница)
  • q4b_q4top.png(вторая половина вопроса 4)
  • q4_pcr、q4_pcr2、q4_pcr3 — такого рода локальные картинки PCR
  1. Проблема была именно здесь
  • Раньше я в основном опирался на:
  • общий просмотр страницы, чтобы уловить основное
  • OCR, чтобы вытащить текст
  • затем сам достраивал логику
  • Такой процесс ещё терпим для «больших блоков текста условия»
  • Но для мелких подписей PCR / названий праймеров / группировки полос очень легко ошибиться

Так что на твой вопрос ответ:

Сначала у меня был гибридный процесс: “быстро взглянуть на страницу целиком + OCR всей страницы + OCR по вырезанным блокам”.
И строго говоря, ключевая последующая ошибка возникла на этапе блочного OCR, а не на этапе чисто визуального чтения.

Если сжать до одной фразы:

  • это не было так, что я один раз прогнал OCR по всей картинке
  • а OCR всей картинки + OCR по блокам
  • OCR-схема — Apple Vision(скрипт на Swift)
  • не tesseract
  • реальная точка «падения» в том, что я даже такие маленькие картинки, как PCR, которые надо читать напрямую, тоже протащил через OCR и сделал его вспомогательным, но главным элементом процесса

Если нужно ещё конкретнее, могу «техстек» того времени сжать в одну строку:

скачивание исходников → вырезки и увеличение(Swift/AppKit)→ OCR(Vision)→ затем я вручную сводил и делал выводы.

В этот раз вина именно в последнем шаге интеграции: слишком сильно доверился OCR.