Этот шаблон n8n представляет собой интеллектуального агента, способного сканировать веб-страницы и извлекать их содержимое для дальнейшего анализа. Он использует комбинацию HTTP-запросов, обработки HTML и преобразования в Markdown для предоставления упрощенного контента. Давайте разберем его пошагово.
Основная функциональность
Шаблон позволяет:
- Получать запросы от пользователя через текстовый интерфейс (чат).
- Сканировать веб-страницы с использованием HTTP-запросов.
- Обрабатывать HTML-контент:
- Удалять ненужные теги (например,
<script>
,<style>
). - Упрощать содержимое (например, заменять ссылки и изображения на заполнители).
- Преобразовывать HTML в Markdown для уменьшения объема данных.
- Ограничить длину контента, чтобы избежать перегрузки системы.
- Отправлять результаты обратно пользователю.
Пошаговое описание работы
1. Триггер: “On new manual Chat Message”
- Это точка входа в рабочий процесс.
- Шаблон активируется, когда пользователь отправляет сообщение через чат-интерфейс.
- Сообщение передается в следующий узел для анализа.
Пример запроса:
- Пользователь: “Сканируй страницу https://example.com”.
- Агент: Анализирует запрос и выполняет HTTP-запрос к указанной странице.
2. AI Agent: “ReAct AI Agent”
- Этот узел является основным ядром шаблона.
- Он использует системное сообщение (system prompt) для определения поведения агента:
- Агент знает, как использовать инструменты (например, HTTP_Request_Tool).
- Он может:
- Анализировать текстовые запросы.
- Выполнять HTTP-запросы для получения контента страницы.
- Обрабатывать ошибки, если URL недействителен или страница слишком большая.
Особенности:
- Агент работает с инструментами:
- HTTP_Request_Tool: Для выполнения HTTP-запросов.
- Markdown Converter: Для преобразования HTML в Markdown.
3. Модель OpenAI: “OpenAI Chat Model”
- Здесь используется модель OpenAI (по умолчанию GPT-4), которая анализирует запросы пользователя и формирует ответы.
- Модель также управляет вызовом инструментов (например, HTTP_Request_Tool).
Настройки:
- Можно заменить GPT-4 на более дешевую модель (например, gpt-4o-mini).
- Поддерживаются другие провайдеры LLM (Language Learning Models), но важно, чтобы они поддерживали tool-calling (вызов инструментов).
4. HTTP-Запрос: “HTTP Request”
- Этот узел выполняет HTTP-запрос к указанной странице.
- Для работы требуется URL:
- Например,
https://example.com
.
Настройки:
- Метод: GET.
- Параметры:
url
: URL страницы.method
: Метод обработки (full
илиsimplified
).
5. Обработка HTML: “Exctract HTML Body”
- Этот узел извлекает содержимое тега
<body>
из HTML-страницы. - Удаляет ненужные теги:
<script>
,<style>
,<noscript>
,<iframe>
,<object>
,<embed>
,<video>
,<audio>
,<svg>
.- Заменяет ссылки и изображения на заполнители (например,
NOURL
,NOIMG
).
6. Преобразование в Markdown: “Convert to Markdown”
- Этот узел преобразует HTML в Markdown для уменьшения объема данных.
- Преобразование сохраняет структуру страницы, но удаляет лишние теги и стили.
7. Ограничение длины контента: “Send Page Content”
- Этот узел проверяет длину содержимого:
- Если контент слишком длинный (> 70,000 символов), отправляется сообщение об ошибке:
"ERROR: PAGE CONTENT TOO LONG"
. - Иначе отправляется обработанный контент.
8. Sticky Notes (Заметки)
В шаблоне используются заметки для объяснения функционала каждого узла:
- “Convert the query string into JSON”: Объясняет, как преобразуется строка запроса.
- “Post-processing of the HTML page”: Описывает этапы обработки HTML.
- “Example ReAct AI Agent”: Рассказывает о работе агента и инструментов.
Какие задачи решает этот шаблон?
Автоматизация сканирования веб-страниц:
- Пользователи могут отправлять URL, и агент вернет обработанный контент.
Упрощение контента:
- Удаление ненужных тегов и замена ссылок/изображений на заполнители.
Преобразование в Markdown:
- Уменьшение объема данных для удобства анализа.
Обработка ошибок:
- Отправка сообщений об ошибках, если URL недействителен или контент слишком большой.
Как расширить функциональность?
Добавить больше инструментов:
- Например, добавить возможность извлекать метаданные (title, description) со страницы.
Интеграция с другими API:
- Можно добавить инструменты для работы с Gmail, Slack или другими сервисами.
Хранение истории запросов:
- Использовать базу данных для сохранения результатов.
Мультиязычная поддержка:
- Настроить агента на работу с разными языками.
Пример использования
- Пользователь: “Сканируй страницу https://example.com”.
- Агент: Выполняет HTTP-запрос и обрабатывает HTML.
- Агент: Преобразует HTML в Markdown и отправляет результат:
# Example Domain
This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.