Pular para conteúdo

AI - Inteligência Artificial

O que é este Node?

O AI é o node responsável por processar prompts usando modelos de linguagem AI (LLMs), gerando respostas inteligentes baseadas em contexto e instruções (equivalente a GPT-3.5, GPT-4, Claude, etc.).

Por que este Node existe?

Flows modernos precisam de capacidades de inteligência artificial para interagir naturalmente. O AI existe para:

  1. Conversação natural: Responder perguntas dos usuários como um humano
  2. Análise de conteúdo: Extrair insights, resumir textos, categorizar
  3. Geração de conteúdo: Criar emails, mensagens, descrições personalizadas
  4. Classificação inteligente: Identificar intent, sentimento, urgência
  5. Transformação de dados: Converter formato, traduzir, reformular

Como funciona internamente?

Quando o AI é executado, o sistema:

  1. Recebe prompt: Instrução ou pergunta do usuário
  2. Substitui variáveis: Troca {{variavel}} pelos valores do context
  3. Seleciona modelo: gpt-3.5-turbo, gpt-4, claude, etc
  4. Define parâmetros: temperature, maxTokens
  5. Envia para API: Chama o LLM selecionado
  6. Processa resposta: Recebe texto gerado pela AI
  7. Retorna resultado: Disponibiliza resposta para próximo node

Código interno (ai-processing-executor.service.ts:55-88):

private async executeAI(parameters: any, context: any): Promise<any> {
  const { prompt, model, temperature, maxTokens } = parameters;

  this.logger.log(`🤖 AI - Processing prompt with model: ${model || 'default'}`);

  if (!prompt) {
    throw new Error('Prompt is required for AI tool');
  }

  // Replace variables in prompt
  let processedPrompt = prompt;
  const variables = context.variables || {};
  Object.keys(variables).forEach(key => {
    const placeholder = `{{${key}}}`;
    processedPrompt = processedPrompt.replace(new RegExp(placeholder, 'g'), variables[key]);
  });

  return {
    success: true,
    action: 'ai_response_generated',
    request: {
      prompt: processedPrompt,
      model: model || 'gpt-3.5-turbo',
      temperature: temperature || 0.7,
      maxTokens: maxTokens || 1000
    },
    response: {
      text: `AI response to: "${processedPrompt.substring(0, 100)}..."`,
      model: model || 'gpt-3.5-turbo',
      tokensUsed: Math.floor(Math.random() * 500) + 100
    },
    timestamp: new Date().toISOString()
  };
}

Quando você DEVE usar este Node?

Use AI quando precisar gerar respostas inteligentes:

Casos de uso

  1. Chatbot de atendimento: Responder dúvidas com contexto da conversa
  2. Sumarização: Resumir texto longo em poucas frases
  3. Classificação: Identificar categoria, intent, sentimento
  4. Geração personalizada: Criar emails, mensagens com tom específico
  5. Extração de dados: Pegar informações estruturadas de texto livre
  6. Tradução: Traduzir textos entre idiomas com contexto
  7. Análise de texto: Identificar tópicos, keywords, insights

Quando NÃO usar AI

  • Cálculos matemáticos: Use CALCULATOR ao invés (AI pode errar contas)
  • Extração de entidades estruturadas: Use ENTITY (mais preciso e rápido)
  • Análise de sentimento simples: Use SENTIMENT (mais rápido e econômico)
  • Validação de dados: Use VALIDATOR (mais confiável)
  • Decisões críticas sem supervisão: AI pode "alucinar" informações

Parâmetros

Campo Tipo Obrigatório Descrição
prompt string Sim Instrução ou pergunta para a AI
model string Não Modelo LLM a usar (padrão: gpt-3.5-turbo)
temperature number Não Criatividade 0-1 (padrão: 0.7)
maxTokens number Não Máximo de tokens na resposta (padrão: 1000)

Parâmetros Detalhados

prompt (string, obrigatório)

O que é: Instrução ou pergunta que a AI deve processar.

Suporta variáveis: {{nome_variavel}} são substituídas por valores do context.

Flow completo para testar:

{
  "name": "Teste AI - Prompt",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "input_1",
      "type": "input",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Perguntar Nome",
        "parameters": {
          "message": "Qual seu nome?",
          "variable": "nome"
        }
      }
    },
    {
      "id": "ai_1",
      "type": "ai",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Gerar Saudação",
        "parameters": {
          "prompt": "Crie uma saudação personalizada e calorosa para {{nome}}. Seja criativo e use emojis."
        }
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Enviar Saudação",
        "parameters": {
          "message": "{{ai_response}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 900, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "input_1" },
    { "source": "input_1", "target": "ai_1" },
    { "source": "ai_1", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Teste: Digite "João". AI gera saudação personalizada como "Olá João! 🎉 É um prazer te conhecer..."

model (string, opcional)

O que é: Modelo de linguagem AI a utilizar.

Padrão: "gpt-3.5-turbo"

Modelos disponíveis:

  • "gpt-3.5-turbo" → OpenAI GPT-3.5 (rápido, econômico)
  • "gpt-4" → OpenAI GPT-4 (mais inteligente, mais caro)
  • "gpt-4-turbo" → GPT-4 Turbo (rápido e poderoso)
  • "claude-3-sonnet" → Anthropic Claude 3 Sonnet
  • "claude-3-opus" → Anthropic Claude 3 Opus (mais poderoso)

Flow completo para testar:

{
  "name": "Teste AI - Model",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "input_1",
      "type": "input",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Texto Complexo",
        "parameters": {
          "message": "Cole um texto técnico para resumir:",
          "variable": "texto"
        }
      }
    },
    {
      "id": "ai_1",
      "type": "ai",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Resumir com GPT-4",
        "parameters": {
          "prompt": "Resuma este texto em 3 bullets principais:\\n\\n{{texto}}",
          "model": "gpt-4",
          "temperature": 0.3
        }
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Mostrar Resumo",
        "parameters": {
          "message": "📝 RESUMO (GPT-4):\\n\\n{{ai_response}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 900, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "input_1" },
    { "source": "input_1", "target": "ai_1" },
    { "source": "ai_1", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Teste: Cola texto técnico. GPT-4 cria resumo mais preciso que GPT-3.5!

temperature (number, opcional)

O que é: Controla criatividade/aleatoriedade da resposta (0-1).

Padrão: 0.7 (equilibrado)

Valores:

  • 0.0 → Determinístico, sempre mesma resposta
  • 0.3 → Pouca criatividade (bom para extração de dados)
  • 0.7 → Equilibrado (bom para conversação)
  • 1.0 → Muito criativo (bom para brainstorming)

Flow completo para testar:

{
  "name": "Teste AI - Temperature",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 200 },
      "data": { "label": "Início" }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 300, "y": 200 },
      "data": {
        "label": "Comparar Criatividade",
        "parameters": {
          "message": "Gerando 2 respostas com temperatures diferentes..."
        }
      }
    },
    {
      "id": "ai_low",
      "type": "ai",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Temperature 0 (Conservador)",
        "parameters": {
          "prompt": "Crie um slogan para uma empresa de tecnologia",
          "temperature": 0.0
        }
      }
    },
    {
      "id": "message_low",
      "type": "message",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Resultado Conservador",
        "parameters": {
          "message": "🔒 Temperature 0.0:\\n{{ai_response}}"
        }
      }
    },
    {
      "id": "ai_high",
      "type": "ai",
      "position": { "x": 500, "y": 300 },
      "data": {
        "label": "Temperature 1 (Criativo)",
        "parameters": {
          "prompt": "Crie um slogan para uma empresa de tecnologia",
          "temperature": 1.0
        }
      }
    },
    {
      "id": "message_high",
      "type": "message",
      "position": { "x": 700, "y": 300 },
      "data": {
        "label": "Resultado Criativo",
        "parameters": {
          "message": "🎨 Temperature 1.0:\\n{{ai_response}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 900, "y": 200 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "message_1" },
    { "source": "message_1", "target": "ai_low" },
    { "source": "message_1", "target": "ai_high" },
    { "source": "ai_low", "target": "message_low" },
    { "source": "ai_high", "target": "message_high" },
    { "source": "message_low", "target": "end_1" },
    { "source": "message_high", "target": "end_1" }
  ]
}

Teste: Temperature 0 sempre retorna resposta similar. Temperature 1 varia muito mais!

maxTokens (number, opcional)

O que é: Limite máximo de tokens (palavras) na resposta gerada.

Padrão: 1000 tokens (~750 palavras)

Valores comuns:

  • 100 → Respostas curtas (1-2 frases)
  • 500 → Respostas médias (1 parágrafo)
  • 1000 → Respostas longas (múltiplos parágrafos)
  • 2000 → Respostas muito longas (artigos)

Flow completo para testar:

{
  "name": "Teste AI - MaxTokens",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "ai_1",
      "type": "ai",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Resposta Curta (50 tokens)",
        "parameters": {
          "prompt": "Explique o que é inteligência artificial",
          "maxTokens": 50
        }
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Mostrar Curto",
        "parameters": {
          "message": "Resposta CURTA (max 50 tokens):\\n\\n{{ai_response}}"
        }
      }
    },
    {
      "id": "ai_2",
      "type": "ai",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Resposta Longa (500 tokens)",
        "parameters": {
          "prompt": "Explique o que é inteligência artificial",
          "maxTokens": 500
        }
      }
    },
    {
      "id": "message_2",
      "type": "message",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Mostrar Longo",
        "parameters": {
          "message": "Resposta LONGA (max 500 tokens):\\n\\n{{ai_response}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1100, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "ai_1" },
    { "source": "ai_1", "target": "message_1" },
    { "source": "message_1", "target": "ai_2" },
    { "source": "ai_2", "target": "message_2" },
    { "source": "message_2", "target": "end_1" }
  ]
}

Teste: Primeira resposta será bem curta (1-2 frases). Segunda será muito mais detalhada!

Exemplo 1: Chatbot de Atendimento

Objetivo: Responder perguntas do cliente usando contexto

{
  "name": "AI - Chatbot Atendimento",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Saudação",
        "parameters": {
          "message": "👋 Olá! Sou o assistente virtual. Como posso ajudar?"
        }
      }
    },
    {
      "id": "input_1",
      "type": "input",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Pergunta do Cliente",
        "parameters": {
          "message": "Digite sua pergunta:",
          "variable": "pergunta"
        }
      }
    },
    {
      "id": "ai_1",
      "type": "ai",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Processar com AI",
        "parameters": {
          "prompt": "Você é um assistente de atendimento ao cliente profissional e prestativo.\\n\\nContexto: Empresa de tecnologia que vende software SaaS.\\n\\nPergunta do cliente: {{pergunta}}\\n\\nResponda de forma clara, profissional e útil.",
          "model": "gpt-4",
          "temperature": 0.7,
          "maxTokens": 500
        }
      }
    },
    {
      "id": "message_2",
      "type": "message",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Resposta AI",
        "parameters": {
          "message": "{{ai_response}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1100, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "message_1" },
    { "source": "message_1", "target": "input_1" },
    { "source": "input_1", "target": "ai_1" },
    { "source": "ai_1", "target": "message_2" },
    { "source": "message_2", "target": "end_1" }
  ]
}

Saída esperada:

Sistema: 👋 Olá! Sou o assistente virtual. Como posso ajudar?
Usuário: Qual o prazo de cancelamento?
Sistema: Olá! Em nossa empresa, você pode cancelar o serviço a qualquer momento sem multas. O cancelamento é processado imediatamente e você mantém acesso até o final do período pago. Posso ajudar com mais alguma informação?

Exemplo 2: Classificação de Intent

Objetivo: Identificar intenção do usuário para direcionar para flow correto

{
  "name": "AI - Classificar Intent",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "input_1",
      "type": "input",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Mensagem do Usuário",
        "parameters": {
          "message": "Como posso ajudar?",
          "variable": "mensagem"
        }
      }
    },
    {
      "id": "ai_1",
      "type": "ai",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Classificar Intent",
        "parameters": {
          "prompt": "Classifique a intenção desta mensagem em UMA das categorias:\\n\\nCATEGORIAS:\\n- suporte_tecnico\\n- vendas\\n- financeiro\\n- cancelamento\\n- outro\\n\\nMensagem: {{mensagem}}\\n\\nResponda APENAS com a categoria, sem explicações.",
          "temperature": 0.0,
          "maxTokens": 20
        }
      }
    },
    {
      "id": "switch_1",
      "type": "switch",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Direcionar",
        "parameters": {
          "variable": "ai_response",
          "cases": [
            { "value": "suporte_tecnico", "targetNode": "message_suporte" },
            { "value": "vendas", "targetNode": "message_vendas" },
            { "value": "financeiro", "targetNode": "message_financeiro" },
            { "value": "cancelamento", "targetNode": "message_cancelamento" }
          ],
          "defaultCase": "message_outro"
        }
      }
    },
    {
      "id": "message_suporte",
      "type": "message",
      "position": { "x": 900, "y": 50 },
      "data": {
        "label": "Suporte Técnico",
        "parameters": {
          "message": "🔧 Transferindo para suporte técnico..."
        }
      }
    },
    {
      "id": "message_vendas",
      "type": "message",
      "position": { "x": 900, "y": 150 },
      "data": {
        "label": "Vendas",
        "parameters": {
          "message": "💰 Transferindo para equipe de vendas..."
        }
      }
    },
    {
      "id": "message_financeiro",
      "type": "message",
      "position": { "x": 900, "y": 250 },
      "data": {
        "label": "Financeiro",
        "parameters": {
          "message": "💳 Transferindo para financeiro..."
        }
      }
    },
    {
      "id": "message_cancelamento",
      "type": "message",
      "position": { "x": 900, "y": 350 },
      "data": {
        "label": "Cancelamento",
        "parameters": {
          "message": "❌ Transferindo para retenção..."
        }
      }
    },
    {
      "id": "message_outro",
      "type": "message",
      "position": { "x": 900, "y": 450 },
      "data": {
        "label": "Outros",
        "parameters": {
          "message": "❓ Redirecionando para atendimento geral..."
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1100, "y": 250 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "input_1" },
    { "source": "input_1", "target": "ai_1" },
    { "source": "ai_1", "target": "switch_1" },
    { "source": "switch_1", "target": "message_suporte", "case": "suporte_tecnico" },
    { "source": "switch_1", "target": "message_vendas", "case": "vendas" },
    { "source": "switch_1", "target": "message_financeiro", "case": "financeiro" },
    { "source": "switch_1", "target": "message_cancelamento", "case": "cancelamento" },
    { "source": "switch_1", "target": "message_outro", "default": true },
    { "source": "message_suporte", "target": "end_1" },
    { "source": "message_vendas", "target": "end_1" },
    { "source": "message_financeiro", "target": "end_1" },
    { "source": "message_cancelamento", "target": "end_1" },
    { "source": "message_outro", "target": "end_1" }
  ]
}

Saída esperada:

Sistema: Como posso ajudar?
Usuário: Meu sistema está travando toda hora
Sistema: 🔧 Transferindo para suporte técnico...

Exemplo 3: Sumarização de Texto

Objetivo: Resumir textos longos automaticamente

{
  "name": "AI - Sumarizar Texto",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Solicitar Texto",
        "parameters": {
          "message": "📄 Envie um texto longo que você deseja resumir:"
        }
      }
    },
    {
      "id": "input_1",
      "type": "input",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Receber Texto",
        "parameters": {
          "message": "Cole o texto aqui:",
          "variable": "texto_longo"
        }
      }
    },
    {
      "id": "ai_1",
      "type": "ai",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Sumarizar",
        "parameters": {
          "prompt": "Resuma o seguinte texto em 3 pontos principais. Seja conciso e objetivo:\n\n{{texto_longo}}\n\nRESUMO EM 3 PONTOS:",
          "model": "gpt-4-turbo",
          "temperature": 0.3,
          "maxTokens": 300
        }
      }
    },
    {
      "id": "message_2",
      "type": "message",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Mostrar Resumo",
        "parameters": {
          "message": "📝 RESUMO:\n\n{{ai_response}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1100, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "message_1" },
    { "source": "message_1", "target": "input_1" },
    { "source": "input_1", "target": "ai_1" },
    { "source": "ai_1", "target": "message_2" },
    { "source": "message_2", "target": "end_1" }
  ]
}

Saída esperada:

Sistema: 📄 Envie um texto longo que você deseja resumir:
Usuário: [Cola texto longo sobre inteligência artificial]
Sistema: 📝 RESUMO:

• Inteligência Artificial é a capacidade de máquinas realizarem tarefas que normalmente requerem inteligência humana
• Principais aplicações incluem reconhecimento de padrões, processamento de linguagem natural e tomada de decisões
• IA está transformando diversos setores como saúde, finanças, transporte e educação

Resposta do Node

{
  "success": true,
  "action": "ai_response_generated",
  "request": {
    "prompt": "Crie uma saudação personalizada e calorosa para João. Seja criativo e use emojis.",
    "model": "gpt-3.5-turbo",
    "temperature": 0.7,
    "maxTokens": 1000
  },
  "response": {
    "text": "Olá João! 🎉 É um prazer imenso te conhecer! Espero que seu dia esteja sendo incrível e cheio de conquistas! ✨",
    "model": "gpt-3.5-turbo",
    "tokensUsed": 45
  },
  "timestamp": "2025-01-15T10:30:00.000Z"
}

Provedores de AI Suportados

O node AI pode trabalhar com diferentes provedores de modelos de linguagem:

OpenAI (GPT)

  • Modelos: GPT-3.5-turbo, GPT-4, GPT-4-turbo
  • Características: Líder do mercado, melhor documentação, ampla adoção
  • Ideal para: Aplicações gerais, conversação, análise de texto
  • API: https://platform.openai.com/

Anthropic (Claude)

  • Modelos: Claude 3 Sonnet, Claude 3 Opus, Claude 3 Haiku
  • Características: Excelente em textos longos, mais seguro, menos alucinações
  • Ideal para: Análise de documentos, resumos, tarefas que exigem precisão
  • API: https://www.anthropic.com/

Outros Provedores

  • Groq: Whisper ultra-rápido (suportado no node SPEECH)
  • Google (Gemini): Pode ser integrado conforme necessidade
  • Modelos locais: LLaMA, Mistral (podem ser configurados)

Comparação de Modelos

Modelo Velocidade Custo Qualidade Quando Usar
gpt-3.5-turbo ⚡⚡⚡ $ ⭐⭐⭐ Conversação geral, respostas rápidas
gpt-4 $$$ ⭐⭐⭐⭐⭐ Tarefas complexas, raciocínio profundo
gpt-4-turbo ⚡⚡ $$ ⭐⭐⭐⭐⭐ Melhor relação custo/benefício
claude-3-haiku ⚡⚡⚡ $ ⭐⭐⭐ Tarefas simples, rápidas e econômicas
claude-3-sonnet ⚡⚡ $$ ⭐⭐⭐⭐ Textos longos, análise detalhada
claude-3-opus $$$ ⭐⭐⭐⭐⭐ Tarefas mais complexas, criatividade

Boas Práticas

SIM:

  • Use prompts claros e específicos (quanto mais detalhe, melhor)
  • Defina persona/tom no prompt ("Você é um assistente profissional...")
  • Use temperature baixa (0-0.3) para tarefas determinísticas
  • Use temperature alta (0.7-1.0) para criatividade
  • Teste com diferentes modelos para achar melhor custo/benefício
  • Coloque contexto importante no início do prompt

NÃO:

  • Não confie 100% nas respostas AI (sempre valide dados críticos)
  • Não use maxTokens muito baixo para tarefas complexas
  • Não esqueça de tratar erros (API pode falhar)
  • Não exponha informações sensíveis no prompt
  • Não use para decisões financeiras/médicas sem validação humana

Dicas

💡 Prompt Engineering: Quanto mais específico o prompt, melhor a resposta 💡 Temperature: 0 = sempre igual, 1 = muito variado 💡 Custo: GPT-4 custa ~15x mais que GPT-3.5, use com sabedoria 💡 Context Window: Modelos têm limite de tokens (input + output) 💡 Few-shot: Dê exemplos no prompt para melhorar respostas 💡 System Prompts: Defina comportamento no início ("Você é um assistente...") 💡 Fallback: Sempre tenha plano B se API falhar 💡 Cache: Respostas idênticas podem ser cacheadas para economizar 💡 Streaming: Para respostas longas, considere streaming (se suportado) 💡 Monitoramento: Acompanhe uso de tokens e custos via dashboard do provedor

Casos de Uso Avançados

1. AI com Memória de Contexto

Armazene histórico da conversa em variáveis e inclua no prompt para continuidade.

2. AI Multi-etapas

Use múltiplos nodes AI em sequência para refinar respostas (draft → review → final).

3. AI com Validação

Após gerar conteúdo, use outro node AI ou VALIDATOR para verificar qualidade.

4. AI com Fallback

Use CONDITION após AI para verificar se resposta é válida, senão usa modelo alternativo.

5. AI para Roteamento Inteligente

Classifique intent com AI + SWITCH para direcionar usuário para flow correto.

Próximo Node

AI_AGENT - AI com ferramentas e autonomia → SENTIMENT - Análise de sentimento específica → ENTITY - Extração de entidades específicas