Конспект 2: LLM модели и параметры в N8N

Pavel 09.12.2025 11:45 16 просмотров

Оглавление

  1. Введение в LLM
  2. Основные LLM модели
  3. Архитектура LLM
  4. Основные параметры LLM
  5. Temperature (Температура)
  6. Top-P и Top-K семплирование
  7. Max Tokens (Максимум токенов)
  8. Frequency Penalty и Presence Penalty
  9. System Prompt и Context
  10. LLM интеграции в N8N
  11. Подключение OpenAI к N8N
  12. Практические примеры использования
  13. Оптимизация параметров
  14. Дебаг и лучшие практики

Введение в LLM

Что такое Large Language Model (LLM)?

Определение: Большие языковые модели — это нейросетевые модели, обученные на огромных объемах текстовых данных (сотни миллиардов токенов), способные понимать и генерировать текст.

Основной принцип работы:

Входной текст (промпт)
    ↓
Токенизация
    ↓
Трансформация в векторное представление
    ↓
Прохождение через слои нейросети
    ↓
Предсказание следующего токена
    ↓
Повторение до достижения условия стопа
    ↓
Декодирование → Выходной текст

История развития LLM

Модель Год Размер Контекст Особенности
GPT-3 2020 175B 2,048 Первая массовая LLM
GPT-3.5 2022 175B+ 4,096 Основа ChatGPT
GPT-4 2023 ~1.7T 128,000 Лучшая точность
Claude 3 2024 400B+ 200,000 Долгий контекст
LLaMA 3 2024 8B-70B 64,000 Open-source
DeepSeek 2024 236B 32,000-128,000 Эффективность
Gemini 2.0 2025 ~10T 1,000,000 Экспериментально

Основные LLM модели

OpenAI GPT Models

GPT-4

  • Размер контекста: 128,000 токенов
  • Стоимость: Самая дорогая (~$0.03-0.06 за 1K токенов)
  • Качество: Лучшее на рынке
  • Скорость: Медленнее чем 3.5-turbo
  • Применение: Сложные задачи, точность важна

Варианты: - gpt-4-turbo — 128K контекст, быстрее - gpt-4-vision — обработка изображений - gpt-4o (omni) — мультимодальная, быстрая, дешевле

GPT-3.5-Turbo

  • Размер контекста: 4,096-16,384 токенов
  • Стоимость: Дешевая (~$0.0005-0.002 за 1K токенов)
  • Качество: Хорошее
  • Скорость: Очень быстрая
  • Применение: Простые задачи, большие объемы

GPT-4o mini

  • Размер контекста: 128,000 токенов
  • Стоимость: Экономичная (~$0.00015 за 1K токенов)
  • Качество: Хорошее
  • Скорость: Быстрая
  • Применение: Оптимальное соотношение цена-качество

GPT-4 Turbo with Vision

  • Возможности: Анализ изображений, диаграмм, скриншотов
  • Стоимость: Выше чем текстовая версия
  • Применение: Обработка визуального контента

Anthropic Claude

Claude 3 Series

Claude 3 Opus (самый мощный) - Размер контекста: 200,000 токенов - Стоимость: ~$0.015-0.075 за 1K токенов - Качество: Отличное - Специальность: Анализ, рассуждения

Claude 3 Sonnet (баланс) - Размер контекста: 200,000 токенов - Стоимость: ~$0.003-0.015 за 1K токенов - Качество: Хорошее - Скорость: Быстрая

Claude 3 Haiku (быстрая) - Размер контекста: 200,000 токенов - Стоимость: ~$0.00025-0.00125 за 1K токенов - Качество: Приличное - Скорость: Очень быстрая

Особенности Claude: - Длинный контекст (200K) - Хорошо работает с инструкциями - Конституционный AI (менее галлюцинации) - Может работать с документами

Meta LLaMA

LLaMA 3

  • Размеры: 8B, 70B параметров
  • Контекст: 8,000-128,000 токенов
  • Тип: Open-source (можно использовать локально)
  • Стоимость: Бесплатная (если локально) или дешевая через API
  • Применение: Разработка, локальное развертывание

Подмодели: - Meta-Llama-3-8B — легковесная - Meta-Llama-3-70B — мощная - Meta-Llama-3.1-405B — очень мощная (экспериментально)

DeepSeek

DeepSeek-V3

  • Размер контекста: 32,000-128,000 токенов
  • Стоимость: Низкая (~$0.27 за 1M входных токенов)
  • Качество: Сравнима с GPT-4 в тестах
  • Особенность: Очень эффективная (MoE архитектура)
  • Применение: Cost-effective решение

DeepSeek-R1

  • Размер контекста: 32,000-128,000 токенов
  • Стоимость: Низкая
  • Особенность: Глубокое рассуждение (reasoning)
  • Применение: Сложные логические задачи, код

Особенность DeepSeek: Mixture of Experts (MoE) — активируется только часть сети для каждого запроса, экономя ресурсы

Google Gemini

Gemini 2.0

  • Размер контекста: 1,000,000 токенов (экспериментально)
  • Стоимость: Конкурентная
  • Мультимодальность: Текст, изображения, видео, аудио
  • Применение: Сложные мультимодальные задачи

Альтернативные модели

Модель Разработчик Контекст Стоимость Применение
Mistral Large Mistral AI 32K Низкая Общее назначение
Mixtral 8x7B Mistral AI 32K Низкая Open-source
Yi-Large 01.AI 200K Низкая Долгий контекст
Command-R+ Cohere 128K Средняя Поиск и RAG
Llama 2 Meta 4K Free Open-source

Архитектура LLM

Трансформеры (Transformer Architecture)

Основные компоненты:

┌─────────────────────────────────────┐
       Input: Text Prompt            
└──────────────┬──────────────────────┘
               
┌─────────────────────────────────────┐
       Tokenization                  
  "N8N"  [15234, 1234]              
└──────────────┬──────────────────────┘
               
┌─────────────────────────────────────┐
       Embedding Layer               
  Преобразование в векторы           
└──────────────┬──────────────────────┘
               
┌─────────────────────────────────────┐
   Attention Layers (×96 для GPT-4)  
  Каждый слой:                       
  - Query-Key-Value attention        
  - Multi-head attention             
  - Feed-forward network             
└──────────────┬──────────────────────┘
               
┌─────────────────────────────────────┐
    Output Layer                     
  Вероятности для каждого токена     
└──────────────┬──────────────────────┘
               
┌─────────────────────────────────────┐
    Sampling (согласно параметрам)   
  Выбор следующего токена            
└──────────────┬──────────────────────┘
               
┌─────────────────────────────────────┐
    Output Token                     
  Повторение пока не будет [END]     
└─────────────────────────────────────┘

Attention Mechanism (Механизм внимания)

Принцип работы: - Модель смотрит на все предыдущие токены - Определяет какие токены наиболее важны для следующего токена - Присваивает веса (attention weights) каждому токену

Пример:

Текст: "Банк находится рядом с рекой"

При генерации слова "деньги" модель обратит внимание:
- На слово "банк" (высокий вес = финансовое учреждение)
- Меньше на "река"

Tokenization (Токенизация)

Процесс разбиения текста на токены:

Текст: "N8N помогает автоматизировать процессы"

GPT (BPE токенизация):
["N", "8", "N", " помогает ", "автоматиз", "ировать", " процессы"]

Числовое представление:
[77, 23, 77, 1234, 5678, 9012, 3456]

Важно: - Разные модели используют разные токенизаторы - 1 токен ≈ 4 символа на английском - 1 токен ≈ 1-2 символа на русском - Пунктуация = отдельные токены

Context Window (Контекстное окно)

Определение: Максимальное количество токенов, которые модель может обработать одновременно.

Ограничения:

Контекст = история (система + история сообщений) + новый промпт

Если контекст переполнен:
- Ошибка 400 Bad Request (некоторые модели)
- Обрезка старых сообщений (система делает автоматически)
- Снижение качества (если было слишком сжимать)

Пример расчета:

Модель: GPT-4 (128K контекст)

Общее использование:
- System prompt: 500 токенов
- История (10 сообщений): 3000 токенов
- Новый запрос: 200 токенов
- Max response: оставить 5000 на ответ

Итого: 500 + 3000 + 200 + 5000 = 8700 токенов (в норме)

Основные параметры LLM

Полный список параметров

Параметр Тип Диапазон Значение по умолчанию Использование
temperature float 0.0 - 2.0 1.0 Креативность/детерминированность
top_p float 0.0 - 1.0 1.0 Nucleus sampling
top_k integer 1 - ∞ 0 K-sampling
max_tokens integer 1 - context Auto Длина ответа
frequency_penalty float -2.0 - 2.0 0.0 Штраф за повторения
presence_penalty float -2.0 - 2.0 0.0 Штраф за повторяемые темы
seed integer 0 - 2^31 null Reproducibility
best_of integer 1 - 20 1 Попыток генерации
stop string[] - ["\n\n"] Сигнал стопа
n integer 1 - 128 1 Количество ответов

Temperature (Температура)

Что такое Temperature?

Определение: Параметр, который контролирует случайность выбора следующего токена. Влияет на баланс между логичностью и креативностью.

Как работает:

Логиты (сырые оценки из модели):
- "деньги": 10.0
- "банк": 8.5
- "ривер": 3.2

Temperature = 1.0 (нормально):
Вероятности: [0.73, 0.20, 0.07]

Temperature = 0.0 (детерминированно):
Вероятности: [1.0, 0.0, 0.0] → выбираем "деньги"

Temperature = 2.0 (творчески):
Вероятности: [0.55, 0.30, 0.15] → может выбрать "ривер"!

Значения Temperature

Temperature = 0.0

Поведение: Всегда выбирает самый вероятный токен (детерминированно)

Применение: - ✅ Классификация - ✅ Извлечение фактов - ✅ Анализ тональности - ✅ Когда нужна точность - ✅ Один запрос — один ответ

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

Входной запрос: "Какая столица России?"
Ответ 1: "Москва"
Ответ 2 (тот же запрос): "Москва" (идентичный)

Temperature = 0.3 - 0.7 (Сбалансированно)

Поведение: Выбирает вероятные токены с легкой случайностью

Применение: - ✅ Генерация текста - ✅ Переписывание - ✅ Дружеский тон - ✅ Умеренная креативность

Пример:

Входной запрос: "Напиши мне рассказ про N8N"

Ответ 1: "N8N - это платформа для автоматизации..."
Ответ 2: "N8N представляет собой мощный инструмент..."
Ответ 3: "Давайте поговорим о N8N - платформе..."

Temperature = 1.0 (Стандартно)

Поведение: Стандартное распределение вероятностей

Применение: - ✅ Общее назначение - ✅ Когда не уверены

Temperature = 1.5 - 2.0 (Творчески)

Поведение: Часто выбирает менее вероятные токены

Применение: - ✅ Стихи, творчество - ✅ Генерация идей - ✅ Когда нужно разнообразие - ✅ Браinstorming

Пример:

Входной запрос: "Придумай новый вид транспорта"

Ответ 1: "Летающий автомобиль на антигравитации"
Ответ 2: "Подземный магле-поезд со спортивным дизайном"
Ответ 3: "Индивидуальная капсула, путешествующая через портали"

Предупреждение: - ⚠️ Высокая temperature → больше галлюцинаций - ⚠️ Может генерировать бессмыслицу - ⚠️ Не рекомендуется использовать для фактических ответов

Temperature в N8N

Где задавать:

OpenAI Node → Parameters → Temperature

Типичные значения:

- Классификация/Извлечение: 0.0
- Чат: 0.7
- Генерация: 1.0
- Творчество: 1.5

Top-P и Top-K семплирование

Top-P (Nucleus Sampling)

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

Как работает:

Токены отсортированы по вероятности:
- "деньги": 0.50 (кумулятивно: 0.50)
- "банк": 0.30 (кумулятивно: 0.80) ← top_p=0.8
- "ривер": 0.15 (кумулятивно: 0.95)
- "ручей": 0.05 (кумулятивно: 1.00)

Если top_p=0.8:
Выбираем из: ["деньги", "банк"]
Исключаем: ["ривер", "ручей"]

Параметры:

Значение Поведение Применение
0.0 Очень консервативно (ошибка - обычно) -
0.5 Выбирает из половины вероятностей Точность
0.7 Рекомендуемое значение Баланс
0.9 Более разнообразно Генерация
1.0 Все токены доступны Максимальное разнообразие

Top-K (K-Sampling)

Определение: Параметр, который ограничивает выбор только K наиболее вероятных токенов, остальные исключаются.

Как работает:

Токены отсортированы по вероятности:
- "деньги": 0.50 ← выбираем
- "банк": 0.30 ← выбираем (top_k=2)
- "ривер": 0.15 ← исключаем
- "ручей": 0.05 ← исключаем

Если top_k=2:
Выбираем только из: ["деньги", "банк"]

Параметры:

Значение Поведение
1 Очень консервативно (= temperature 0)
10 Баланс
50 Творчески
0 Отключено (используется вся палитра)

Top-P vs Top-K

Сравнение:

Параметр Преимущества Недостатки
Top-P Адаптируется к контексту Сложнее для понимания
Top-K Простой, понятный Не адаптируется к контексту

Рекомендация: Использовать Top-P, он более гибкий

Правило: Измените только Top-P ИЛИ temperature, но не оба сразу!

Top-P + Temperature

Комбинирование:

# Для точности
temperature: 0.0
top_p: 1.0 (не влияет при temp=0)

# Для баланса
temperature: 0.7
top_p: 0.9

# Для творчества
temperature: 1.5
top_p: 0.95

Max Tokens (Максимум токенов)

Определение

Max Tokens: Максимальное количество токенов, которое модель может сгенерировать в ответе.

Как работает

Исходный контекст: 500 токенов
max_tokens: 2000

Лимит для ответа: 2000 токенов

Если модель закончила раньше (встретила [END]):
- Вернется 300 токенов (например)

Если модель не закончила к 2000:
- Обрезается на 2000 токенов (может быть неполное предложение)

Значения Max Tokens

max_tokens = null или не установлен

Поведение: Модель использует весь оставшийся контекст

Используется: Когда нужна полная автономия

max_tokens = 100-500

Поведение: Короткие ответы

Применение: - Классификация - Да/нет вопросы - Извлечение сущностей

max_tokens = 1000-2000

Поведение: Средние ответы

Применение: - Стандартные запросы - Объяснения - Аналитика

max_tokens = 4000+

Поведение: Длинные ответы

Применение: - Написание статей - Генерация кода - Комплексный анализ

Расчет cost (стоимости)

OpenAI:

Стоимость = (input_tokens * price_in) + (output_tokens * price_out)

Пример GPT-4:
- Входящие: $0.03 за 1K токенов
- Исходящие: $0.06 за 1K токенов

Запрос: 1000 входящих, 500 исходящих токенов
Стоимость = (1000 * 0.03 / 1000) + (500 * 0.06 / 1000)
           = 0.03 + 0.03 = $0.06

Экономия токенов: - Установить разумный max_tokens - Использовать GPT-3.5-turbo вместо GPT-4 где возможно - Кэшировать повторяющиеся запросы - Сжимать историю сообщений

Max Tokens в N8N

OpenAI Node → Parameters → Max Tokens

Примеры для N8N workflows:
- Чат-бот: 500-1000
- Анализ текста: 200-500
- Генерация: 2000-4000
- Код: 4000-8000

Frequency Penalty и Presence Penalty

Frequency Penalty (Штраф за частоту)

Определение: Штраф за использование токенов, которые уже появились в тексте.

Как работает:

Исходный текст: "N8N помогает N8N помогает"

Если frequency_penalty = 0.0:
Модель может продолжить: "N8N помогает N8N помогает N8N..."
(повторения разрешены)

Если frequency_penalty = 2.0:
Модель попытается: "N8N помогает автоматизировать процессы"
(повторения штрафуются сильно)

Значения:

Значение Эффект
0.0 Нет штрафа (может повторяться)
0.5 - 1.0 Умеренный штраф
1.5 - 2.0 Сильный штраф

Presence Penalty (Штраф за присутствие)

Определение: Штраф за использование токенов, которые уже есть в тексте, независимо от частоты.

Как работает:

Исходный текст: "N8N помогает автоматизировать"

Если presence_penalty = 0.0:
Модель может повторить любое слово свободно

Если presence_penalty = 2.0:
Модель активно избегает повторений любых слов,
даже если они появились один раз

Frequency vs Presence

Различие:

Текст: "кот кот кот"

Frequency Penalty:
- Первое "кот": штраф 0
- Второе "кот": штраф 1 × 2.0 = 2.0
- Третье "кот": штраф 2 × 2.0 = 4.0

Presence Penalty:
- Первое "кот": штраф 0
- Второе "кот": штраф 1 × 2.0 = 2.0
- Третье "кот": штраф 1 × 2.0 = 2.0 (одинаковый штраф)

Когда использовать

Frequency Penalty: - Списки разных предметов - Когда хотим избежать повторяющейся структуры

Presence Penalty: - Генерация разных идей - Brainstorming - Когда нужна максимальная вариативность

Рекомендация: Изменяйте только один из параметров!

Значения в N8N

OpenAI Node → Parameters

Типичные значения:
- Для точности: оба = 0.0
- Для разнообразия: frequency = 1.0, presence = 0.0
- Для максимума вариативности: frequency = 2.0, presence = 1.0

System Prompt и Context

System Prompt (Системный промпт)

Определение: Инструкция, которая определяет поведение модели для всего разговора.

Структура:

{
  "messages": [
    {
      "role": "system",
      "content": "Ты опытный Python разработчик. Отвечай кратко, приводи примеры кода."
    },
    {
      "role": "user",
      "content": "Как использовать N8N с OpenAI?"
    }
  ]
}

Эффект System Prompt

Пример 1: Без system prompt

Вопрос: "Что такое N8N?"

Ответ:
N8N (n8n) — это платформа для автоматизации рабочих процессов...
[обычный формат]

Пример 2: С system prompt (помощник)

System: "Ты веселый помощник"
Вопрос: "Что такое N8N?"

Ответ:
N8N? О, это просто супер! 🚀 Представляешь, платформа для автоматизации...
[веселый тон]

Пример 3: С system prompt (эксперт)

System: "Ты эксперт по архитектуре ПО"
Вопрос: "Что такое N8N?"

Ответ:
N8N — это low-code платформа, основанная на DAG архитектуре...
[технический тон]

Хорошие practices System Prompt

✅ ХОРОШО:
"Ты опытный Python разработчик. 
Объясняй сложные концепции простыми словами. 
Всегда приводи примеры кода.
Если не знаешь, говори честно."

❌ПЛОХО:
"Будь умным"

System Prompt в N8N

OpenAI Node → Messages → System Message

{
  "system": "Ты помощник по N8N. Отвечай кратко и точно."
}

Role-Based Prompting

Техника назначения ролей:

System: "Ты СЕО компании N8N. 
Твоя задача — привлечь инвесторов.
Используй убеждающий тон и приводи метрики."

User: "Расскажи о нашем продукте"

Context Management (Управление контекстом)

Сохранение истории:

Сообщение 1:
System: "Помни, что пользователя зовут Иван"
User: "Привет, как дела?"
Assistant: "Привет, Иван!"

Сообщение 2:
User: "Как меня зовут?"
Assistant: "Тебя зовут Иван!" (помнит из истории)

Очистка контекста:

Если контекст слишком большой:
- Суммировать историю
- Сохранить только релевантные сообщения
- Создать новую сессию

LLM интеграции в N8N

Встроенные LLM узлы

Доступные узлы в N8N:

Узел Поддерживаемые модели Тип
OpenAI GPT-4, GPT-3.5, DALL-E Встроен
Anthropic Claude Claude 3 series Встроен
Hugging Face 100+ моделей Встроен
Azure OpenAI GPT-4, GPT-3.5 (в Azure) Встроен
Ollama LLaMA, Mistral, Phi и т.д. HTTP
LM Studio Локальные модели HTTP
Replicate 50000+ моделей Встроен
Cohere Command-R и др. Встроен
Groq Быстрые open-source модели HTTP

OpenAI Integration (Основной)

Типы узлов OpenAI: 1. Chat Completion — текстовый чат 2. Text-to-Speech — преобразование текста в речь 3. Speech-to-Text — транскрипция аудио 4. Image Generation — DALL-E

Параметры Chat Completion:

- Model: gpt-4, gpt-3.5-turbo, gpt-4o
- Messages: система промпта + история
- Temperature: 0.0 - 2.0
- Top P: 0.0 - 1.0
- Max Tokens: количество
- Stop: критерий завершения
- Frequency Penalty: -2.0 - 2.0
- Presence Penalty: -2.0 - 2.0

Claude Integration

Особенности: - Длинный контекст (200K) - Хорошее понимание инструкций - Меньше галлюцинаций

Узел Claude в N8N:

- Model: claude-3-opus, claude-3-sonnet, claude-3-haiku
- System: системный промпт
- Messages: история
- Max Tokens: обычно 2000-4000
- Temperature: 0.0 - 1.0

Hugging Face Integration

Возможности: - Доступ к 100000+ моделей - Inference API - Собственные модели

Параметры:

- Model: любая модель с huggingface.co
- Inputs: текст или структурированные данные
- Parameters: зависит от модели

Azure OpenAI

Отличия от OpenAI: - Находится в Azure облаке - Точка входа: Azure endpoint - Аутентификация: API key + deployment name

Настройка в N8N:

- Azure Endpoint: https://your-resource.openai.azure.com/
- Deployment Name: ваше развертывание
- API Key: ключ Azure

Локальные модели через HTTP

Ollama (локально):

Запуск: ollama run llama2
Endpoint: http://localhost:11434

N8N:
HTTP Request  POST http://localhost:11434/api/generate

LM Studio:

Запуск: LM Studio app
Endpoint: http://localhost:1234/v1

N8N:
HTTP Request  совместимо с OpenAI API

Подключение OpenAI к N8N

Шаг 1: Получение API Key

  1. Перейти на https://platform.openai.com
  2. Войти или зарегистрироваться
  3. Меню → API Keys
  4. Create New Secret Key
  5. Скопировать и сохранить в безопасном месте

Шаг 2: Создание Credential в N8N

  1. N8N → Credentials (в левом меню)
  2. Create New
  3. Выбрать "OpenAI API"
  4. Вставить API Key
  5. Save

Шаг 3: Добавление узла OpenAI

  1. Create New Workflow
  2. Добавить триггер (например, Webhook)
  3. Добавить узел OpenAI
  4. Выбрать credential (только что создали)
  5. Выбрать операцию:
  6. Chat Completion
  7. Image Generation
  8. Embeddings

Пример: Chat Completion

Параметры узла:

{
  "authentication": "openAI",
  "resource": "chat",
  "operation": "message",
  "messages": [
    {
      "role": "system",
      "content": "Ты помощник по N8N"
    },
    {
      "role": "user",
      "content": "Объясни что такое N8N"
    }
  ],
  "model": "gpt-4-turbo",
  "temperature": 0.7,
  "maxTokens": 2000
}

Пример: Image Generation

{
  "resource": "image",
  "operation": "generate",
  "prompt": "N8N платформа автоматизации, цифровое искусство",
  "number": 1,
  "size": "1024x1024",
  "responseFormat": "url"
}

Обработка ошибок

Ошибка: 401 Unauthorized

Причина: неправильный API Key
Решение: проверить и переввести ключ

Ошибка: 400 Bad Request

Причина: неверные параметры или размер контекста
Решение: проверить параметры, уменьшить max_tokens

Ошибка: 429 Rate Limited

Причина: слишком много запросов
Решение: добавить задержку между запросами, или upgrade план

Ошибка: 503 Service Unavailable

Причина: сервер OpenAI недоступен
Решение: повторить попытку через некоторое время

Практические примеры использования

Пример 1: Анализ тональности

Цель: Определить, позитивный ли отзыв о N8N

Конфигурация:

{
  "model": "gpt-3.5-turbo",
  "temperature": 0.0,
  "maxTokens": 100,
  "messages": [
    {
      "role": "system",
      "content": "Проанализируй тональность следующего текста. Ответь только: POSITIVE, NEGATIVE или NEUTRAL"
    },
    {
      "role": "user",
      "content": "N8N отличная платформа для автоматизации!"
    }
  ]
}

Почему эти параметры: - ✅ temperature: 0.0 — нужна точность, не креативность - ✅ max_tokens: 100 — ответ будет короткий - ✅ model: 3.5-turbo — дешево, достаточно для классификации

Пример 2: Генерация идей (Brainstorming)

Цель: Придумать 5 идей использования N8N

Конфигурация:

{
  "model": "gpt-4",
  "temperature": 1.8,
  "maxTokens": 2000,
  "topP": 0.95,
  "messages": [
    {
      "role": "system",
      "content": "Ты креативный дизайнер. Предложи нестандартные идеи."
    },
    {
      "role": "user",
      "content": "Придумай 5 необычных способов использовать N8N в бизнесе"
    }
  ]
}

Почему эти параметры: - ✅ temperature: 1.8 — максимум креативности - ✅ topP: 0.95 — выбор из более широкого спектра - ✅ max_tokens: 2000 — нужно место для развернутого ответа

Пример 3: Обработка документов (RAG)

Цель: Ответить на вопрос по содержимому документа

N8N Workflow:

[Webhook с document_id]
    
[Read file с диска]
    
[OpenAI - Chat (с контекстом документа)]
    
[HTTP Response]

OpenAI параметры:

{
  "model": "gpt-4-turbo",
  "temperature": 0.3,
  "maxTokens": 1000,
  "messages": [
    {
      "role": "system",
      "content": "Ты помощник. Ответь на вопрос основываясь ТОЛЬКО на предоставленном документе. Если ответ не найден, скажи 'не найдено'"
    },
    {
      "role": "user",
      "content": "Документ:\n${document_content}\n\nВопрос: ${user_question}"
    }
  ]
}

Пример 4: Многошаговый агент

Цель: Сложный workflow с несколькими вызовами LLM

Структура:

[Input]
    
[LLM 1: Анализ (temperature: 0.2)]
    
[Условие: Нужны ли дополнительные данные?]
    ↓ (да)
[LLM 2: Генерация уточняющего вопроса (temperature: 0.8)]
    
[LLM 3: Синтез результата (temperature: 0.3)]
    
[Output]

Пример 5: Обработка множества документов

Цель: Обработать 1000 документов через OpenAI

Оптимизация:

// Батчинг для экономии стоимости
const documents = [...]; // 1000 документов

for (let batch of getBatches(documents, 10)) {
  // Обрабатываем по 10 одновременно
  // Добавляем задержку 1 сек между батчами (не превышаем лимит)
  await sleep(1000);

  // Используем GPT-3.5-turbo (дешевле, чем GPT-4)
  // temperature: 0.0 (консистентность)
  // max_tokens: 500 (экономия)
}

Оптимизация параметров

Выбор модели

Таблица решений:

Задача Модель Причина
Классификация GPT-3.5-turbo Дешево, достаточно быстро
Анализ текста GPT-4 Лучше понимает контекст
Генерация кода GPT-4-turbo Быстрее, все еще точнее
Embeddings text-embedding-3-small Специализирована, быстро
Image Gen DALL-E 3 Лучше качество
Локально LLaMA 3 70B Мощная, бесплатно
RAG Claude 3 Sonnet 200K контекст
Budget DeepSeek-V3 $0.27 за 1M токенов

Оптимизация параметров

Шаг 1: Определить требования

□ Нужна точность → temperature: 0.0-0.3
□ Нужна креативность → temperature: 1.5+
□ Нужен короткий ответ → max_tokens: 100-500
□ Нужен длинный ответ → max_tokens: 2000+

Шаг 2: Выбрать моторту для эконмии

Низкая стоимость:
- GPT-3.5-turbo (простые задачи)
- DeepSeek (любые задачи)
- LLaMA локально (любые задачи)

Когда нужна мощность:
- GPT-4 (точность)
- Claude (контекст)

Шаг 3: Батчинг и кэширование

// Кэширование результатов
const cache = {};

function queryLLM(prompt) {
  if (cache[prompt]) return cache[prompt];

  const result = await openai.chat.create({...});
  cache[prompt] = result;
  return result;
}

// Батчинг запросов
async function processBatch(items) {
  const promises = items.map(item => queryLLM(item));
  return Promise.all(promises);
}

Мониторинг стоимости

В N8N:

// Добавить в каждый OpenAI узел
const tokens = {
  inputTokens: $input.json.usage.prompt_tokens,
  outputTokens: $input.json.usage.completion_tokens,
  totalTokens: $input.json.usage.total_tokens
};

// Логировать стоимость
console.log(`Запрос стоил: $${calculateCost(tokens)}`);

Дебаг и лучшие практики

Проблемы и решения

Проблема: Модель возвращает одинаковые ответы

Решение:
- Если нужны разные ответы → увеличить temperature
- Если нужен один хороший ответ → это нормально (keep temperature: 0.0)
- Добавить top_p: 0.9

Проблема: Модель генерирует галлюцинации

Решение:
- Понизить temperature
- Убрать или понизить frequency_penalty
- Сделать system prompt более конкретным
- Добавить примеры (few-shot learning)

Проблема: Слишком дорого

Решение:
- Использовать GPT-3.5-turbo вместо GPT-4
- Уменьшить max_tokens
- Батчинг вместо одиночных запросов
- Кэширование результатов
- Использовать локальные модели (LLaMA)

Проблема: Медленно

Решение:
- Использовать более быструю модель (4-turbo, 3.5-turbo)
- Параллельные запросы
- Уменьшить max_tokens
- Использовать локальные модели

Лучшие практики

1. Структурируйте System Prompt

✅ ХОРОШО:
"Ты эксперт по N8N.
Правила:
1. Отвечай кратко (макс 500 слов)
2. Приводи примеры кода
3. Если не уверен, скажи честно
4. Используй русский язык"

❌ ПЛОХО:
"Помоги мне"

2. Используйте few-shot examples

"Вот примеры правильных ответов:

Q: Что такое N8N?
A: N8N - это платформа для автоматизации

Q: Как подключить OpenAI?
A: 1. Получить API key, 2. Создать credential...

Теперь твой вопрос:
Q: ..."

3. Проверяйте качество

// Добавить валидацию
if (response.length < 10) {
  // Ответ слишком короткий
  console.warn("Invalid response");
}

4. Логируйте все запросы

// Сохранять для анализа
const log = {
  timestamp: new Date(),
  model: "gpt-4",
  prompt: userInput,
  response: modelOutput,
  tokens: usage,
  cost: calculateCost(usage)
};

database.logs.insert(log);

5. Используйте правильные temperature значения

Temperature Map:
0.0  → точность, факты
0.3  → аналитика, классификация
0.7  → обычный чат
1.0  → нейтральный
1.5  → творчество
2.0  → максимум разнообразия

6. Обработка ошибок

try {
  const response = await openai.chat.create({...});
  return response;
} catch (error) {
  if (error.status === 429) {
    // Rate limit - подождать и повторить
    await sleep(5000);
    return retryRequest();
  } else if (error.status === 400) {
    // Bad request - логировать и сообщить
    console.error("Invalid parameters:", error.message);
  } else {
    // Другая ошибка - лог и fallback
    console.error("Unexpected error:", error);
    return getFallbackResponse();
  }
}

Шпаргалка: Быстрые настройки

Для Классификации:

model: gpt-3.5-turbo
temperature: 0.0
max_tokens: 50

Для Чат-бота:

model: gpt-3.5-turbo
temperature: 0.7
max_tokens: 500

Для Анализа:

model: gpt-4
temperature: 0.3
max_tokens: 1000

Для Генерации:

model: gpt-4
temperature: 1.0
max_tokens: 2000
top_p: 0.9

Для RAG (вопросы по документам):

model: gpt-4-turbo или claude-3-sonnet
temperature: 0.3
max_tokens: 1000
system: "Отвечай только на основе документа"

Для Кодирования:

model: gpt-4-turbo
temperature: 0.2
max_tokens: 4000

Заключение

Ключевые моменты

  1. Выбор модели — правильная модель экономит 10х стоимость
  2. Temperature — главный параметр для точности/креативности
  3. Max tokens — контролирует длину и стоимость ответа
  4. System Prompt — определяет поведение модели
  5. Параметры — меньше меняется, лучше результаты

Типичная ошибка

❌ ЧАСТО ДЕЛАЮТ:
- Используют GPT-4 для всего (дорого)
- Ставят temperature: 1.0 везде
- Не валидируют результаты
- Игнорируют стоимость запросов

✅ ПРАВИЛЬНО:
- Используют GPT-3.5 для 80% задач
- Подбирают temperature под задачу
- Добавляют проверки
- Мониторят стоимость

Дальнейшее обучение

  • OpenAI Docs: https://platform.openai.com/docs
  • N8N Docs: https://docs.n8n.io
  • Prompt Engineering Guide: https://www.promptingguide.ai/ru
  • DeepLearning.AI Courses: https://www.deeplearning.ai

Дата создания: November 2025
Версия: 1.0
Язык: Русский
Для кого: Разработчики N8N, автоматизаторы, AI энтузиасты

Комментарии (0)

Для добавления комментария необходимо войти в аккаунт

Войти / Зарегистрироваться