Этот шаблон n8n представляет собой интеллектуального Telegram-бота, который использует возможности LangChain и OpenAI для обработки запросов пользователей. Бот может выполнять различные задачи, включая генерацию изображений с помощью DALL-E-3 и отправку их через Telegram. Давайте разберем его пошагово.
Основная функциональность
Шаблон позволяет:
- Получать сообщения от пользователей через Telegram.
- Анализировать запросы с помощью OpenAI (например, GPT-4o).
- Генерировать изображения с использованием DALL-E-3.
- Отправлять ответы пользователям через Telegram, включая текстовые сообщения и изображения.
- Поддерживать диалог благодаря оконному буферу памяти.
Пошаговое описание работы
1. Триггер: “Listen for incoming events”
- Это точка входа в рабочий процесс.
- Шаблон активируется, когда пользователь отправляет сообщение боту через Telegram.
- Сообщение передается в следующий узел для анализа.
Примечания:
- Поддерживается обработка всех типов обновлений Telegram (
"*"
). - Используется API Telegram для получения данных о сообщении (текст, ID чата и т.д.).
2. AI Agent: “AI Agent”
- Этот узел является основным ядром шаблона.
- Он использует системное сообщение (system prompt) для определения поведения агента:
- Агент знает имя пользователя (
{{ $json.message.from.first_name }}
). - Он может:
- Анализировать текстовые запросы.
- Генерировать изображения по запросу.
- Отправлять финальные ответы через Telegram.
Примеры запросов:
- Текстовый запрос:
- Пользователь: “Привет!”
- Агент: “Привет, [Имя]! Как я могу помочь вам сегодня?”
- Запрос на генерацию изображения:
- Пользователь: “Нарисуй кота, летящего на ракете.”
- Агент: Генерирует изображение с помощью DALL-E-3 и отправляет его пользователю.
Особенности:
- Агент работает с двумя основными инструментами:
- Генерация изображений (DALL-E-3).
- Отправка сообщений через Telegram.
- Если запрос пользователя неясен, агент предлагает помощь:
- “Привет, [Имя]! Я могу помочь вам создать изображение или ответить на ваши вопросы. Что бы вы хотели сделать?”
3. Модель OpenAI: “OpenAI Chat Model”
- Здесь используется модель OpenAI (по умолчанию GPT-4o), которая анализирует запросы пользователя и формирует ответы.
- Модель также управляет вызовом инструментов (например, генерации изображений).
Настройки:
- Можно заменить GPT-4o на более дешевую модель (например, gpt-4o-mini).
- Поддерживаются другие провайдеры LLM (Language Learning Models), но важно, чтобы они поддерживали tool-calling (вызов инструментов).
4. Память: “Window Buffer Memory”
- Этот узел управляет контекстом диалога.
- По умолчанию сохраняется последние 10 сообщений (размер окна памяти).
- Это помогает агенту понимать контекст разговора и поддерживать последовательность.
Примечания:
- Память временная. Если нужно сохранить историю разговоров, можно использовать базу данных (например, Postgres через Supabase).
5. Генерация изображений: “Generate image in Dalle”
- Этот инструмент использует API DALL-E-3 для генерации изображений.
- Для работы требуется текстовый запрос (prompt):
- Например, “Нарисуй кота, летящего на ракете.”
Настройки:
- URL API:
https://api.openai.com/v1/images/generations
. - Метод: POST.
- Параметры:
model
: dall-e-3.prompt
: Текстовый запрос.
6. Отправка изображений: “Send back an image”
- Этот узел отправляет сгенерированное изображение пользователю через Telegram.
- Используется операция
sendDocument
.
Примечания:
- Убедитесь, что URL изображения корректный и доступен.
7. Финальный ответ: “Send final reply”
- Этот узел отправляет финальный ответ пользователю через Telegram.
- Может включать:
- Текстовое сообщение.
- Ссылку на изображение.
Какие задачи решает этот шаблон?
Автоматизация взаимодействия с Telegram-ботом:
- Пользователи могут отправлять текстовые запросы и получать ответы.
Генерация изображений:
- Используется DALL-E-3 для создания изображений по запросу.
Улучшение пользовательского опыта:
- Агент уточняет детали, если запрос неясен.
- Диалог поддерживается естественным образом.
Интеграция с OpenAI:
- Используется мощная модель для анализа запросов и выполнения действий.
Как расширить функциональность?
Добавить больше инструментов:
- Например, добавить возможность отправлять аудио или видео.
Интеграция с другими API:
- Можно добавить инструменты для работы с Gmail, Slack или другими сервисами.
Хранение истории диалогов:
- Использовать базу данных для сохранения разговоров.
Мультиязычная поддержка:
- Настроить агента на работу с разными языками.
Пример использования
- Пользователь: “Нарисуй космический корабль.”
- Агент: “Генерирую изображение космического корабля…”
- Агент: Отправляет изображение через Telegram.