К счастью, задача Infromation Extraction достаточно популярна, соответственно на момент старта проекта существало некотрое количество академических работ на эту тему. Так что первым делом мы изучили последние работы из вот этого
замечательно репозитория.
Далее, для каждого извлекаемого параметра были разработаны промпты с наборами few-shot примеров (иногда использовались цепочки рассуждений - CoT для демонстрации, почему результат должен быть именно такой), для особо сложных случаев использовался каскад нескольких промптов, когда результат работы одного промпта затем подавался в контекст второго и т.д. В качестве основной модели использовался GPT-4o-mini со structured output (гарантированным выводом результата в json формате).
Отдельным пунктом стояла задача представления результата в виде, пригодном для оценки результатов промптов живыми людьми, так как сравнивать два json (эталонный пример и тот, что выдала LLM) достаточно проблематично. Эту задачу мы решили набором скриптов, перегоняющих json в раскрашенные excel таблички, которые было удобно просматривать глазами, а также наборами промптов для сравнения результатов (наивная реализация LLM-as-a-judge).
На последнем этапе все раработанные скрипты были завернуты в микросервисы, которые взаимодействовали с остальными сервисами платформы через REST API или через сообщения Kafka.