Nó customizado do n8n para integração com OpenWebUI como provedor de LLM
npm install n8n-nodes-openwebuibash
npm install n8n-nodes-openwebui
`
$3
1. Clone este repositório
2. Execute npm install para instalar as dependências
3. Execute npm run build para compilar o código
4. Copie a pasta dist para o diretório de nós customizados do seu n8n
Configuração
$3
Antes de usar os nós, você precisa configurar as credenciais:
1. No n8n, vá para Credentials
2. Clique em Create New Credential
3. Selecione OpenWebUI API
4. Preencha:
- Base URL: URL da sua instância OpenWebUI (ex: http://localhost:3000)
- API Key: Sua chave de API do OpenWebUI
$3
1. Acesse sua instância do OpenWebUI
2. Vá para Settings > Account
3. Na seção API Keys, clique em Create API Key
4. Copie a chave gerada
Uso
$3
Este nó fornece funcionalidades básicas para interagir com o OpenWebUI:
- Chat > Send Message: Enviar mensagens para um modelo
- Model > Get All: Listar todos os modelos disponíveis
#### Exemplo de uso:
`
Input: { "prompt": "Explique machine learning" }
↓
OpenWebUI Node (Chat > Send Message)
↓
Output: { "response": "Machine learning é...", "model": "llama2:latest" }
`
$3
Este nó é especificamente projetado para funcionar com o AI Agent do n8n:
1. Adicione o nó AI Agent ao seu workflow
2. Na configuração do AI Agent, em Language Model, selecione OpenWebUI LLM
3. Configure:
- Model: Nome do modelo (ex: llama2:latest, mistral:latest)
- Messages: Mensagens do chat (sistema, usuário, assistente)
- Additional Options: Temperature, max tokens, etc.
#### Parâmetros importantes:
- Model: Nome do modelo no OpenWebUI
- Temperature: 0-2 (0 = mais determinístico, 2 = mais criativo)
- Max Tokens: Limite de tokens na resposta
- Top P: Controle de diversidade (nucleus sampling)
- Frequency/Presence Penalty: Controle de repetição
Estrutura de Resposta
$3
`json
{
"response": "Resposta do modelo",
"model": "nome-do-modelo",
"usage": {
"prompt_tokens": 10,
"completion_tokens": 50,
"total_tokens": 60
}
}
`
$3
`json
{
"message": {
"role": "assistant",
"content": "Resposta do modelo"
},
"model": "nome-do-modelo",
"usage": {
"prompt_tokens": 10,
"completion_tokens": 50,
"total_tokens": 60
},
"content": "Resposta do modelo",
"response": "Resposta do modelo"
}
`
Modelos Suportados
O nó funciona com qualquer modelo disponível na sua instância OpenWebUI, incluindo:
- Llama 2/3: llama2:latest, llama3:latest
- Mistral: mistral:latest, mixtral:latest
- CodeLlama: codellama:latest
- Gemma: gemma:latest
- Outros: Qualquer modelo compatível com Ollama/OpenWebUI
Troubleshooting
$3
- Verifique se a URL base está correta
- Certifique-se de que o OpenWebUI está rodando
- Verifique se a API Key é válida
$3
- Liste os modelos disponíveis usando Model > Get All
- Certifique-se de que o modelo está baixado no OpenWebUI
- Use o nome exato do modelo
$3
- Aumente o timeout nas configurações do n8n
- Use um modelo menor ou reduza o max_tokens
Desenvolvimento
Para contribuir com o desenvolvimento:
`bash
Clone o repositório
git clone
cd n8n-nodes-openwebui
Instale dependências
npm install
Desenvolvimento com watch
npm run dev
Build para produção
npm run build
Lint
npm run lint
`
API do OpenWebUI
Este nó usa os seguintes endpoints da API do OpenWebUI:
- POST /api/chat/completions - Chat completion (compatível com OpenAI)
- GET /api/models - Listar modelos
- GET /api/v1/models` - Teste de credenciais