В письме клиента есть имя, телефон и несколько дат. Одна относится к прошлому разговору, другая — к желаемой встрече, третья — к передаче готового предложения. Для человека, знакомого с перепиской, всё выглядит довольно естественно. Для помощника задача начинается с уточнения: какую именно дату мы сейчас ищем и что собираемся с ней сделать?

Можно попросить: «Разберись с письмом». Получится простор для полезных догадок, красивого пересказа и неожиданных трактовок. А можно спокойно определить источник, назвать нужные сведения и договориться о виде результата. Именно здесь разговор об искусственном интеллекте становится разговором о качестве рабочего инструмента.

Офису нужна помощь, которую можно проверить

Повседневные документы редко устроены совершенно одинаково. Клиент представляется в начале письма или подписывается в конце. Название организации бывает полным или сокращённым. В предложении одни условия помещены в таблицу, другие изложены обычным текстом. Хороший помощник должен замечать смысл за этими различиями.

При этом у рабочего результата вполне конкретное назначение. Реквизит должен попасть в своё поле, найденное название — относиться к нужной стороне документа, а пропущенное значение — оставаться поводом для проверки. Человеку важно понимать, какие сведения удалось получить и где ещё требуется его внимание.

Из такого сочетания живого текста и определённой задачи вырос DISQPP. Полное название — Deterministic Interrogative Structured Query Prompt Protocol. За длинной английской строкой стоит довольно человеческая идея: организовать вопросы так, чтобы интеллектуальную помощь можно было включать в последовательную, понятную работу.

Точность правил и гибкость понимания

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

ИИ полезен, когда требуется прочитать незнакомую формулировку, соотнести название с контекстом или понять роль фрагмента в документе. Один и тот же смысл люди выражают по-разному, и заранее перечислить все варианты бывает неудобно. Здесь гибкость становится настоящим рабочим преимуществом.

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

В DISQPP мы выстраиваем между этими сторонами ясную постановку задачи. Программа определяет, о чём спрашивает и какой результат сможет обработать; интеллектуальная часть помогает разобраться со смыслом исходного текста. Это собственная технология PINoffice, в которой обеим сторонам отведена подходящая роль.

Слово Deterministic в названии относится к определённому порядку постановки и обработки вопросов. Само по себе оно не делает смысловой ответ безошибочным. Поэтому важной частью подхода остаётся проверка результата, а в прикладной работе — возможность человека его уточнить.

Почему мы обратились к знакомой идее SQL

У SQL есть замечательная привычка: просить результат через ясные составные части. Что выбрать? Из какого источника? При каком условии? В официальном учебнике PostgreSQL конструкция SELECT объясняется именно через выбираемые столбцы, исходные таблицы и ограничения отбора. Такая дисциплина помогает увидеть устройство вопроса. Как устроен запрос SELECT ↗.

Для DISQPP ценна эта знакомая логика. Вместо длинной просьбы, где перемешаны пожелания, пояснения и требования к оформлению, задача получает различимые части. Её становится удобнее обсуждать, повторять в сопоставимых условиях и развивать по мере появления новых офисных потребностей.

У выбора SQL есть и практический смысл: это распространённый язык с большим количеством учебных материалов и примеров, знакомый языковым моделям. В PINoffice мы используем его узнаваемую структуру как общий язык постановки задач. Явно отделённые выборка, источник и условия оставляют меньше места для произвольного толкования длинной разговорной просьбы.

При этом SQL-подобный вопрос к тексту имеет свою область и свои правила. Обычный SQL обращается к данным по определённой схеме; смысловой запрос просит разобраться с содержанием документа. Знакомые слова и структура помогают договориться о задаче, а применимость конкретной формулировки всё равно требует проверки.

Пользователю PINoffice не требуется осваивать SQL ради повседневных документов. Это принцип организации помощи: внешне человек работает со своими файлами и сведениями, а за ясность постановки задачи отвечает приложение.

Четыре вопроса, которые делают задание спокойнее

Первый вопрос — с чем мы работаем? У задачи должен быть определённый источник. Письмо клиента, документ и справочный материал играют разные роли. Даже очень убедительное объяснение рядом с исходником не должно незаметно превращаться в факт самого документа.

Второй — что именно требуется узнать? «Найти сведения о встрече» и «определить дату, на которую клиент предлагает перенести встречу» ведут к разным результатам. Чем точнее сформулирована цель, тем легче заметить ответ на соседний, но неподходящий вопрос.

Третий — какие условия существенны? Иногда нужно учитывать определённую сторону документа, различать старое и новое предложение или отделять явно указанное значение от предположения. Эти условия заслуживают собственного места в задании.

И четвёртый — как должен выглядеть результат? Человеку может понадобиться пояснение, а форме — отдельное значение. Когда это определено заранее, меньше поводов выдавать красивый абзац за готовое заполнение поля.

Письмо, три даты и один полезный вопрос

Вернёмся к рабочему столу. Клиент пишет: «Спасибо за встречу 12 ноября. Новую встречу предлагаю провести 19 ноября. Само предложение жду к 16 ноября». Сотруднику нужно перенести в рабочие сведения именно срок передачи предложения.

Ниже — только объясняющий пример постановки задачи. Это не действующая команда DISQPP и не инструкция для ввода в PINoffice:

Источник: указанное письмо клиента.

Что найти: срок, к которому клиент ожидает предложение.

Условие: даты состоявшейся и предлагаемой встреч относятся к другим событиям.

Результат: найденная дата; если срок не указан — отметить отсутствие сведений.

Знакомый каркас SELECT … FROM … WHERE … помогает мысленно разложить такую просьбу на выбор, источник и условие. В нашем примере подходящим ответом будет 16 ноября. Само письмо остаётся доступным для сопоставления, а человек понимает, что именно проверяет.

Если заменить последнюю фразу на «предложение пригодится до следующего разговора», задача уже изменится: точной даты передачи в письме нет. Полезная помощь должна оставлять место этой неопределённости. Аккуратно показанное отсутствие сведений часто ценнее уверенно придуманного заполнения.

У хороших идей бывает интересное родство

Структурировать задачу — давняя инженерная традиция. Предметные языки, или DSL, создают для определённого класса задач. Мартин Фаулер описывает их как языки с ограниченным назначением и приводит SQL среди знакомых примеров. Важна сама мысль: удобный язык может быть приспособлен к делу, которым занимается человек. О предметных языках ↗.

Есть и другая полезная параллель. В компиляторах промежуточное представление помогает описать программу в форме, пригодной для дальнейшей обработки и анализа. Официальная документация LLVM показывает такую роль общего представления. Для нашей истории это понятная аналогия: между свободным выражением намерения и конкретным результатом полезен согласованный язык. Это сравнение идей, а не описание используемых в PINoffice компонентов. О промежуточном представлении ↗.

Исследование PICARD, опубликованное на EMNLP в 2021 году, рассматривает ограничения при построении структурированных SQL-ответов: недопустимые продолжения отсекаются с помощью последовательного разбора. Работа показывает интерес к сочетанию гибкой генерации и формальных требований. Её область — другой технический подход; мы приводим её как родственное направление исследований, без заявления о применении этого алгоритма в DISQPP. Исследование PICARD ↗.

Такое родство делает собственный поиск содержательнее. Можно ценить общую инженерную культуру и при этом строить своё решение для своих пользователей. Отличительная задача PINoffice — превратить эти принципы в удобную помощь с обычными офисными документами.

Что меняется по ту сторону экрана

Для сотрудника ценность начинается с небольших вещей. У результата есть понятное назначение. Несколько похожих сведений можно рассмотреть отдельно. Легче заметить, что помощник нашёл нужную организацию, но пропустил контакт, или верно определил вид документа, а одно значение требует исправления.

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

При этом аккуратная форма ответа подтверждает только форму. Смысловая правильность — отдельный вопрос. Он зависит от исходного документа, постановки задачи и полученного результата. Поэтому развитие интеллектуальной помощи включает проверку конкретных задач, а не только оценку того, насколько гладко читается текст.

Нам нравится, когда технология помогает человеку сохранить уверенность в собственной работе: быстрее добраться до существенного, спокойно свериться с источником и продолжить подготовку документа. Это понятный ориентир для улучшений, которые действительно чувствуются в течение дня.

Собственная технология, которая растёт вместе с задачами

DISQPP развивается вместе с PINoffice. Новые офисные задачи могут требовать других вопросов и условий, более подходящей справочной информации или иной формы результата. Общий принцип при этом сохраняется: определить источник, сформулировать задачу и сделать ответ пригодным для проверяемой работы.

У DISQPP свой характер: разработчики PINoffice создают и развивают протокол для живых офисных задач, где свободный текст должен стать полезными, проверяемыми сведениями. Знакомая дисциплина запросов получает здесь собственное применение — и помогает сделать интеллектуальную помощь естественной частью рабочего инструмента.

Подробную спецификацию DISQPP мы готовим к разбору в следующих статьях: будем объяснять принципы и показывать примеры постановки вопросов. Сегодня достаточно познакомиться с главным: между гибкостью интеллектуальной помощи и определённостью офисного инструмента можно выстроить понятный мост.

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

Для любопытных: куда заглянуть дальше

Сведения о PINoffice в статье относятся к нашему собственному подходу. Для сравнения инженерных идей мы использовали следующие первичные материалы:

Ясность помогает двигаться дальше

Пусть у хорошей задачи будет удобное продолжение.

Документы, сведения о клиентах и повседневные договорённости — продолжим работу в PINoffice.

Открыть PINoffice