APIDOCINSPECT

DocInspect API

Опишите задачу словами и приложите JSON-схему ответа — один эндпоинт POST /v1/process выполняет ее над файлом или текстом.

Опишите задачу — сервис ее выполнит

У API один эндпоинт обработки документов: POST /v1/process. Вы присылаете документ (или готовый текст) и говорите, что хотите получить: инструкцию словами в prompt и форму ответа в output_schema. Как это сделать — задача сервиса: определить формат, прогнать OCR или разбор векторного слоя, выбрать модель, при необходимости нарезать длинный текст.

curl -X POST https://api.docinspect.ru/v1/process \
  -H "X-API-Key: $API_KEY" \
  -F "file=@contract.pdf" \
  -F "prompt=Найди условия расторжения и срок предупреждения второй стороны" \
  -F 'output_schema={"type":"object","properties":{
        "termination_terms":{"type":"string"},
        "notice_period_days":{"type":"integer"}}}'

Промпт — не запасной вариант для случаев, когда «схема не справилась». Это основной способ говорить с API: классификация, суммаризация, сравнение версий, поиск смысловых условий — разные промпты, а не разные эндпоинты. Если задача чисто механическая (одни и те же поля из потока однотипных документов), промпт можно не передавать — тогда одной output_schema достаточно, и обработка идет короче.

Что умеет один эндпоинт

Вид задачи определяется не адресом, а тем, какие поля вы прислали:

Вид задачиЧто передатьЧто получить
Задача по инструкцииprompt + output_schemaresult по вашей схеме — то, что вы описали словами
Извлечение по схемеoutput_schemaresult по схеме, без промпта — поток однотипных документов
Разбиениеsplitdocuments[] — границы, типы и (со схемой) данные каждой секции
Сверка с реестромmatch + registry + output_schemaсекция match: что нашлось, чего нет, покрытие
Разбортолько includemarkdown, fragments, tables, fields — без обращения к модели

Комбинируются: split + output_schema — «разбей пачку сканов и извлеки из каждого документа», output_schema + include: ["fragments"] — «данные и текст с привязкой к страницам для цитирования». Полный контракт — в разделе «/v1/process».

Что появилось сверх извлечения

Тот же запрос умеет больше, чем «достать поля»:

  • Перевод значений. language подсказывает язык документа (для китайских сканов — обязательно), translate: {"to": "ru"} переводит строковые значения result после извлечения. Термины — единицы измерения, типы упаковки, Инкотермс — закрывает глоссарий, не обращаясь к модели. См. «Перевод и Excel».
  • Excel вместо JSON. format=xlsx отдает результат готовым файлом: лист с реквизитами и лист позиций, где заголовки колонок берутся из title свойств вашей схемы.
  • Кабинет без кода. Вход по ссылке на почту, самостоятельный выпуск ключей, расход за месяц — и раздел «Обработка документов», который повторяет тот же сценарий мышкой: тип документа → колонки → файл → Excel. См. «Кабинет и обработка без кода».

Разделы

Три принципа, о которые чаще всего спотыкаются

  1. Response-first. API никогда не пишет в вашу базу данных — результат всегда только в теле ответа, сохраняете вы сами. Документ и реестр обрабатываются в памяти запроса и не остаются на стороне сервиса.
  2. NDA-граница. Перед каждым обращением к внешней модели реквизиты, ФИО, компании и адреса заменяются плейсхолдерами и восстанавливаются в ответе. В режиме fail_closed (по умолчанию) неуверенный скраб — это отказ 422 ANONYMIZATION_INCOMPLETE, а не риск утечки.
  3. Внутренней кухни в ответе нет. Ни токенов, ни имени модели, ни провайдера: вы платите за страницы, и в ответе ровно это — usage: {pages, sheets}. Типовой документ обрабатывается за доли секунды, нестандартная форма или скан — дольше, но контракт ответа один и тот же.

On this page