хочу обсудить проект
Готово! Мы ответим вам в течении одного рабочего дня
Что-то пошло не так. Попробуйте еще раз
Назад
1k+ участников
Вступить в Telegram
n8n
•
27.08.2025

Автоматизация глубокого исследования с AI Research System

Цель

Создать быстрый и надежный инструмент для автоматического проведения комплексных исследований, который экономит часы ручной работы и предоставляет готовый структурированный отчет за 5-10 минут.

Область применения

  • Бизнес-аналитика – анализ рынков, конкурентов и тенденций
  • Научные исследования – сбор и систематизация данных по тематике
  • Образование – подготовка материалов для курсовых, дипломов, статей
  • Контент-маркетинг – создание экспертных статей и обзоров
  • Стартапы – изучение ниши и подготовка презентационных материалов

Описание процесса

Данная автоматизация представляет собой комплексную систему проведения глубокого исследования по любой заданной теме. Система автоматически разбивает тему на 5 подтем, проводит исследование каждой из них с использованием 25 источников, создает структурированный HTML-отчет и отправляет готовый PDF-документ пользователю на email.

‍Необходимые API ключи и настройки

Основные сервисы:
  • OpenAI API ключ - для 8 различных AI операций 
  • Tavily API ключ - для 5 углубленных веб-поисков https://app.tavily.com/home 
  • APITemplate.io API ключ - для генерации PDF из HTML https://app.apitemplate.io/manage-api/ 
  • Google Sheets OAuth2 - для сохранения промежуточных данных
  • Gmail OAuth2 - для отправки готового отчета

‍Структура Google Sheets таблицы:

Обязательные столбцы:

  • Тема анализа - основная тема (ключевое поле)
  • Заголовок - название отчета
  • Вступление - введение
  • 1 Глава, 2 Глава, 3 Глава, 4 Глава, 5 Глава - заголовки глав
  • 1 Тема: Источники, 1 Тема: Разделы, 1 Тема: контент - данные темы 1
  • 2 Тема: Источники, 2 Тема: Разделы, 2 Тема: контент - данные темы 2
  • 3 Тема: Источники, 3 Тема: Разделы, 3 Тема: контент - данные темы 3
  • 4 Тема: Источники, 4 Тема: Разделы, 4 Тема: контент - данные темы 4
  • 5 Тема: Источники, 5 Тема: Разделы, 5 Тема: контент - данные темы 5
  • Источники - общий список всех источников
  • ToC - оглавление

‍Детальная архитектура

РАЗДЕЛ 1: ПОДГОТОВКА (Красный блок)

‍

1.1 Форма запуска - On form submission

Назначение: Точка входа для пользователя Настройки:

{

  "formTitle": "Глубокий анализ",

  "formDescription": "Введите тему для анализа",

  "formFields": [

    {

      "fieldLabel": "Search Topic",

      "placeholder": "тема",

      "requiredField": true

    },

    {

      "fieldLabel": "Email",

      "placeholder": "name@example.com", 

      "requiredField": true

    }

  ]

}

‍1.2 AI Планирование - Plan Topics

Назначение: Разбивает основную тему на 5 подтем для исследования

Подключенные компоненты:

  • OpenAI Chat Model (gpt-4o-mini)
  • 5 Topics (Structured Output Parser)

Системный промпт Plan Topics:

# Обзор

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

## Инструкции:

1) Разбейте тему: Определите пять отдельных, но взаимосвязанных подтем, которые при исследовании дадут всестороннее понимание основной темы поиска.

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

3) Избегайте избыточности: Пять тем поиска должны быть уникальными и охватывать различные аспекты основной темы.

## Формат вывода (JSON):

{

"topic_1": "<Первая тема углубленного поиска>",

"topic_2": "<Вторая тема углубленного поиска>",

"topic_3": "<Третья тема углубленного поиска>",

"topic_4": "<Четвертая тема углубленного поиска>",

"topic_5": "<Пятая тема углубленного поиска>"

}

## Пример:

Ввод: "Автоматизация бизнеса на базе ИИ"

Вывод:

{

"topic_1": "Роль ИИ в автоматизации бизнес-процессов",

"topic_2": "Инструменты и технологии ИИ-автоматизации",

"topic_3": "Проблемы и этические аспекты автоматизации ИИ",

"topic_4": "Успешные кейсы внедрения ИИ в бизнесе",

"topic_5": "Будущее автоматизации ИИ: тенденции и инновации"

}

‍Structured Output Parser Schema "5 Topics":

{

  "topic_1": "Understanding AI Agents",

  "topic_2": "Building AI Agents with n8n",

  "topic_3": "Optimizing Prompt Engineering", 

  "topic_4": "Storing and Retrieving AI Knowledge",

  "topic_5": "Scaling AI Automation for Businesses"

}

‍ЧТО ТАКОЕ Structured Output Parser Schema: Это инструмент, который заставляет AI возвращать данные ТОЧНО в заданном JSON формате. Без него AI может вернуть текст как угодно - абзацами, списками, в любом виде. Схема говорит AI: "Верни мне именно 5 тем в формате topic_1, topic_2 и т.д."

ЗАЧЕМ ЭТО НУЖНО ЗДЕСЬ:

  1. Гарантирует получение именно 5 тем (не 3, не 7)
  2. Позволяет обращаться к каждой теме через $json.topic_1, $json.topic_2
  3. Switch нода может точно определить, какую тему направить куда
  4. Исключает ошибки парсинга данных

КАК ЭТО РАБОТАЕТ:

  • AI получает промпт + схему как строгую инструкцию
  • AI обязан вернуть JSON именно с полями topic_1, topic_2, topic_3, topic_4, topic_5
  • n8n автоматически парсит JSON и делает доступным $json.topic_1 для следующих нод
1.3 AI Генерация структуры - Intro

Назначение: Создает заголовок, введение и названия глав для отчета

Подключенные компоненты:

  • OpenAI Chat Model1 (gpt-4o-mini)
  • Title, Intro, Chapters (Structured Output Parser)

Системный промпт Intro:

# Обзор

Вы — ИИ-генератор названий отчетов и вступлений. Ваша задача — создать убедительное название, краткое введение и пять четких заголовков глав для исследовательского отчета на основе заданной основной темы поиска и пяти подтем.

## Инструкции:

1) Название: Создайте четкое и интересное название, отражающее общую тему отчета.

2) Введение: Напишите короткое введение (2 абзаца), которое предоставит контекст, объяснит значимость темы и обрисует, что будет охватывать отчет. Этот раздел должен начинаться с заголовка под названием «Введение».

3) Оглавление: В конце введения перечислите пять разделов отчета, каждый из которых представлен в виде четко отформатированного названия главы в заголовках <h2>.

4) Названия глав: Убедитесь, что название каждой главы отформатировано как заголовок <h2>, чтобы сделать его визуально отличным.

## Оформление:

- Название: элемент <h1>, по центру, оформленный профессиональным темно-синим цветом.

- Введение: заключено в <div> со светло-серым фоном (#f4f4f4) для контраста.

- Абзацы: читаемый размер шрифта (16 пикселей), соответствующая высота строки (1,6) и нейтральный цвет текста (#333).

- Горизонтальная линия (<hr>) должна использоваться для разделения двух вводных абзацев.

- Названия глав: четко отформатированы как элементы <h2> для удобства чтения.

## Формат вывода (JSON):

{

"title": "<Сгенерированное название отчета>",

"introduction": "<Сгенерированное введение>",

"chapter_1": "<h2>Глава 1: [Название]</h2>",

"chapter_2": "<h2>Глава 2: [Название]</h2>",

"chapter_3": "<h2>Глава 3: [Название]</h2>",

"chapter_4": "<h2>Глава 4: [Название]</h2>",

"chapter_5": "<h2>Глава 5: [Название]</h2>"

}

## Пример:

{

"title": "<h1 style='text-align: center; color: #00366D;'>Искусственный интеллект в современном бизнесе: комплексный анализ автоматизации</h1>",

"introduction": "<div style='background-color: #f4f4f4; padding: 20px; font-size: 16px; line-height: 1.6; color: #333;'><h2>Введение</h2><p>Автоматизация на основе искусственного интеллекта стала ключевым фактором трансформации современного бизнеса...</p><hr><p>Данный отчет исследует пять критических аспектов внедрения ИИ...</p></div>",

"chapter_1": "<h2 style='text-align: center; color: #00366D;'>Глава 1: Роль ИИ в автоматизации</h2>"

}

‍Structured Output Parser Schema "Title, Intro, Chapters":

{

  "title": "<Generated Report Title>",

  "introduction": "<Generated Introduction>",

  "chapter_1": "<h2>Chapter 1: [Title]</h2>",

  "chapter_2": "<h2>Chapter 2: [Title]</h2>", 

  "chapter_3": "<h2>Chapter 3: [Title]</h2>",

  "chapter_4": "<h2>Chapter 4: [Title]</h2>",

  "chapter_5": "<h2>Chapter 5: [Title]</h2>"

}

‍ЧТО ТАКОЕ Structured Output Parser Schema: Здесь схема обеспечивает получение всех компонентов структуры отчета в строго определенном формате. Без неё AI мог бы вернуть всё в одном тексте или в произвольном порядке.

ЗАЧЕМ ЭТО НУЖНО ЗДЕСЬ:

  1. Разделяет заголовок, введение и главы на отдельные поля
  2. Позволяет обращаться к каждому элементу: $json.title, $json.introduction, $json.chapter_1
  3. Google Sheets нода может сохранить каждый элемент в свой столбец
  4. Гарантирует HTML-форматирование глав (обязательные теги <h2>)

КАК ЭТО РАБОТАЕТ:

  • AI получает схему и обязан вернуть JSON с 7 полями
  • Каждое поле содержит готовый HTML-код
  • Send Intro может взять $json.output.title и сохранить в столбец "Заголовок"
1.4 Сохранение базовой структуры - Send Intro

Назначение: Сохраняет структуру отчета в Google Sheets

Настройки Google Sheets:

  • Operation: Append
  • Document ID: ID вашей таблицы "Глубокий анализ" (либо просто выберите из списка)
  • Sheet Name: Лист1
  • Columns Mapping:
    • Тема анализа: {{ $('On form submission').item.json['Search Topic'] }}
    • Заголовок: {{ $json.output.title }}
    • Вступление: {{ $json.output.introduction }}
    • 1 Глава: {{ $json.output.chapter_1 }}
    • 2 Глава: {{ $json.output.chapter_2 }}
    • 3 Глава: {{ $json.output.chapter_3 }}
    • 4 Глава: {{ $json.output.chapter_4 }}
    • 5 Глава: {{ $json.output.chapter_5 }}
1.5 Подготовка данных для разделения

Последовательность: Set Topics → Split Out → Split Out1 → Merge1 → Merge → Switch

Set Topics:

{

  "assignments": [

    {

      "name": "topics",

      "value": "['topic_1','topic_2','topic_3','topic_4','topic_5']",

      "type": "array"

    }

  ]

}

‍Назначение: Создает массив названий тем для последующего разделения.

Split Out:

  • Field to Split Out: output
  • Назначение: Разделяет результат Plan Topics на отдельные элементы.

Split Out1:

  • Field to Split Out: topics
  • Назначение: Разделяет массив ['topic_1','topic_2','topic_3','topic_4','topic_5'] на 5 отдельных элементов.

Merge1:

  • Mode: Combine
  • Combine By: Combine by Position
  • Назначение: Объединяет потоки Split Out и Split Out1 по позиции.

Merge:

  • Mode: Combine
  • Combine By: Combine All
  • Назначение: Финальное объединение перед Switch, включает данные от Send Intro.

Switch:

  • 5 условий для маршрутизации:
    1. {{ $json.topics }} equals topic_1 → Output 0
    2. {{ $json.topics }} equals topic_2 → Output 1
    3. {{ $json.topics }} equals topic_3 → Output 2
    4. {{ $json.topics }} equals topic_4 → Output 3
    5. {{ $json.topics }} equals topic_5 → Output 4
РАЗДЕЛ 2: ИССЛЕДОВАТЕЛЬСКИЕ ПОТОКИ (Желтые блоки)
ПОТОК ТЕМЫ 1 (детальный разбор):
2.1 Веб-поиск - Tavily

Назначение: Ищет информацию по первой теме через Tavily API

HTTP Request настройки:

  • Method: POST
  • URL: https://api.tavily.com/search
  • Authentication: Header Auth
  • Нажмите Create new credentials
  • Header Name: Authorization
  • Header Value: Bearer ваш_tavily_api_ключ

Апи ключ возьмите отсюда

https://app.tavily.com/home 

JSON Body:

{

  "query": "{{ $json.output }}",

  "topic": "general", 

  "search_depth": "advanced",

  "chunks_per_source": 3,

  "max_results": 5

}

‍Объяснение параметров:

  • search_depth: "advanced" - глубокий поиск с анализом контента
  • chunks_per_source: 3 - по 3 фрагмента текста с каждого источника
  • max_results: 5 - максимум 5 источников
2.2 Разделение результатов - Split Out2

Назначение: Разделяет результаты Tavily на отдельные источники

Настройки:

  • Field to Split Out: results
  • Результат: Каждый источник становится отдельным элементом для обработки

2.3 Нумерация источников - Code

Назначение: Присваивает номера 1-5 источникам первой темы

JavaScript код:

// Create separate items for each URL with a number

return items.map((item, index) => {

  return {

    json: {

      number: index + 1,

      url: item.json.url,

      numberedUrl: `${index + 1}. ${item.json.url}`

    }

  };

});

‍

Объяснение:

  • index + 1 создает номера 1, 2, 3, 4, 5
  • numberedUrl создает строки вида "1. https://example.com"
  • Это нужно для правильных ссылок в отчете
2.4 Генерация контента - Writer

Назначение: AI создает HTML-отчет на основе найденной информации

Подключенные компоненты:

  • OpenAI Chat Model2 (gpt-4o-mini)

Системный промпт Writer:

# Обзор

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

## Руководство по созданию отчетов

1. Соблюдение руководства по стилю

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

2. Структура и форматирование

- Отчет должен быть хорошо структурирован и отформатирован в профессиональном HTML.

- Заголовок (<h1>) — предоставляется как «Заголовок»

- Основной текст — полностью отформатированный исследовательский контент с правильным разделением (<h2>, <h3>, <p>).

- Каждый раздел должен быть заключен в div, стилизованный в соответствии с предоставленным руководством, чтобы обеспечить единообразие.

- Используйте <p> для абзацев, <ul>/<ol> для списков и <hr> для разделения разделов, когда это необходимо.

- Заголовки «Обзор» или «Заключение» не нужны, просто выведите полный отчет.

- Горизонтальная линия (<hr>) должна использоваться для разделения разделов для лучшей визуальной ясности.

3. Контент, основанный на исследованиях

- Логически обобщайте информацию и гарантируйте, что отчет хорошо изучен, основан на фактах и ​​написан профессионально.

- Используйте информативное написание. Предоставьте как можно больше подробностей.

- Поддерживайте логическую последовательность идей, эффективно суммируя ключевые моменты.

4. Атрибуция источника и кликабельные ссылки

- Используйте номер, указанный перед источником, в качестве кликабельного атрибута в отчете.

- Ссылки на источники должны быть встроены в текст с помощью: <a href="SOURCE_URL" target="_blank">[1]</a>

- Не включайте раздел «Ссылки» — вместо этого все источники должны быть встроены в контент.

‍

## Пример структуры вывода:

‍

<!DOCTYPE html>

<html>

<head>

    <title>Research Report: [Title]</title>

    <style>

        body { font-family: Arial, sans-serif; line-height: 1.6; margin: 20px; }

        h1, h2, h3 { color: #333; }

        .report-section { background-color: #f4f4f4; padding: 20px; font-size: 16px; line-height: 1.6; color: #333; margin-bottom: 10px; }

    </style>

</head>

<body>

    <div class="report-section">

        <h1>Research Report: [Title]</h1>

    </div>

    <div class="report-section">

        <h2>Introduction</h2>

        <p>Контент исследования с встроенными ссылками <a href="https://example.com" target="_blank">[1]</a>.</p>

        <hr>

        <p>Дополнительный анализ с ссылкой <a href="https://example2.com" target="_blank">[2]</a>.</p>

    </div>

</body>

</html>

‍Входные данные для Writer:

Title: {{ $('Split Out2').item.json.title }}

Research: {{ $('Split Out2').item.json.content }}

Source: {{ $json.numberedUrl }}

Style Guide Example: {{ $('Switch').item.json['1 Глава'] }}

‍2.5 Агрегация данных - Aggregate & Aggregate1

Aggregate (для контента):

  • Field to Aggregate: output
  • Назначение: Объединяет все HTML-отчеты от Writer в один массив

Aggregate1 (для источников):

  • Field to Aggregate: numberedUrl
  • Назначение: Объединяет все пронумерованные URL в один массив

Зачем нужна агрегация:

  • Writer обрабатывает каждый источник отдельно (5 раз)
  • Aggregate объединяет 5 отдельных HTML-кусков в один массив
  • Это позволяет сохранить весь контент темы как единое целое
2.6 Объединение потоков - Merge3

Назначение: Синхронизирует агрегированный контент и источники

Настройки:

  • Mode: Combine
  • Combine By: Combine by Position
  • Результат: Один элемент с полным контентом и всеми источниками темы
2.7 Извлечение структуры - HTML

Назначение: Извлекает названия разделов из сгенерированного HTML

Настройки:

  • Operation: Extract HTML Content
  • Data Property Name: output
  • CSS Selector: title
  • Extraction Values:
    • Key: section
    • CSS Selector: title

Зачем это нужно: Для автоматического создания оглавления нужно знать, какие разделы создал AI в отчете.

2.8 Объединение разделов - Combine

Назначение: Собирает все названия разделов в один массив

JavaScript код:

return [{

  sections: $input.all().map(item => item.json.section)

}];

‍2.9 Сохранение результатов - Google Sheets1

Назначение: Сохраняет все данные первой темы в таблицу

Настройки:

  • Operation: Update
  • Document ID: ID таблицы "Глубокий анализ"
  • Matching Column: Тема анализа
  • Columns Mapping:
    • 1 Тема: Источники: {{ $('Merge3').first().json.numberedUrl.join("\n") }}
    • 1 Тема: Разделы: {{ $json.sections.join("\n") }}
    • 1 Тема: контент: {{ $('Merge3').first().json.output.join("\n \n") }}
ПОТОКИ ТЕМ 2-5 (краткое описание):

Идентичная структура с темой 1, отличия только в:

Тема 2: Tavily1 → Split Out3 → Code1 → Writer1 → Aggregate2 → Aggregate3 → Merge4 → HTML1 → Combine1 → Google Sheets2

  • Code1: источники 6-10 (index + 6)
  • Writer1: использует стиль из {{ $('Switch').item.json['2 Глава'] }}

Тема 3: Tavily2 → Split Out4 → Code2 → Writer2 → Aggregate4 → Aggregate5 → Merge5 → HTML2 → Combine2 → Google Sheets3

  • Code2: источники 11-15 (index + 11)

Тема 4: Tavily3 → Split Out5 → Code3 → Writer3 → Aggregate6 → Aggregate7 → Merge6 → HTML3 → Combine3 → Google Sheets4

  • Code3: источники 16-20 (index + 16)

Тема 5: Tavily4 → Split Out6 → Code4 → Writer4 → Aggregate8 → Aggregate9 → Merge7 → HTML4 → Combine4 → Google Sheets5

  • Code4: источники 21-25 (index + 21)
РАЗДЕЛ 3: ФИНАЛИЗАЦИЯ (Зеленый блок)

3.1 Объединение всех результатов - Merge2

Назначение: Собирает результаты всех 5 тем в одном месте

Настройки:

  • Mode: Combine
  • Number of Inputs: 5
  • Combine By: Combine All
  • Входы: Google Sheets1, Google Sheets2, Google Sheets3, Google Sheets4, Google Sheets5
3.2 Ограничение данных - Limit

Назначение: Оптимизирует обработку данных

Настройки:

  • Max Items: 1
  • Зачем: Берет только первый элемент для дальнейшей обработки
3.3 Получение источников - Get Sources

Назначение: Извлекает все источники из Google Sheets

Настройки Google Sheets:

  • Operation: Read
  • Document ID: ID таблицы "Глубокий анализ"
  • Filters: Тема анализа equals {{ $('On form submission').first().json['Search Topic'] }}

3.4 Генерация списка источников - Sources

Назначение: AI создает HTML-список всех 25 источников

Подключенные компоненты:

  • OpenAI Chat Model7 (gpt-4o-mini)

Системный промпт Sources:

# Обзор

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

## Правила форматирования:

- Заголовок раздела должен быть <h2>Источники</h2>.

- Используйте неупорядоченный список (<ul>) для отображения источников.

- Каждый источник должен быть в формате:

<li><a href="SOURCE_URL" target="_blank">[NUMBER] Название источника</a></li>

- Необходимо сохранить исходную нумерацию источников.

## Пример структуры вывода:

<div class="sources-section">

    <h2>Источники</h2>

    <ul>

        <li><a href="https://example1.com" target="_blank">[1] Research on AI Development</a></li>

        <li><a href="https://example2.com" target="_blank">[2] The Impact of Automation</a></li>

        <li><a href="https://example3.com" target="_blank">[3] Machine Learning Trends</a></li>

    </ul>

</div>

‍Входные данные:

Sources:

{{ $json['1 Тема: Источники'] }}

{{ $json['2 Тема: Источники'] }}

{{ $json['3 Тема: Источники'] }}

{{ $json['4 Тема: Источники'] }}

{{ $json['5 Тема: Источники'] }}

‍3.5 Сохранение источников - Send Sources

Назначение: Сохраняет готовый список источников в таблицу

Настройки Google Sheets:

  • Operation: Update
  • Matching Column: Тема анализа
  • Column: Источники: {{ $json.output }}
3.6 Получение всех данных - Get All Content

Назначение: Извлекает полную структуру отчета для создания оглавления

Настройки: Идентичны Get Sources, получает все столбцы таблицы.

3.7 Создание оглавления - Table of Contents

Назначение: AI генерирует структурированное оглавление

Подключенные компоненты:

  • OpenAI Chat Model8 (gpt-4o-mini)

Системный промпт Table of Contents:

# Обзор

Вы — помощник ИИ, которому поручено создать структурированное оглавление (ToC) в профессиональном HTML-форматировании для исследовательского отчета. Ваш вывод должен соответствовать предоставленному руководству по стилю и быть чистым, читаемым и хорошо структурированным.

## Рекомендации

1) Форматируйте главы как элементы <h2>

- Каждая глава должна быть отдельным заголовком <h2>.

2) Форматируйте разделы как упорядоченный список (<ol>)

- Каждый раздел в главе должен быть элементом списка (<li>) внутри <ol>.

- Поддерживайте четкую иерархию и отступы для удобства чтения.

3) Применяйте данное руководство по стилю

- Оберните оглавление в <div> с тем же отступом, размером шрифта и цветом, что и руководство по стилю.

- Добавьте горизонтальную линию (<hr>) для разделения.

## Пример вывода:

<div style="background-color: #f4f4f4; padding: 20px; font-size: 16px; line-height: 1.6; color: #333;">

    <h2>Оглавление</h2>

    <hr>

    <ol>

        <li>

            <h2>Глава 1: Введение</h2>

            <ol>

                <li>Контекст и важность</li>

                <li>Цели исследования</li>

            </ol>

        </li>

        <li>

            <h2>Глава 2: Основные концепции</h2>

            <ol>

                <li>Теоретические основы</li>

                <li>Практические применения</li>

            </ol>

        </li>

    </ol>

</div>

‍

Входные данные Table of Contents:

Chapter 1: {{ $('Plan Topics').first().json.output.topic_1 }}

Sections: {{ $json['1 Тема: Разделы'] }}

‍

Chapter 2: {{ $('Plan Topics').first().json.output.topic_2 }}

Sections: {{ $json['2 Тема: Разделы'] }}

‍

Chapter 3: {{ $('Plan Topics').first().json.output.topic_3 }}

Sections: {{ $json['3 Тема: Разделы'] }}

‍

Chapter 4: {{ $('Plan Topics').first().json.output.topic_4 }}

Sections: {{ $json['4 Тема: Разделы'] }}

‍

Chapter 5: {{ $('Plan Topics').first().json.output.topic_5 }}

Sections: {{ $json['5 Тема: Разделы'] }}

‍

Style Guide: {{ $json['Вступление'] }}

‍3.8 Сохранение оглавления - Send ToC

Назначение: Сохраняет готовое оглавление в таблицу

Настройки Google Sheets:

  • Operation: Update
  • Document ID: ID таблицы "Глубокий анализ"
  • Matching Column: Тема анализа
  • Column: ToC: {{ $json.output }}
3.9 Финальное получение данных - Get All Content1

Назначение: Извлекает полную финальную версию всех данных отчета

Настройки: Идентичны предыдущим Google Sheets read операциям, получает все заполненные столбцы.

3.10 Объединение в единый документ - Combine Content

Назначение: JavaScript объединяет все части отчета в единый HTML-документ

JavaScript код:

// N8N Code Node to combine multiple fields into a single field with new lines

‍

// Access the incoming data

const item = items[0];

‍

// Create a new field called "CombinedContent" that joins all fields with newlines

const combinedContent = [

  item.json.Заголовок || '',

  item.json.Вступление || '',

  item.json.ToC || '',

  item.json['1 Глава'] || '',

  item.json['1 Тема: контент'] || '',

  item.json['2 Глава'] || '',

  item.json['2 Тема: контент'] || '',

  item.json['3 Глава'] || '',

  item.json['3 Тема: контент'] || '',

  item.json['4 Глава'] || '',

  item.json['4 Тема: контент'] || '',

  item.json['5 Глава'] || '',

  item.json['5 Тема: контент'] || '',

  item.json.Источники || ''

].join('\n\n');

‍

// Add the combined content to the item

item.json.CombinedContent = combinedContent;

‍

// Return the modified item

return [item];

‍

Что происходит:

  • Берет все части отчета из Google Sheets
  • Объединяет их в правильном порядке: заголовок → введение → оглавление → глава 1 → контент 1 → глава 2 → контент 2 → и т.д. → источники
  • Создает поле CombinedContent с полным HTML-документом
3.11 Генерация PDF - Generate PDF

Назначение: Преобразует HTML в профессиональный PDF документ

HTTP Request настройки:

  • Method: POST
  • URL: https://rest-us.apitemplate.io/v2/create-pdf-from-html
  • Authentication: APITemplate.io account (заранее предусмотренный в n8n)

Апи ключ возьмите здесь https://app.apitemplate.io/manage-api/ 

Query Parameters:

  • filename: {{ $('On form submission').first().json['Search Topic'] }}.pdf

JSON Body:

{

  "body": "{{$json["CombinedContent"].replace(/"/g, '\\"').replace(/\n/g, '\\n')}}",

  "css": "<style>.bg{background: red};</style>",

  "data": {

    "name": "This is a title"

  },

  "settings": {

    "paper_size": "A4",

    "orientation": "1",

    "header_font_size": "9px",

    "margin_top": "40",

    "margin_right": "10",

    "margin_bottom": "40", 

    "margin_left": "10",

    "print_background": "1",

    "displayHeaderFooter": true,

    "custom_header": "<style>#header, #footer { padding: 0 !important; }</style>\n<table style=\"width: 100%; padding: 0px 5px;margin: 0px!important;font-size: 8px\">\n  <tr>\n    <td style=\"text-align:left; width:30%!important;\"><span class=\"date\"></span></td>\n    <td style=\"text-align:center; width:30%!important;\"><span class=\"pageNumber\"></span></td>\n    <td style=\"text-align:right; width:30%!important;\"><span class=\"totalPages\"></span></td>\n  </tr>\n</table>",

    "custom_footer": "<style>#header, #footer { padding: 0 !important; }</style>\n<table style=\"width: 100%; padding: 0px 5px;margin: 0px!important;font-size: 8px\">\n  <tr>\n    <td style=\"text-align:left; width:30%!important;\"><span class=\"date\"></span></td>\n    <td style=\"text-align:center; width:30%!important;\"><span class=\"pageNumber\"></span></td>\n    <td style=\"text-align:right; width:30%!important;\"><span class=\"totalPages\"></span></td>\n  </tr>\n</table>"

  }

}

‍

Объяснение настроек PDF:

  • paper_size: "A4" - формат А4
  • orientation: "1" - портретная ориентация
  • margin_* - отступы в миллиметрах
  • displayHeaderFooter: true - включает колонтитулы
  • custom_header/footer - HTML код для колонтитулов с номерами страниц

Результат: APITemplate.io возвращает объект с download_url для скачивания готового PDF.

3.12 Загрузка PDF файла - Download PDF

Назначение: Скачивает готовый PDF файл по полученной ссылке

HTTP Request настройки:

  • Method: GET
  • URL: {{ $json.download_url }}
  • Options: Download Binary Data включен

Что происходит:

  • Получает download_url из ответа Generate PDF
  • Скачивает PDF файл как бинарные данные
  • Подготавливает файл для прикрепления к email
3.13 Отправка готового отчета - Send Report

Назначение: Отправляет PDF отчет пользователю на email

Gmail настройки:

  • Send To: {{ $('On form submission').first().json.Email }}
  • Subject: Deep Research Report: {{ $('On form submission').first().json['Search Topic'] }}
  • Email Type: Text
  • Message:

Your Deep Research Report on {{ $('On form submission').first().json['Search Topic'] }} is complete.

You can find it attached below.

‍Attachments:

  • Append Attribution: false
  • Attachments Binary: Включить бинарные данные из Download PDF

Результат: Пользователь получает email с прикрепленным PDF отчетом на 15-25 страниц с полным исследованием по его теме.

Полная схема подключений OpenAI моделей

8 OpenAI Chat Model нод используют модель gpt-4o-mini:

  1. OpenAI Chat Model → Plan Topics (разбивка на темы)
  2. OpenAI Chat Model1 → Intro (структура отчета)
  3. OpenAI Chat Model2 → Writer (контент темы 1)
  4. OpenAI Chat Model3 → Writer1 (контент темы 2)
  5. OpenAI Chat Model4 → Writer2 (контент темы 3)
  6. OpenAI Chat Model5 → Writer3 (контент темы 4)
  7. OpenAI Chat Model6 → Writer4 (контент темы 5)
  8. OpenAI Chat Model7 → Sources (список источников)
  9. OpenAI Chat Model8 → Table of Contents (оглавление)
Структура Google Sheets таблицы:

Обязательные столбцы:

  • Тема анализа - основная тема (ключевое поле)
  • Заголовок - название отчета
  • Вступление - введение
  • 1 Глава, 2 Глава, 3 Глава, 4 Глава, 5 Глава - заголовки глав
  • 1 Тема: Источники, 1 Тема: Разделы, 1 Тема: контент - данные темы 1
  • 2 Тема: Источники, 2 Тема: Разделы, 2 Тема: контент - данные темы 2
  • 3 Тема: Источники, 3 Тема: Разделы, 3 Тема: контент - данные темы 3
  • 4 Тема: Источники, 4 Тема: Разделы, 4 Тема: контент - данные темы 4
  • 5 Тема: Источники, 5 Тема: Разделы, 5 Тема: контент - данные темы 5
  • Источники - общий список всех источников
  • ToC - оглавление
Результат работы автоматизации
Что получает пользователь:
  • PDF отчет на 15-25 страниц с профессиональным оформлением
  • Структурированное исследование по 5 аспектам темы
  • 25 пронумерованных источников с активными ссылками
  • Оглавление с иерархической структурой
  • HTML форматирование с единым стилем
  • Время доставки: 5-10 минут после отправки формы
Характеристики качества:
  • Глубина исследования: 5 тем × 5 источников = 25 источников
  • Объем контента: ~15,000-20,000 слов
  • Профессиональное оформление: единый стиль, колонтитулы, нумерация страниц
  • Автоматическое цитирование: встроенные ссылки на источники
  • Структурированность: четкая иерархия разделов и подразделов

Готово. Данная автоматизация превращает любую тему в профессиональный исследовательский отчет полностью автоматически за 5-10 минут.

JSON-файл и инструкцию в видеоформате вы всегда можете получить, вступив в наш уникальный Клуб автоматизаций.

Читайте также

No items found.

напишите нам, и мы покажем путь к эффективности