Dify
A Evolution API permite a criação e gerenciamento de bots utilizando a tecnologia Dify, proporcionando automação e interatividade avançada através de diferentes tipos de bots, como chatBots, textGenerators, agents, e workflows. A seguir, você encontrará as instruções detalhadas sobre como configurar bots, gerenciar sessões e definir configurações padrão.
1. Criação de Bots no Dify
Você pode configurar diversos bots no Dify utilizando triggers para iniciar as interações. A configuração do bot pode ser feita através do endpoint /dify/create/{{instance}}
.
Endpoint para Criação de Bots
Endpoint
POST {{baseUrl}}/dify/create/{{instance}}
Corpo da Requisição
Aqui está um exemplo de corpo JSON para configurar um bot no Dify:
{
"enabled": true,
"botType": "chatBot", /* chatBot, textGenerator, agent, workflow */
"apiUrl": "http://dify.site.com/v1",
"apiKey": "app-123456",
// opções
"triggerType": "keyword", /* all ou keyword */
"triggerOperator": "equals", /* contains, equals, startsWith, endsWith, regex, none */
"triggerValue": "teste",
"expire": 0,
"keywordFinish": "#SAIR",
"delayMessage": 1000,
"unknownMessage": "Mensagem não reconhecida",
"listeningFromMe": false,
"stopBotFromMe": false,
"keepOpen": false,
"debounceTime": 0,
"ignoreJids": []
}
Explicação dos Parâmetros
enabled
: Ativa (true
) ou desativa (false
) o bot.botType
: Tipo do bot Dify (chatBot
,textGenerator
,agent
,workflow
).apiUrl
: URL da API do Dify (sem a/
no final).apiKey
: Chave da API fornecida pelo Dify.- Opções:
triggerType
: Tipo de trigger para iniciar o bot (all
oukeyword
).triggerOperator
: Operador utilizado para avaliar o trigger (contains
,equals
,startsWith
,endsWith
,regex
,none
).triggerValue
: Valor utilizado no trigger (por exemplo, uma palavra-chave ou regex).expire
: Tempo em minutos após o qual o bot expira, reiniciando se a sessão expirou.keywordFinish
: Palavra-chave que encerra a sessão do bot.delayMessage
: Delay (em milissegundos) para simular a digitação antes de enviar uma mensagem.unknownMessage
: Mensagem enviada quando a entrada do usuário não é reconhecida.listeningFromMe
: Define se o bot deve escutar as mensagens enviadas pelo próprio usuário (true
oufalse
).stopBotFromMe
: Define se o bot deve parar quando o próprio usuário envia uma mensagem (true
oufalse
).keepOpen
: Mantém a sessão aberta, evitando que o bot seja reiniciado para o mesmo contato.debounceTime
: Tempo (em segundos) para juntar várias mensagens em uma só.ignoreJids
: Lista de JIDs de contatos que não ativarão o bot.
2. Configurações Padrão do Dify
Você pode definir configurações padrão que serão aplicadas caso os parâmetros não sejam passados durante a criação do bot.
Endpoint para Configurações Padrão
Endpoint
POST {{baseUrl}}/dify/settings/{{instance}}
Corpo da Requisição
Aqui está um exemplo de configuração padrão:
{
"expire": 20,
"keywordFinish": "#SAIR",
"delayMessage": 1000,
"unknownMessage": "Mensagem não reconhecida",
"listeningFromMe": false,
"stopBotFromMe": false,
"keepOpen": false,
"debounceTime": 0,
"ignoreJids": [],
"difyIdFallback": "clyja4oys0a3uqpy7k3bd7swe"
}
Explicação dos Parâmetros
expire
: Tempo em minutos após o qual o bot expira.keywordFinish
: Palavra-chave que encerra a sessão do bot.delayMessage
: Delay para simular a digitação antes de enviar uma mensagem.unknownMessage
: Mensagem enviada quando a entrada do usuário não é reconhecida.listeningFromMe
: Define se o bot deve escutar as mensagens enviadas pelo próprio usuário.stopBotFromMe
: Define se o bot deve parar quando o próprio usuário envia uma mensagem.keepOpen
: Mantém a sessão aberta, evitando que o bot seja reiniciado para o mesmo contato.debounceTime
: Tempo para juntar várias mensagens em uma só.ignoreJids
: Lista de JIDs de contatos que não ativarão o bot.difyIdFallback
: ID do bot de fallback que será utilizado caso nenhum trigger seja ativado.
3. Gerenciamento de Sessões do Dify
Você pode gerenciar as sessões do bot, alterando o status entre aberta, pausada ou fechada para cada contato específico.
Endpoint para Gerenciamento de Sessões
Endpoint
POST {{baseUrl}}/dify/changeStatus/{{instance}}
Corpo da Requisição
Aqui está um exemplo de como gerenciar o status da sessão:
{
"remoteJid": "5511912345678@s.whatsapp.net",
"status": "closed"
}
Explicação dos Parâmetros
remoteJid
: JID (identificador) do contato no WhatsApp.status
: Status da sessão (opened
,paused
,closed
).
4. Variáveis Automáticas e Especiais no Dify
Quando uma sessão do Dify é iniciada, algumas variáveis predefinidas são automaticamente enviadas:
inputs: {
remoteJid: "JID do contato",
pushName: "Nome do contato",
instanceName: "Nome da instância",
serverUrl: "URL do servidor da API",
apiKey: "Chave de API da Evolution"
};
Explicação das Variáveis Automáticas
remoteJid
: JID do contato com quem o bot está interagindo.pushName
: Nome do contato no WhatsApp.instanceName
: Nome da instância que está executando o bot.serverUrl
: URL do servidor onde a Evolution API está hospedada.apiKey
: Chave de API usada para autenticar as requisições.
Variáveis Especiais para Workflows
No caso de bots do tipo workflow, a mensagem recebida é enviada na variável query
dentro dos inputs. Isso permite que o workflow processe a mensagem diretamente com base no conteúdo da variável query
.
Exemplo de Variáveis para Workflow
inputs: {
remoteJid: "JID do contato",
pushName: "Nome do contato",
instanceName: "Nome da instância",
serverUrl: "URL do servidor da API",
apiKey: "Chave de API da Evolution",
query: "Conteúdo da mensagem recebida"
}
Considerações Finais
A integração da Evolution API com o Dify oferece uma maneira robusta de automatizar interações no WhatsApp, utilizando diferentes tipos de bots para atender às necessidades específicas do seu negócio. Com a capacidade de configurar triggers, gerenciar sessões e utilizar variáveis automáticas, você pode otimizar o fluxo de trabalho e melhorar a experiência do usuário final.