Package Information
Downloads: 23 weekly / 56 monthly
Latest Version: 1.0.4
Author: Your Name
Documentation
n8n-nodes-litellm
Um node personalizado para o n8n que permite integração com LiteLLM com manipulação avançada de headers, incluindo a capacidade de adicionar identificadores de usuário para tracking e rate limiting.
Características
- ✅ Integração com LiteLLM API
- ✅ Manipulação de headers customizados
- ✅ Identificação de usuário para tracking
- ✅ Suporte para chat completions
- ✅ Configuração flexível de parâmetros (temperature, max_tokens, etc.)
- ✅ Tratamento de erros robusto
- ✅ Testes unitários incluídos
Instalação
Instalação via npm (recomendado)
npm install n8n-nodes-litellm
Instalação manual
- Clone este repositório
- Navegue até o diretório do projeto
- Instale as dependências:
npm install - Compile o projeto:
npm run build - Copie a pasta
distpara o diretório de nodes customizados do n8n
Configuração
Credenciais
- No n8n, vá para Credentials
- Clique em Add Credential
- Selecione LiteLLM API
- Configure:
- API Key: Sua chave de API do LiteLLM
- Base URL: A URL base da API do LiteLLM (padrão: https://api.litellm.ai/v1)
Uso do Node
- Adicione o node LiteLLM ao seu workflow
- Configure os parâmetros:
- Model: O modelo a ser usado (ex: gpt-3.5-turbo, gpt-4)
- Messages: Array de mensagens em formato JSON
- Temperature: Temperatura para geração (0-2)
- Max Tokens: Número máximo de tokens
- User Identifier: Identificador do usuário (opcional)
- Custom Headers: Headers adicionais em formato JSON (opcional)
Exemplos de Uso
Exemplo 1: Chat Básico
{
"model": "gpt-3.5-turbo",
"messages": [
{"role": "system", "content": "Você é um assistente útil."},
{"role": "user", "content": "Olá, como você está?"}
],
"temperature": 0.7,
"maxTokens": 150
}
Exemplo 2: Com Identificação de Usuário
{
"model": "gpt-4",
"messages": [
{"role": "user", "content": "Explique a teoria da relatividade"}
],
"temperature": 0.5,
"maxTokens": 500,
"userIdentifier": "usuario@empresa.com"
}
Exemplo 3: Com Headers Customizados
{
"model": "gpt-3.5-turbo",
"messages": [
{"role": "user", "content": "Traduza para inglês: Olá mundo"}
],
"temperature": 0.3,
"maxTokens": 100,
"userIdentifier": "tradutor@empresa.com",
"customHeaders": {
"X-Request-ID": "12345",
"X-Client-Version": "1.0.0"
}
}
Parâmetros Avançados
Additional Fields
O node suporta parâmetros adicionais através do campo Additional Fields:
- Top P: Controla a diversidade da geração (0-1)
- Frequency Penalty: Penaliza tokens frequentes (-2 a 2)
- Presence Penalty: Penaliza tokens presentes (-2 a 2)
- Stream: Habilita resposta em stream (true/false)
Headers Enviados
O node envia automaticamente os seguintes headers:
Content-Type: application/jsonAuthorization: Bearer {apiKey}X-User-Identifier: {userIdentifier}(se fornecido)- Headers customizados (se fornecidos)
Tratamento de Erros
O node possui tratamento robusto de erros:
- Validação de JSON para messages e customHeaders
- Verificação de array válido para messages
- Tratamento de erros da API com mensagens claras
- Opção de continuar em caso de falha (continue on fail)
Desenvolvimento
Estrutura do Projeto
n8n-nodes-litellm/
├── nodes/
│ └── LiteLLM/
│ ├── LiteLLM.node.ts # Lógica principal do node
│ └── litellm.svg # Ícone do node
├── credentials/
│ └── LiteLLMApi.credentials.ts # Configuração de credenciais
├── test/
│ └── LiteLLM.node.test.ts # Testes unitários
├── dist/ # Arquivos compilados
├── package.json
├── tsconfig.json
└── README.md
Comandos de Desenvolvimento
# Instalar dependências
npm install
# Desenvolvimento com watch mode
npm run dev
# Build do projeto
npm run build
# Executar testes
npm test
# Executar testes com coverage
npm run test:coverage
# Lint
npm run lint
# Formatar código
npm run format
Testes
O projeto inclui testes unitários abrangentes que cobrem:
- Validação de estrutura do node
- Execução com parâmetros válidos
- Tratamento de erros
- Validação de JSON
- Headers customizados
- Identificação de usuário
Execute os testes com:
npm test
Contribuindo
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Suporte
Para reportar bugs ou solicitar features, por favor abra uma issue no GitHub.
Licença
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.