Перейти к содержимому
Docxcelerate

Генерация

Движок

Что делает движок, как опубликовать в нём шаблон и чем различаются две редакции.

Работа фреймворка заканчивается на пакете. Он отрисовывает ваш документ и упаковывает его; пакет — это шаблон, в котором ещё нет данных получателя. Движок — то, куда этот пакет отправляется, и то, что превращает его в документы.

Три шага

  1. Сборка. Фреймворк отрисовывает документ и упаковывает его. Это единственный шаг, который выполняется на вашей машине.
  2. Публикация. Пакет отправляется движку, тот сохраняет его и выдаёт адрес.
  3. Написание. Ваше приложение вызывает API с набором данных. Движок пишет документ и возвращает его.

Важное следствие: публикация и написание разделены. Пакет вы публикуете, когда меняются формулировки документа, — событие в форме деплоя. API вы вызываете каждый раз, когда кому-то нужен документ, — возможно, постоянно, и при этом не нужны ни шаг сборки, ни workspace.

Почему движка нет в пакете

Движок — это сервис, а не библиотека, и он не входит в npm-пакет. Написание, предпросмотр и упаковка — локальная работа, за которой ничего не стоит, так что установка фреймворка не тянет за собой ничего, что требовало бы ключей API или сети, а версии у них независимые.

Направить workspace на движок

dxcl init my-documents --api-endpoint https://documents.example.com/api/letters

Или настроить без него и решить позже:

dxcl init my-documents --no-api-endpoint

upload.endpoint в docxcelerate.config.json можно править в любой момент, а пресеты конфигурации позволяют держать локальный, тестовый и боевой движки рядом.

Что вы публикуете

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

{ "kind": "paragraph", "mode": "static", "id": "greeting",
  "text": "Dear {{data.applicantName}}," }

Динамические узлы приходят не с текстом, а с промптами:

{ "kind": "paragraph", "mode": "dynamic", "id": "tutor-note",
  "prompts": [
    { "kind": "general", "text": "Write two warm, specific sentences…" },
    { "kind": "negative", "text": "Do not restate the offer…" },
    { "kind": "system", "text": "You are an admissions tutor…" }
  ] }

Две редакции

Своё размещение (бесплатно). Урезанный движок, который вы запускаете сами. Он покрывает ядро конвейера — сохранить пакет, писать из него документы — с сокращённым набором возможностей.

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

Это не одна и та же сборка, поэтому выбирайте по возможностям, а не только по предпочтениям в размещении.

Работа без движка

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

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


Изменить эту страницу на GitHub ↗