В письме клиента есть имя, телефон и несколько дат. Одна относится к прошлому разговору, другая — к желаемой встрече, третья — к передаче готового предложения. Для человека, знакомого с перепиской, всё выглядит довольно естественно. Для помощника задача начинается с уточнения: какую именно дату мы сейчас ищем и что собираемся с ней сделать?
Можно попросить: «Разберись с письмом». Получится простор для полезных догадок, красивого пересказа и неожиданных трактовок. А можно спокойно определить источник, назвать нужные сведения и договориться о виде результата. Именно здесь разговор об искусственном интеллекте становится разговором о качестве рабочего инструмента.
Офису нужна помощь, которую можно проверить
Повседневные документы редко устроены совершенно одинаково. Клиент представляется в начале письма или подписывается в конце. Название организации бывает полным или сокращённым. В предложении одни условия помещены в таблицу, другие изложены обычным текстом. Хороший помощник должен замечать смысл за этими различиями.
При этом у рабочего результата вполне конкретное назначение. Реквизит должен попасть в своё поле, найденное название — относиться к нужной стороне документа, а пропущенное значение — оставаться поводом для проверки. Человеку важно понимать, какие сведения удалось получить и где ещё требуется его внимание.
Из такого сочетания живого текста и определённой задачи вырос 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 в статье относятся к нашему собственному подходу. Для сравнения инженерных идей мы использовали следующие первичные материалы:
- Официальное руководство PostgreSQL: устройство SELECT ↗
- Мартин Фаулер: предметные языки ↗
- Официальная документация LLVM: промежуточное представление ↗
- PICARD: исследование структурированных ответов, EMNLP 2021 ↗
Ясность помогает двигаться дальше
Пусть у хорошей задачи будет удобное продолжение.
Документы, сведения о клиентах и повседневные договорённости — продолжим работу в PINoffice.
Открыть PINoffice