Dify
O que é?
Dify é uma plataforma opensource para construir aplicações LLM com RAG (Retrieval Augmented Generation). Permite criar agentes de IA que consultam bases de conhecimento antes de responder.
Website oficial: https://dify.ai Documentação: https://docs.dify.ai
Função no Sistema
- Base de conhecimento (RAG): Armazena documentos, FAQs, manuais
- Consulta contextual: Busca informações relevantes antes de gerar resposta
- Gerenciamento de agentes: Interface para criar e configurar agentes de IA
- Interface amigável: Permite que equipe não-técnica alimente a base de conhecimento
Versão Utilizada
v0.13.0
Como Funciona o RAG
O Dify não consulta automaticamente a base de conhecimento em todas as mensagens. Em vez disso, o agente de IA decide quando precisa de contexto adicional usando function calling.
Fluxo de Funcionamento
1. Usuário envia mensagem
↓
2. N8N recebe webhook do Chatwoot e envia para Dify
↓
3. LLM recebe a mensagem + 3 funções disponíveis:
- transfer_to_human: Transferir para atendimento humano
- search_knowledge_base: Buscar na base de conhecimento
- end_conversation: Encerrar conversa
↓
4. LLM decide se precisa chamar alguma função
↓
5a. Se chamar search_knowledge_base:
→ Dify busca documentos similares (embedding search)
→ Retorna contexto para o LLM
→ LLM gera resposta usando o contexto
↓
5b. Se não precisar de contexto:
→ LLM responde diretamente
↓
6. Resposta retorna ao N8N → Chatwoot → Usuário
Benefício: O agente só consulta a base quando realmente precisa, economizando tokens e tempo de resposta.
Funções Disponíveis para os Agentes
Todos os agentes configurados no Dify recebem estas 3 funções padrão via function calling:
1. search_knowledge_base
Busca informações na base de conhecimento do Dify.
{
"name": "search_knowledge_base",
"type": "function",
"strict": true,
"parameters": {
"type": "object",
"required": ["query"],
"properties": {
"query": {
"type": "string",
"description": "Assunto ou pergunta do usuário"
}
}
},
"description": "Busca respostas em uma base de conhecimento para utilizar como contexto adicional para as perguntas do usuário sobre cadastro, login, processos, fluxos no site, cursos, áreas, categorias, validade, problemas na conta, etc."
}
Quando usar: Perguntas sobre produtos, processos, políticas, FAQs, tutoriais, etc.
2. transfer_to_human
Transfere a conversa para um atendente humano.
{
"name": "transfer_to_human",
"type": "function",
"strict": true,
"parameters": {
"type": "object",
"required": ["chat_id", "inbox_id", "account_id"],
"properties": {
"chat_id": {
"type": "string",
"description": "Chat ID"
},
"inbox_id": {
"type": "string",
"description": "Inbox ID"
},
"account_id": {
"type": "string",
"description": "Account ID"
}
}
},
"description": "Transfere conversa para humano, agente, suporte avançado, suporte especializado para tratar de assuntos complexos quando o agente não sabe a resposta."
}
Quando usar: Assuntos complexos, solicitações que exigem autorização, casos não cobertos pela base de conhecimento.
3. end_conversation
Encerra a conversa no Chatwoot.
{
"name": "end_conversation",
"type": "function",
"strict": true,
"parameters": {
"type": "object",
"required": ["conversation_id", "account_id"],
"properties": {
"conversation_id": {
"type": "string",
"description": "Identificador único da conversa a ser encerrada"
},
"account_id": {
"type": "string",
"description": "Identificador da conta associada à conversa"
}
}
},
"description": "Encerra a conversa através do ID da conversa e o account_id"
}
Quando usar: Quando o usuário confirma que sua dúvida foi resolvida ou não precisa de mais ajuda.
Instalação via EasyPanel
- No EasyPanel, selecione a aba Templates
- Escolha Dify versão 0.13.0
- Configure API keys dos LLMs desejados (OpenAI, Anthropic, etc.)
- Deploy automático
URL de Acesso: https://dify.zamply.com.br
Configuração da Base de Conhecimento
- Acesse o Dify pelo navegador
- Vá em Knowledge → Create Knowledge Base
- Faça upload dos documentos (PDF, TXT, Markdown, etc.)
- O Dify irá processar e criar embeddings automaticamente
- Configure o agente para usar a base criada