Причем анализ структурно простой - там даже нет раутинга, только каскады и пара циклов (см SGR patterns)
Второй промпт (генерация кода инструментов на базе результатов этого анализа) будет чуть побольше - нужно дать вводные:
(1) Ты извлекаешь данные такого типа из этого документа
(2) Напиши код, который сделает работу
(3) Результат предварительного анализа документа - вот этот JSON
(4) Сигнатура функции должна быть такая (включая описание схемы данных)
(5) смотри у меня, чтобы не ломаться на таких кейсах (список ошибок из прошлой итерации, если есть)
Зато response схема тут фактически с одним полем:
class PythonFunction(BaseModel):
function_body: str
Ну а качество работы такой связки вы уже видели в картах ошибок
Ваш, @llm_under_hood 🤗
PS: Я еще упускаю часть пайплайна, которая делает всю тяжелую работу по поиску документов и их извлечению. В результате ее работы у нас задача сводится к аккуратному списку PDF-ок, из которых нужно извлечь данные. Там уже разные промпты под источник.
