Papera ещё в разработке. Что-то может измениться или перестать работать, пока мы её строим.
MCPПример: презентация из ваших заметок

Пример: презентация из ваших заметок

Полный прогон от вороха заметок со встречи до сохранённого проекта с выведенной из него презентацией, показанный вызов за вызовом.

У вас есть черновые заметки со встречи, и вы хотите получить из них презентацию, не выходя из своего клиента ИИ. Вот весь прогон, вызов за вызовом.

Что нужно: клиент ИИ, подключённый к Papera.

Идентификаторы ниже сокращены для читаемости. Настоящие это UUID, и вы никогда не набираете их сами: каждый инструмент возвращает те идентификаторы, которые нужны следующему.

1. Передайте заметки

Вы: Вот мои заметки с разбора цен. Сделай из них короткую презентацию для встречи руководства, тон деловой. (заметки вставлены ниже)

Клиент начинает прогон, взяв ваш текст как источник:

// generate_outline
{
  "topic": "Pricing review summary for the leadership meeting",
  "source_text": "Notes: three tiers today ... churn concentrated in the low tier ...",
  "mood": "professional"
}

Поскольку source_text передан, Papera строит план по вашим заметкам, а не изучает тему с нуля. В ответ приходит план.

2. Доведите план

Papera: Вот план: 1. Где мы сейчас по ценам. 2. Что показывают данные. 3. Три варианта. 4. Что мы рекомендуем. Утверждаем?

Вы хотите одно изменение:

// approve_outline
{ "decision": "Good, but drop section 3 and fold the options into the recommendation." }

Papera перестраивает план и показывает вам укороченный вариант. На этот раз вы соглашаетесь:

// approve_outline
{ "decision": "approved" }

Утверждение запускает написание контента, который приходит на проверку.

3. Утвердите контент

Papera: Вот написанный контент, четыре раздела. Утверждаем?

// approve_content
{ "decision": "approved" }

Как и с планом, вместо этого можно отправить замечания («убери второй абзац раздела 2») сколько угодно раз. Пока вы не утвердите, ничего не сохраняется.

4. Сохраните

// save_project
{}

Papera сохраняет контент как проект и возвращает ссылку, а вместе с ней идентификаторы проекта и процесса:

{
  "project_id": "9c1f2a84",
  "workflow_id": "41ac7d20",
  "link": "https://papera.dev/project/9c1f2a84"
}

Откройте эту ссылку под той же учётной записью, и контент будет там.

5. Выведите презентацию

Проект содержит контент, а презентация это одно из того, что можно из него вывести. Ваш клиент запрашивает узел контента и прикрепляет рендерер слайдов:

// get_workflow
{ "project_id": "9c1f2a84", "workflow_id": "41ac7d20" }
// attach_renderer
{
  "project_id": "9c1f2a84",
  "workflow_id": "41ac7d20",
  "source_node_id": "content-3b71",
  "renderer_id": "slides"
}

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

Варианты

Использовать свою модель. Добавьте "use_my_model": true в вызов generate_outline. Тогда Papera на каждом шаге отдаёт вашему клиенту запрос, модель клиента его выполняет, а submit_agent_action возвращает результат. Прогон не стоит кредитов ИИ. См. Создание контента.

Без заметок, только тема. Уберите source_text и передайте один topic. Papera сначала изучит тему.

Добавить в существующий проект. Передайте "project_id": "9c1f2a84" в save_project, и контент станет новым процессом в этом проекте, а не отдельным проектом. Это же выход, когда вы достигли лимита проектов.

Другой вывод. Замените renderer_id на document, blog или social-post, либо прикрепите несколько сразу: все они выводятся из одного и того же контента.