Contexto: desafios da integração da n8n com a base de conhecimento do RAG
O n8n está ganhando força como uma poderosa ferramenta de fluxo de trabalho automatizado de código aberto. Fundada em 2019 por Jan Oberhauser, ex-designer visual de Piratas do Caribe, ela tem como objetivo fornecer uma solução de automação mais flexível e menos dispendiosa do que ferramentas como o Zapier. Com uma filosofia de ser "gratuito e sustentável, aberto e pragmático", o n8n está centrado na ideia de automatizar o fluxo de trabalho por meio de Visualização e código Modo duplo, permitindo que os usuários conectem diferentes aplicativos para automatizar processos complexos (documentação oficial: https://docs.n8n.io/). Uma vez que os usuários estejam familiarizados com ele, a criação de fluxos de trabalho simples geralmente é bastante rápida, e ele suporta a publicação de fluxos de trabalho com um clique na rede pública, o que proporciona grande conveniência.
A n8n é frequentemente descrita como o "Lego da automação", enfatizando sua flexibilidade e capacidade de combinação.
No entanto, no contexto da crescente popularidade dos aplicativos de IA, surgiu uma necessidade comum: como integrar eficientemente as bases de conhecimento RAG (Retrieval-Augmented Generation) no n8n? O RAG é uma tecnologia que combina recuperação de informações e geração de texto, permitindo que grandes modelos de linguagem façam referência a bases de conhecimento externas ao responder perguntas, fornecendo assim respostas mais precisas e contextualizadas. O RAG é uma tecnologia que combina recuperação de informações e geração de texto para permitir que grandes modelos de linguagem façam referência a uma base de conhecimento externa ao responder perguntas, fornecendo assim respostas mais precisas e contextualizadas.
Crie diretamente no n8n RAG As bases de conhecimento têm se mostrado um processo relativamente complexo. Normalmente, exige que os desenvolvedores criem manualmente dois fluxos de trabalho separados: um para lidar com uploads de arquivos, vetorização e armazenamento em um banco de dados e outro para implementar interações de perguntas e respostas baseadas em RAG.
Exemplo: fluxo de trabalho de upload de arquivo à esquerda, fluxo de trabalho de perguntas e respostas do RAG à direita.
Mesmo que tenha sido criada com sucesso, essa solução nativa pode ser insatisfatória em termos de experiência. Isso nos levou a pensar: é possível conectar soluções externas de bases de conhecimento maduras, como o popular FastGPT, ao n8n?
Solução: Aproveitamento dos protocolos FastGPT e MCP
O FastGPT é uma plataforma de aplicativos LLM de código aberto altamente aclamada, especialmente conhecida por seus poderosos recursos RAG e pela facilidade de uso. Uma atualização recente do FastGPT (siga seu GitHub: https://github.com/labring/FastGPT) traz um recurso interessante: suporte para MCP (Meta Component Protocol).
MCP Projetado para resolver o problema de interoperabilidade entre diferentes aplicativos e serviços de IA, o FastGPT pode ser entendido como um protocolo de "soquete universal" que não apenas oferece suporte ao acesso a outros serviços como um cliente MCP, mas também serve como um servidor MCP, expondo seus recursos (por exemplo, base de conhecimento) a outras plataformas compatíveis com MCP.
Coincidentemente, o n8n recentemente passou a suportar oficialmente o protocolo MCP. Isso significa que é possível publicar os recursos da base de conhecimento do FastGPT por meio do MCP e acessá-los diretamente como uma "ferramenta" na n8n. Essa solução provou ser totalmente viável e o processo de interface é bastante tranquilo. Usando a implementação madura do RAG do FastGPT, os resultados de perguntas e respostas da base de conhecimento integrada geralmente são muito bons.
Todo o processo de operação pode ser resumido nas etapas a seguir:
- Implante o ambiente n8n (local ou servidor).
- Implante ou atualize o FastGPT para uma versão compatível com o MCP.
- Crie e configure o servidor MCP no FastGPT para fornecer serviços externamente.
- Acesse esse FastGPT MCP-Server em um fluxo de trabalho n8n.
Implantação ou atualização do FastGPT
O FastGPT oferece suporte ao MCP desde a versão v4.9.6 e é recomendável usar a versão estável mais recente (v4.9.7-fix2 no momento em que este artigo foi escrito). Aqui está a introdução ao uso do docker-compose
Uma maneira de implementar ou atualizar (requer um ambiente Docker pré-instalado).
Os dois documentos a seguir precisam ser preparados:
- FastGPT Mais recente
docker-compose.yml
Documentação. - FastGPT Mais recente
config.json
Documentação.
Ambos os arquivos podem ser obtidos no repositório GitHub do FastGPT:
docker-compose-pgvector.yml
: https://github.com/labring/FastGPT/blob/main/deploy/docker/docker-compose-pgvector.ymlconfig.json
: https://raw.githubusercontent.com/labring/FastGPT/refs/heads/main/projects/app/data/config.json
Observação: se você não tiver acesso direto ao GitHub, pode tentar encontrar outra maneira de obtê-lo ou usar uma fonte espelho doméstica.
As etapas a seguir se aplicam a novas implementações e upgrades:
- Se estiver fazendo uma atualização, não se esqueça de fazer o backup da versão antiga primeiro!
docker-compose.yml
e volumes de dados associados. - Os dados mais recentes disponíveis serão obtidos
docker-compose.yml
responder cantandoconfig.json
Os arquivos são colocados no mesmo diretório.
existir config.json
No documento, é necessário dar atenção especial a mcp.server.host
Item de configuração.
- Se o FastGPT e o n8n forem implantados em um ambiente Docker local, você poderá definir o parâmetro
mcp.server.host
é definido como o endereço IP local da máquina, e a porta geralmente é fixada em3005
. - Se implantado em um servidor em nuvem, ele deve ser definido como o endereço IP ou o nome de domínio da extranet do servidor.
Depois de confirmar que a configuração está correta, abra um terminal ou uma linha de comando no diretório do arquivo e execute o seguinte comando:
docker-compose up -d
Quando você vir uma saída de log semelhante à figura a seguir e os contêineres estiverem todos funcionando normalmente, isso significa que a implementação ou o upgrade foi bem-sucedido.
Dica: Se você tiver problemas para extrair imagens do Docker, tente modificar o parâmetro docker-compose.yml
substitua o endereço do espelho oficial pelo endereço do repositório de espelho doméstico (por exemplo, espelho do AliCloud).
Criação de um serviço MCP no FastGPT
Depois de implantar ou atualizar o FastGPT com êxito, acesse a interface da Web do FastGPT por meio de um navegador (o padrão é http://127.0.0.1:3000
).
Navegue até Workbench -> Serviço MCP -> Novo serviçoO servidor MCP pode ser criado aqui para expor seus recursos ao mundo externo. Aqui você pode criar servidores MCP que expõem seus recursos para o mundo externo.
Depois de criar o serviço, clique em gerencialVocê pode ver que é possível adicionar ferramentas a esse serviço MCP. Essas ferramentas podem ser aplicativos como Bot, Workflow, etc., criados no FastGPT.
Há um problema importante aqui: parece que não é possível adicionar diretamente a "base de conhecimento" criada no FastGPT ao serviço MCP como uma ferramenta autônoma por si só. Se um Bot com acesso a uma Base de Conhecimento for adicionado ao serviço MCP como uma ferramenta, o lado n8n, quando chamado pelo MCP, poderá obter o conteúdo processado (por exemplo, resumido, reescrito) pelo grande modelo dentro do Bot, em vez do fragmento original recuperado da Base de Conhecimento. Isso pode não ser o esperado, especialmente em cenários em que o texto original precisa ser citado com precisão.
Uma solução inteligente é usar a função fluxo de trabalho Função. Um fluxo de trabalho simples pode ser criado no FastGPT, cuja função principal é realizar pesquisas na base de conhecimento e especificar formatos de resposta conforme necessário.
As etapas específicas são as seguintes:
- Crie um novo fluxo de trabalho no FastGPT.
- Adicionando apenas Pesquisa na base de conhecimento nós e Resposta designada (ou outros nós lógicos, conforme necessário).
- configurar Pesquisa na base de conhecimento selecione a base de conhecimento de destino e defina os parâmetros relevantes (por exemplo, relevância mínima, número máximo de citações etc.).
- configurar Resposta designada que decide como emitir os resultados da recuperação (por exemplo, emitir diretamente o bloco de texto original).
- Clique no canto superior direito da tela Salvar e publicar.
IMPORTANTE: recomenda-se que o nome do fluxo de trabalho esteja em inglês e não se esqueça de preencher a descrição do aplicativo. Essas informações são exibidas no n8n e ajudam a identificar a ferramenta.
Após concluir a criação e a publicação do fluxo de trabalho, volte para a seção Serviços MCP Interface de gerenciamento.
- Crie um novo serviço MCP (ou edite um já existente).
- Adicione o fluxo de trabalho que você acabou de criar e que contém a pesquisa na base de dados de conhecimento como uma ferramenta nesse serviço.
Quando terminar de adicionar, clique em começar a usar.
Na janela pop-up, localize o SSE copie o endereço fornecido. Esse endereço é o ponto de acesso para o FastGPT MCP-Server que você acabou de criar.
Acesso aos serviços FastGPT MCP no n8n
Agora, mude para a tela de edição do fluxo de trabalho do n8n.
- Selecione um nó adequado, por exemplo Agente de IA em seus nós Ferramenta Seção Configuration (Configuração), clique no sinal de mais +.
- Pesquise e adicione o oficialmente fornecido Ferramenta de cliente MCP Nós.
- existir Ferramenta de cliente MCP na tela de configuração do
- Cole o endereço SSE que você copiou anteriormente do FastGPT no arquivo URL do servidor Campos.
- Você pode definir um nome descritivo para o nó da ferramenta (por exemplo
FastGPT Knowledge Base via MCP
) para facilitar a chamada no Agente.
Depois de configurado, você pode testá-lo na caixa de diálogo Chat do n8n (ou em outros acionadores). Faça uma pergunta que exija uma chamada para a base de conhecimento. Se a configuração estiver correta, você poderá ver que o n8n invoca com êxito o serviço FastGPT MCP e obtém as informações relevantes da base de conhecimento do FastGPT como base para a resposta.
Conforme mencionado anteriormente, a base de conhecimento RAG do FastGPT é geralmente considerada bastante eficaz em plataformas de aplicativos LLM leves.
Além disso, você pode ver que o nome e o conjunto de introdução do fluxo de trabalho no FastGPT são exibidos como informações da ferramenta no lado n8n para ajudar o Agente a entender e escolher qual ferramenta usar.
Expansão de ideias e acesso alternativo
Acessar a base de conhecimento FastGPT (encapsulada em um fluxo de trabalho) para n8n via MCP é uma abordagem eficiente e flexível. Com base nisso, ela também pode ser ampliada:
- Configuração do FastGPT plug-in (componente de software) talvez Bot com base de conhecimento é empacotado como um serviço MCP para o mundo externo.
- Usando a função API O FastGPT permite publicar o aplicativo criado (por exemplo, um bot com uma base de conhecimento) como uma interface compatível com o formato da API OpenAI.
Essa abordagem de API também pode ser usada para acessar a base de conhecimento FastGPT no n8n:
- Em n8n's Agente de IA (ou qualquer outro nó que precise chamar o LLM), adicione um novo nó Modelo de bate-papo.
- opção Modelo de bate-papo compatível com OpenAI Tipo.
- Credenciais de configuração:
Base URL
Preencha o endereço de API fornecido pelo FastGPT.API Key
Preencha a chave de API correspondente ao aplicativo FastGPT.
Model Name
Ele pode ser preenchido arbitrariamente, e o modelo real em vigor será o configurado no FastGPT Bot.
Dessa forma, o n8n envia a solicitação para o endpoint da API do FastGPT, que o FastGPT processa e retorna o resultado. Isso é equivalente a chamar o Bot do FastGPT (e sua base de conhecimento) como um serviço de modelo grande externo.
Compare as abordagens do MCP e da API:
- Método MCP::
- Prós: mais alinhado com a noção de "ferramentas" da n8n, pode ser usado em combinação com outras ferramentas no Agent, mais nativo; metadados potencialmente mais ricos (por exemplo, descrições de ferramentas).
- Contras: Relativamente mais etapas para configurar (criar fluxo de trabalho, configurar serviços MCP).
- Método API::
- Prós: relativamente fácil de configurar, basta obter o endereço e a chave da API; simples para cenários em que o FastGPT é usado como um único mecanismo de Q&A.
- Desvantagens: no n8n, ele se comporta como uma chamada para um modelo externo em vez de uma "ferramenta" combinável; a configuração do modelo (por exemplo, temperatura, max_tokens etc.) pode precisar ser coordenada no lado do n8n e no lado do FastGPT.
Os desenvolvedores podem escolher o método de integração apropriado com base em necessidades e preferências específicas.
Publicação e aplicativos
Independentemente de como a base de conhecimento do FastGPT esteja integrada, é fácil publicá-la para uso externo quando você tiver concluído a depuração do fluxo de trabalho do n8n.
Por exemplo, usando o Mensagem de bate-papo Quando usado como um nó de acionamento:
- clique duas vezes Mensagem de bate-papo Nós.
- abre Tornar o bate-papo disponível publicamente Opções.
- O sistema gera um link de URL público do Chat, que você pode copiar para compartilhar.
- Não se esqueça. Salvar Além disso Ativar Fluxo de trabalho.
Essa página de bate-papo público pode até ser acessada e usada no navegador de um dispositivo móvel.
Vale a pena mencionar que essa página de bate-papo público fornecida pela n8n também suporta muitas personalizações, como a definição de acesso por senha, permitindo que os usuários façam upload de arquivos, etc.
Isso torna o n8n ideal para a criação rápida de protótipos de produtos MVP (Minimum Viable Product) ou para a criação de fluxos de trabalho de IA que aumentam a eficiência para indivíduos e equipes.
além de Mensagem de bate-papo Muitos dos outros nós de acionamento da n8n (por exemplo, Webhook) também suportam a publicação para acesso à extranet, proporcionando um grau de liberdade extremamente alto. Se a n8n for implantada localmente, o acesso à extranet pode ser obtido por meio de técnicas como a penetração na intranet.
Considerações finais: a proposta de valor da n8n
Uma pergunta comum ao discutir esses tipos de ferramentas de automação com pouco ou nenhum código é: por que não implementá-las em código? Para os desenvolvedores familiarizados com programação, o uso de código parece mais simples e controlável.
É verdade que ferramentas como a n8n têm uma curva de aprendizado, e pode levar algum tempo para começar. No entanto, uma vez dominada, a eficiência da criação e da iteração de fluxos de trabalho geralmente excede em muito a do desenvolvimento de código tradicional, especialmente em cenários que envolvem a integração de várias APIs e serviços. O sólido ecossistema de nós e o suporte da comunidade da n8n podem atender a uma ampla gama de necessidades de automação, das mais simples às mais complexas, e permitir que as ideias saiam do papel rapidamente.
É claro que, para projetos de nível empresarial que exigem um alto grau de personalização, desempenho extremo ou envolvem lógica subjacente complexa, o desenvolvimento de código puro ainda é necessário. Mas, para um grande número de cenários de automação, criação de ferramentas internas, prototipagem rápida e outras necessidades, o n8n e suas ferramentas semelhantes oferecem uma opção muito eficiente e flexível. A integração de excelentes aplicativos de IA, como o FastGPT, por meio de protocolos como o MCP, amplia ainda mais os limites dos recursos do n8n.